Невозможно реализовать веб-пакет в проекте с нод-красным - PullRequest
0 голосов
/ 11 апреля 2019

Я пытаюсь реализовать webpack в моем проекте, который содержит node-red. Тем не менее, я продолжаю получать следующее предупреждение. Подскажите пожалуйста, как решить эту ошибку -

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 голосов
/ 12 апреля 2019

Для 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. Обновите пакет до последней версии.

...