我正在尝试在包含node-red的项目中实现webpack。但是,我不断收到以下警告。请提出如何解决此错误的建议-
WARNING in ./node_modules/node-red/red/runtime/storage/localfilesystem/projects/git/node-red-ask-pass.sh 1:26
Module parse failed: Unexpected token (1:26)
You may need an appropriate loader to handle this file type.
> "$NODE_RED_GIT_NODE_PATH" "$NODE_RED_GIT_ASKPASS_PATH" "$NODE_RED_GIT_SOCK_PATH" $@
|
@ ./node_modules/node-red/red/runtime/storage sync ^\.\/.*$ ./localfilesystem/projects/git/node-red-ask-pass.sh
@ ./node_modules/node-red/red/runtime/storage/index.js
@ ./node_modules/node-red/red/runtime/index.js
@ ./app.js
我的webpack.config.js是-
const path = require('path');
var nodeExternals = require('webpack-node-externals');
module.exports = {
target: 'node',
externals: [nodeExternals()],
entry: './app.js',
output: {
path: path.resolve(__dirname, './output'),
filename: 'bundle.js'
},
resolve: {
extensions: ['.js','.json', '.sh'],
modules: [
'node_modules'
],
},
module: {
rules: [
{
test:/\.css$/,
use:['style-loader','css-loader']
},
{
test: /\.coffee$/,
use: [ 'coffee-loader' ]
}
]
}
};
答案 0 :(得分:0)
对于Webpack,每个文件都是一个.js
。为了处理其他扩展名,例如.css
或.sh
,应该像使用css-loader
一样使用加载程序,它将CSS规则转换为JS。
您面临的问题是您已经有了一个导入链(./app.js -> .../index.js -> .../index.js -> .../node-red-ask-pass.sh
),因此Webpack有时会导入.sh
文件,但会由于以下原因而引发错误:外壳代码很明显是无效的JavaScript。这就是为什么您看到自己的错误的原因。
顺便说一句,我无法重现您面临的问题:
npm init -y
npm i node-red
# ./node_modules/node-red/red is not a directory
所以这可能是一个node-red
错误。将软件包更新到最新版本。