汇总 commonJs 和 nodeResolve MagicString 错误
Posted
技术标签:
【中文标题】汇总 commonJs 和 nodeResolve MagicString 错误【英文标题】:Rollup commonJs and nodeResolve MagicString error 【发布时间】:2021-02-21 14:19:48 【问题描述】:我想将 xml-js 库与汇总捆绑器一起使用。简单导入后出现错误,node_modules\xml-js\lib\index.js 未导出“json2xml”
我尝试使用最新版本的 commonjs rollup 插件修复它。尝试构建后,我得到了这个异常
[!] TypeError: Cannot read property 'length' of undefined
TypeError: Cannot read property 'length' of undefined
at new MagicString (C:\Users\x\AppData\Roaming\npm\node_modules\rollup\dist\shared\rollup.js:580:34)
at Module.setSource (C:\Users\x\AppData\Roaming\npm\node_modules\rollup\dist\shared\rollup.js:10038:28)
at ModuleLoader.addModuleSource (C:\Users\maxim\AppData\Roaming\npm\node_modules\rollup\dist\shared\rollup.js:18158:20)
rollup.config.js 看起来很简单
import typescript from 'rollup-plugin-typescript2';
import json from '@rollup/plugin-json';
import nodeResolve from '@rollup/plugin-node-resolve';
import common from "@rollup/plugin-commonjs"
export default
input: ['./main.ts'],
plugins: [
nodeResolve(),
common(),
typescript(),
json(),
],
output:
dir: 'output',
format: 'iife'
,
在空项目中安装相同的汇总插件后,我得到了同样的错误。 你有什么建议吗?
+-- xml2js@0.4.23
+-- rollup@2.26.10
+-- @rollup/plugin-json@4.1.0
+-- rollup-plugin-typescript2@0.29.0
+-- @rollup/plugin-commonjs@16.0.0
【问题讨论】:
你能分享一下你的main.ts
有什么吗?
当然,我刚刚从xml-js库import js2xml from 'xml-js' var xmlPoints = js2xml(points);
导入了一个函数
我认为您的提供代码没有任何问题,除了包 xml2js
没有反映您导入的东西 xml-js
但无论如何这都不是问题。你有可重复的回购吗? (我知道上面的代码可能来自commonjs
插件试图转换应该是cjs
的esm
模块)
我实际上能够在其他机器上构建输出。那么,我可能是我全局安装的一些包的版本问题?
【参考方案1】:
我通过删除全局 npm 包 (C:\Users\x\AppData\Roaming\npm and C:\Users\x\AppData\Roaming\npm-cache)
以及本地 node_modules
并从头开始安装所有需要的包的最新版本来解决此问题。
【讨论】:
谢谢!有同样的错误并以某种方式解决了它——卸载汇总npm uninstall --global rollup
然后再次安装它npm install --global rollup
。以上是关于汇总 commonJs 和 nodeResolve MagicString 错误的主要内容,如果未能解决你的问题,请参考以下文章
导入 3rd 方库时的 CommonJS 汇总插件语法错误,主要与“进程”有关