У меня есть приложение NodeJS, использующее ExpressJS для предоставления API на устройстве ARM. Я также использую SocketIO и установил старую версию «uws» для решения одной проблемы.
При развертывании обновлений я бы «скорее не стал» выводить sh из всех. JS файлы (в моем случае .TS) и, возможно, потребуется запустить npm install
на целевом устройстве.
Я бы предпочел создать один файл / пакет, который я мог бы выложить sh на устройства.
Я попробовал простой подход с веб-пакетом с конфигурацией ниже:
var path = require('path');
var webpack = require('webpack');
module.exports = {
target: 'node',
entry: '../dist/server.js',
output: {
path: path.resolve(__dirname + '/../dist/'),
filename: 'bundle.js'
},
resolveLoader: {
modules: [
__dirname + '/node_modules'
]
}
};
Делая это, я получаю несколько предупреждений. Critical dependency: the request of a dependency is an expression
В конечном счете, приложение, похоже, дает сбой. Первое, что делает приложение: Logging.log(path.resolve(__dirname, "./motd.txt"));
Вывод: /motd.txt
Я предполагаю, что он теряет доступ к __dirname
?
Может ли это быть сделано с веб-пакетом? Есть ли лучший подход? Есть ли лучшая идея для удаленного развертывания приложения NodeJS на нескольких удаленных ARM-устройствах и исключения требования npm install
?