尝试导入错误与 "npm run build" 一起使用"npm start"



我有一个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语句如下(您可以在此处看到完整的文件(:

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

正在导入的模块是从nearleyc生成的代码。它的导出部分看起来是这样的(你可以在这里看到完整的文件——同样,这是生成的代码,所以如果可以避免的话,我宁愿不更改它(:

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

有人知道可能发生的事情吗?或者有什么可以帮助我调试的指针吗?谢谢

似乎nearlyc可以生成ES6模块,请参阅此处的源代码:https://github.com/kach/nearley/blob/6e24450f2b19b5b71557adf72ccd580f4e452b09/lib/generate.js#L143

根据";使用预处理器";在里面https://nearley.js.org/docs/parser您需要在语法文件的顶部放一行@preprocessor module@preprocessor esmodule

现在我决定修改生成代码中的导出。这里真正的解决方案似乎是更新nearleyc以生成符合ES6的代码。

最新更新