我有一个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;
}
})();
有没有人知道可能会发生什么或者有什么提示可以帮助我调试?谢谢!
2条答案
按热度按时间svujldwt1#
看起来
nearlyc
* 可以 * 生成一个ES6模块,请参见此处的源代码:https://github.com/kach/nearley/blob/6e24450f2b19b5b71557adf72ccd580f4e452b09/lib/generate.js#L143根据https://nearley.js.org/docs/parser中的“使用预处理器”一节,您需要在语法文件的顶部放置一行
@preprocessor module
或@preprocessor esmodule
。oyxsuwqo2#
现在我已经决定使用modify the export in the generated code。看起来这里真实的的修复是更新
nearleyc
以生成符合ES6的代码。