webpack 尝试导入错误,“npm run build”,与“npm start”一起工作

vohkndzv  于 2022-11-13  发布在  Webpack
关注(0)|答案(2)|浏览(232)

我有一个React应用程序,它在npm start上运行良好,但在运行npm run build时无法构建,并出现以下错误:

`Creating an optimized production build...
Failed to compile.

Attempted import error: './parseq-lang.js' does not contain a default export (imported as 'grammar').

import语句如下所示(you can see the full file here):

import grammar from './parseq-lang.js';

要导入的模块是从nearleyc生成的代码,它的导出部分如下所示(you can see the full file here-这也是生成的代码,所以如果可以避免的话,我宁愿不更改它):

(function () {

[...]

if (typeof module !== 'undefined'&& typeof module.exports !== 'undefined') {
   module.exports = grammar;
} else {
   window.grammar = grammar;
}
})();

有没有人知道可能会发生什么或者有什么提示可以帮助我调试?谢谢!

svujldwt

svujldwt1#

看起来nearlyc * 可以 * 生成一个ES6模块,请参见此处的源代码:https://github.com/kach/nearley/blob/6e24450f2b19b5b71557adf72ccd580f4e452b09/lib/generate.js#L143
根据https://nearley.js.org/docs/parser中的“使用预处理器”一节,您需要在语法文件的顶部放置一行@preprocessor module@preprocessor esmodule

oyxsuwqo

oyxsuwqo2#

现在我已经决定使用modify the export in the generated code。看起来这里真实的的修复是更新nearleyc以生成符合ES6的代码。

相关问题