infly-libs
Version:
工具组件库
39 lines (36 loc) • 1.23 kB
JavaScript
/**
* 用于将一些常用的库打包压缩成模块文件 libs/ 而不依赖node_modules
*/
const path = require("path");
const nodeExternals = require("webpack-node-externals");
const libName = "connect";
module.exports = {
mode: "production",
target: "node", // 关键配置:生成Node环境兼容代码
entry: "./lib/index.js",
output: {
filename: `${libName}.js`,
path: path.resolve(__dirname, "lib/server"),
libraryTarget: "commonjs2" // 符合Node模块规范
},
externals: [
nodeExternals({
allowlist: [libName], // 强制打包含路径操作的模块
modulesFromFile: true // 自动读取package.json的dependencies
})
],
module: {
rules: [
{
test: /\.js$/,
exclude: new RegExp(`/node_modules\\/(?!(${libName})\\/).*`), // 仅编译目标模块
use: "babel-loader" // 可选:如需语法降级
}
]
},
optimization: {
splitChunks: false, // 关闭代码分割
runtimeChunk: false, // 禁用runtime文件生成
minimize: false // 关闭代码压缩
}
};