我正在使用TypeScript创建一个NodeJS应用程序,并与Webpack打包在一起。创建捆绑软件时,不会导入所有外部模块,这会导致路径错误。
Google,Stackoverflow,与我的案件无关的信息。
var webpack = require('webpack');
var path = require('path');
var fs = require('fs');
const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
const TsconfigPathsPlugin = require('tsconfig-paths-webpack-plugin');
var nodeModules = {};
fs.readdirSync('node_modules')
.filter(function (x) {
return ['.bin'].indexOf(x) === -1;
})
.forEach(function (mod) {
nodeModules[mod] = 'commonjs ' + mod;
});
module.exports = {
mode: 'production',
entry: './src/proxy/main.ts',
target: 'node',
output: {
filename: 'main.js',
path: path.resolve(path.join(__dirname, '../../'), 'dist/proxy')
},
plugins: [
new UglifyJsPlugin({
test: /\.js($|\?)/i
})
],
resolve: {
extensions: ['.ts', '.tsx', '.js'],
plugins: [new TsconfigPathsPlugin()]
},
module: {
rules: [
{
test: /\.tsx?$/,
loader: 'ts-loader'
}
]
},
externals: nodeModules
};
外部程序很适合开发,但在生产中,我需要将所有外部库捆绑在main.js中。
答案 0 :(得分:0)
我建议采用这种方式来保存您的配置文件,而使用外部设备则更加方便且性能明智。我假设您将捆绑软件移到另一个目录,因此请确保也将node_modules/
移到其他位置,否则节点将找不到依赖项。