Nodejs 避免 webpack 二次打包依赖
Nodejs 避免 webpack 二次打包依赖
实现了一个 webpack 插件,通过读取依赖自己的 webpack configuration 去解析依赖的源代码,如果你也有这个需求可以看一下webpac-resolve-config-plugin
1 回复
在 Node.js 项目中,如果你希望避免使用 Webpack 对依赖进行二次打包,可以通过配置 Webpack 的 externals
选项来实现。这种方式可以指示 Webpack 在打包时忽略特定的模块,并在运行时从外部环境中获取这些模块。
以下是一个示例配置,展示了如何使用 externals
选项来避免对依赖(例如 express
)进行二次打包:
const path = require('path');
module.exports = {
entry: './src/index.js',
output: {
filename: 'bundle.js',
path: path.resolve(__dirname, 'dist'),
},
externals: {
// 指定依赖项在运行时从外部获取
express: 'require("express")',
},
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader',
},
},
],
},
resolve: {
extensions: ['.js', '.json'],
},
};
在这个配置中,externals
对象中的键(例如 express
)是你在代码中 require
或 import
的模块名,值是一个字符串,表示这些模块在运行时如何从外部环境中获取。
通过这种配置,Webpack 将不会在打包结果中包含 express
模块,而是在运行时通过 require("express")
来获取它。这样,你就可以避免对依赖进行二次打包,从而提高打包效率和减小打包文件的大小。