nestjs项目用webpack打包,包含node_modules,该如何配置webpack.config.js
时间: 2024-03-16 11:45:20 浏览: 328
在打包NestJS项目时,你需要使用Webpack配置文件来打包应用程序,同时还需要保留`node_modules`中的包。下面是一个简单的Webpack配置文件,可以帮助你完成这个任务:
```javascript
const path = require('path');
const nodeExternals = require('webpack-node-externals');
module.exports = {
entry: './src/main.ts',
mode: 'production',
target: 'node',
externals: [nodeExternals()],
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'main.js',
},
resolve: {
extensions: ['.ts', '.js'],
},
module: {
rules: [
{
test: /\.ts$/,
use: [{ loader: 'ts-loader' }],
},
],
},
node: {
__dirname: false,
__filename: false,
},
};
```
以上配置中,我们使用了`webpack-node-externals`来排除`node_modules`中的模块,避免将它们打包到输出文件中。同时,我们还需要将`target`设置为`node`,以便Webpack针对Node.js环境进行优化。另外,我们还需要在`output`选项中指定输出路径和输出文件名。
在`module`选项中,我们使用`ts-loader`来处理TypeScript文件,同时在`resolve`选项中添加了文件扩展名`.ts`和`.js`,以便Webpack能够正确地解析这些文件。
最后,我们还需要将`__dirname`和`__filename`设置为`false`,以便在打包后的文件中,这些变量能够正确地指向当前目录和文件名。
希望这个简单的Webpack配置文件能够帮助到你。
阅读全文