简体   繁体   中英

Unable to implement webpack in project with node-red

I am trying to implement webpack in my project which contains node-red. However, I keep getting the following warning. Please suggest how to solve this error -

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

My webpack.config.js is -

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' ]
        }
    ]
    }


};

For Webpack, every file is a .js . In order to handle other extensions, like .css or .sh , you're supposed to use a loader, like you did with css-loader , that will tranform CSS rules into JS.

The issue you're facing is that you've got an import chain ( ./app.js -> .../index.js -> .../index.js -> .../node-red-ask-pass.sh ), so Webpack will, at some point, will import a .sh file, but will throw an error because shell code is obviousouly invalid JavaScript. that is why you're seeing the error that you have.

By the way, I couldn't reproduce the issue you're facing:

npm init -y
npm i node-red
# ./node_modules/node-red/red is not a directory

So it was probably a node-red bug. Update the package to the latest version.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM