汇总 commonJs 和 nodeResolve MagicString 错误

Rollup commonJs and nodeResolve MagicString error

我想将 xml-js 库与汇总捆绑器一起使用。简单导入后出现错误,'json2xml' 未由 node_modules\xml-js\lib\index.js

导出

我尝试使用最新版本的 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

我通过删除全局 npm 包 (C:\Users\x\AppData\Roaming\npm and C:\Users\x\AppData\Roaming\npm-cache) 以及本地 node_modules 并从头开始安装所有需要的包的最新版本解决了这个问题。