简介
browserify-extract-registry 是一个可以将浏览器端使用的模块在 server 端转换为 Node.js 可使用的 CommonJS 模块的 npm 包。它可以帮助你将现有的浏览器端代码迁移到 Node.js 环境中,以便进行一些更进一步的处理和优化。
安装
使用 npm 进行全局安装:
npm install -g browserify-extract-registry
或者在项目中进行安装:
npm install --save-dev browserify-extract-registry
使用
假设我们的项目前端使用了 webpack 进行最终的打包和构建,我们先需要将 webpack 生成的 bundle 文件转换为 browserify 的 bundle:
browserify app.js > app.bundle.js
这里假设我们的应用入口文件是 app.js
,bundle 文件名为 app.bundle.js
。
接着我们使用 extract-registry
命令从 bundle 文件中提取出依赖信息:
browserify-extract-registry app.bundle.js > registry.json
这里假设我们将提取出的依赖信息存储在 registry.json
文件中。
最后我们可以使用 browserify
命令重新生成一个可以在 Node.js 环境中使用的 bundle:
browserify -o node.bundle.js -r ./registry.json app.js
这里我们指定输出的文件名为 node.bundle.js
,同时将提取到的依赖信息通过 -r
参数进行注册。需要注意的是,我们需要将提取出的依赖信息作为参数直接传递给 browserify
命令。
示例
我们可以使用以下示例代码进行测试。
app.js
// 引入依赖 var lodash = require('lodash'); var $ = require('jquery'); // 执行一些操作 console.log(lodash.each); console.log($('body'));
webpack 打包配置
-- -------------------- ---- ------- ----- ---- - ---------------- -------------- - - ------ ----------- ------- - --------- ---------------- ----- ----------------------- ------- - --
这里我们将应用的入口文件配置为 app.js
,将 webpack 生成的 bundle 存储在 dist
目录下。
转换为 Node.js 模块
生成 browserify bundle 文件
browserify app.js > app.bundle.js
提取依赖信息
browserify-extract-registry app.bundle.js > registry.json
生成 Node.js 模块
browserify -o node.bundle.js -r ./registry.json app.js
到此为止,我们已经成功将一个浏览器端使用的模块转换为 Node.js 可使用的模块了。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5eedc1d1b5cbfe1ea0611f32