Rollup bundle导致运行时错误



我正在尝试使用rollup捆绑一个名为langium的库。

它正确地捆绑,但是结果捆绑会导致运行时错误。

我得到的错误是:

Uncaught TypeError: Object.defineProperty called on non-object
at Function.defineProperty (<anonymous>)
at requireCompletionParserBuilder (user-of-langium.js:47901:11)
at requireDefaultModule (user-of-langium.js:50827:38)
at requireGrammarUtil (user-of-langium.js:29791:27)
at requireGeneratorTracing (user-of-langium.js:15009:25)
at requireNodeProcessor (user-of-langium.js:15155:30)
at user-of-langium.js:15880:29
at requireGeneratorNode (user-of-langium.js:16299:6)
at requireTypes (user-of-langium.js:16321:27)
at user-of-langium.js:18420:18

下面是我的rollup配置:

import commonjs from '@rollup/plugin-commonjs';
import { nodeResolve } from '@rollup/plugin-node-resolve';
export default {
input: 'src/user-of-langium.js',
output: {
dir: '.dist',
format: 'iife'
},
plugins: [
nodeResolve({ browser: true }),
commonjs(),
]
};

我不知道我是否需要配置一些东西或者是什么导致了这个问题。

我也有一个stackblitz使用使用rollup来构建bundle的vitjs来重现错误。

有人能帮我解决这个问题吗?

我找到了答案。我可以在commonjs插件中设置strictRequirestrue

import commonjs from '@rollup/plugin-commonjs';
import { nodeResolve } from '@rollup/plugin-node-resolve';
export default {
input: 'src/user-of-langium.js',
output: {
dir: '.dist',
format: 'iife'
},
plugins: [
nodeResolve({ browser: true }),
commonjs({ strictRequires: true ),
]
};

相关内容