Я пытаюсь выяснить, есть ли способ передать идентификатор экземпляра режима кластера PM2 в a, скомпилированный с сервером webpack, node.js. Я хочу писать в разные папки в зависимости от идентификатора кластера.
Я попытался запустить сервер узлов напрямую через PM2, и он может получить экземпляр instance_var (NODE_APP_INSTANCE) без каких-либо проблем. Я просто не уверен, есть ли какой-нибудь плагин или хак, который позволил бы скомпилированному приложению принимать / захватывать внешние env. переменные.
Вот мой конфиг вебпака, ничего особенного
const path = require('path');
const nodeExternals = require('webpack-node-externals');
const webpack = require('webpack');
const CopyPkgJsonPlugin = require('copy-pkg-json-webpack-plugin');
const CopyPlugin = require('copy-webpack-plugin');
module.exports = {
mode: 'production',
entry: './src/index.js',
node: {
__dirname: false
},
output: {
filename: 'testing.js',
path: path.resolve(__dirname, 'dist/production')
},
target: 'node',
externals: [nodeExternals()],
plugins: [
// new CopyPlugin([
// { from: './ecosystem.config.js', to: path.resolve(__dirname, 'dist/production') }
// ]),
new CopyPkgJsonPlugin({
remove: ['devDependencies']
}),
new webpack.DefinePlugin({
'process.env': {
NODE_ENV: JSON.stringify('production'),
API_URL: JSON.stringify('127.0.0.1'),
API_PORT: JSON.stringify('4000')
}
})
]
};
Скорее всего, мой подход неверен, я открыт для предложений.