Подход с несколькими точками входа здесь не самая лучшая идея, поскольку вы объединяете две разные цели (узел и браузер) с одинаковой конфигурацией
Лучше было бы экспортировать массив с двухконфигурацией как-то так (и в этом подходе вы можете использовать несколько точек входа, чтобы разделить ваш браузер и другие вещи, чтобы сделать ваш сайт более производительным)
в webpack.config.js
(использовать этот файл в качестве конфигурации Webpack)
const webpackBrowserConfig = require("./webpack.config.browser.js");
const webpackServerConfig = require("./webpack.config.server.js");
module.exports = [webpackServerConfig, webpackBrowserConfig];
в webpack.config.browser.js
module.exports = {
target: 'web',
mode: 'production',
entry: './src/index.ts',
output: {
path: path.resolve(__dirname, 'dist'),
// your browser related config
},
resolve: {
extensions: [ ".ts", ".js"]
},
externals: {
"request-promise-native": "request-promise-native",
"request": "request"
},
module: {
rules: [
{ test: /\.ts$/, use: 'ts-loader' }
]
}
}
и в webpack.config.server.js
module.exports = {
target: 'node',
mode: 'production',
entry: './src/serverIndex.ts',
output: {
path: path.resolve(__dirname, 'dist')
// your server related config
},
resolve: {
extensions: [ ".ts", ".js"]
},
externals: {
"request-promise-native": "request-promise-native",
"request": "request"
},
module: {
rules: [
{ test: /\.ts$/, use: 'ts-loader' }
]
}
}
вы также можете создать это в том же файле и уменьшить дублирование (в зависимости от того, что вам подходит ) Я показал этот подход с двумя различными файлами для ясности