什么是 webpack-node-externals
在使用 webpack 进行服务器端打包时,需要把 Node.js 的原生模块剔除,使得最终输出的 bundle.js 不包含这些 Node.js 的原生模块。
webpack-node-externals 正是用来剔除 Node.js 原生模块的插件,它可以让你在服务器端应用程序中使用类似 Node.js 原生模块的代码,而无需将它们打包至 bundle 中。
@freeletics/webpack-node-externals 是一个为此目的量身定制的 npm 包。它专注于从 node_modules 中排除模块,以便使其能够在 Node.js 端使用。
安装和使用
安装
你需要安装 webpack-node-externals:
npm install @freeletics/webpack-node-externals
使用
在 webpack 配置文件中,在使用以往插件之前,加入如下代码:
const nodeExternals = require("@freeletics/webpack-node-externals"); module.exports = { // 此处省略其他配置 externals: [nodeExternals()], // ... }
这段代码将把 node_modules 中的模块排除在 bundle 之外。
更进一步地,如果你的应用使用了某些编译器或者 loader,你需要指示 webpack-node-externals 将这些编译器或者 loader 也排除在外。
-- -------------------- ---- ------- ----- ------------- - ---------------------------------------------- -------------- - - -- -------- ---------- - --------------- ---------- ---------------------- --- -- -- --- -
代码示例
以下代码示例演示了如何使用 webpack-node-externals 进行服务器端打包:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- ---- - ---------------- ----- ------------- - ---------------------------------------------- ----- ------------ - - ------ - ------- ------------------ -- ------- - ----- -------------------- -------- --------- ------------ -- ------- ------- ------- - ------ - - ----- -------- ---- ----------------- -- -- -- ---------- ------------------ -------- - --- ---------------------- ----------- ------- ----------- -------- --- -- ------------- - --------- ------ -- ----- - ---------- ------ -- -- -------------- - -------------
总结
对于服务器端打包,使用 webpack-node-externals 对于排除 node_modules 中的模块都是最有效的方法。除了排除 node_modules 中的模块之外,webpack-node-externals 也能排除编译器或者 loader,适用范围十分广泛。
使用 npm 包 @freeletics/webpack-node-externals,你可以轻松排除 node_modules 中的模块,使开发更加高效,方便,易于维护。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005668081e8991b448e2954