无法在具有节点红色的项目中实施Webpack

时间:2019-04-11 11:09:23

标签: node.js webpack node-red

我正在尝试在包含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' ]
        }
    ]
    }


};

1 个答案:

答案 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错误。将软件包更新到最新版本。