在我的React应用中,执行npm run build
会导致:
Module parse failed: ...\node_modules\npm\bin\npm-cli.js Unexpected character '#' (1:0)
根据this StackOverflow answer,#!/usr/bin/env node
中的第一行npm-cli.js
就是问题所在。要解决这个问题,我可以使用BannerPlugin(docs),我这样做了:
地点:webpack.config.prod.js
/ webpack.config.dev.js
module.exports = {
...
plugins: [
...
new webpack.BannerPlugin({
banner: "#!/usr/bin/env node",
raw: true
})
],
...
};
现在,再次执行npm run build
会导致:
...\node_modules\webpack\lib\BannerPlugin.js:9
if(str.indexOf("\n") < 0) return "/*! " + str + " */";
^
TypeError: str.indexOf is not a function
at wrapComment (...\node_modules\webpack\lib\BannerPlugin.js:9:9)
...
阅读this StackOverflow question中的评论,我得出结论:str
不是有效的对象。 如何解决此问题而无需修改 BannerPlugin.js
,或完全绕过BannerPlugin?
修改1:以下是整个webpack.config.dev.js和webpack.config.prod.js作为Pastebin。 webpack的版本应为&#34; webpack@1.14.0
&#34;在webpack package.json
中找到(npm list webpack
无效)。
编辑2 :我绕过了BannerPlugin as seen here的使用。
答案 0 :(得分:-1)
我知道它已经很旧了,但是我自己发现了它,所以对于其他任何人,我都怀疑您的旧版BannerPlugin具有新的参数布局。对于webpack 1,它将横幅广告作为第一个参数(未命名)。从2或3开始,需要一个对象。
对您来说,这将是:
.MaximumScale = ActiveSheet.Range("Axis_max").Value
.MinimumScale = ActiveSheet.Range("Axis_min").Value
您将拥有Webpack 3:
new webpack.BannerPlugin('#!/usr/bin/env node', { raw: true })