简介
module-deps-sortable 是一个基于 browserify 的打包工具,它可以对模块进行依赖关系排序,并生成符合依赖顺序的 js 代码。该工具适用于前端项目中的模块化开发。
安装
使用 npm 进行安装:
npm install module-deps-sortable --save-dev
使用
命令行使用
在命令行中使用 module-deps-sortable :
module-deps-sortable main.js > bundle.js
其中 main.js
是你主入口文件路径,bundle.js
是输出文件路径。
API 使用
使用 module-deps-sortable 的 API 进行打包:
-- -------------------- ---- ------- ----- ------ - ------------------------------- ----- ---- - - -------- ------------ -------- ---------- ------ ---- - ------------ ------------ -------- ----- - ----------------------- ------------ -- ----------------------------------------展开代码
其中 opts 是配置项,包括 entries(入口文件)、basedir(基目录)、debug 等选项,可根据需要进行设置。
示例
假设我们有如下文件结构:
-- -------------------- ---- ------- -------- --- ------- --- ---- - --- ---- - --- ---- - --- ---- --- ------------- --- ---- --- -------- --- ------------展开代码
主入口文件 main.js
代码如下:
const a = require('./lib/a') const b = require('./lib/b') const c = require('./lib/c') const foo = require('foo') console.log(`${a}, ${b}, ${c}, ${foo}`)
模块文件 lib/a.js
代码如下:
module.exports = 'a'
模块文件 lib/b.js
代码如下:
const a = require('./a') module.exports = `${a}b`
模块文件 lib/c.js
代码如下:
const b = require('./b') module.exports = `${b}c`
安装 module-deps-sortable 后,在命令行中运行:
module-deps-sortable main.js > bundle.js
或者在项目中使用 module-deps-sortable 的 API 进行打包:
-- -------------------- ---- ------- ----- ------ - ------------------------------- ----- -- - ------------- ----- ---- - - -------- ------------ -------- ---------- ------ ---- - ------------ ------------ -------- ----- - ----------------------- ------------ -- ----------------------------------------展开代码
都会生成一个符合依赖顺序的 bundle.js
文件,内容如下:
-- -------------------- ---- ------- --------- -------------- ------ -------- - --- ----------- - ------ ------- -- ----------- - ------- - ----- --- ------------- - ------- -- -------------- - ----------------------- -- - --- --- - ----------- -- -- -- - ----- --- -------------- -------- --- --- --------- --------- -- ------------------------- --- -------- - -- -- -------- ------ ---- -- - ----- -------- ---------------- ------- - -- -------------- - --- ------ - ----------- - - -------- -- -- ------------------------------------- ----------- - --- -- - -------------------- ------ ------------- - -- - --- -- ------- --------------- ------ --------------- - ------ -------------------- - --- ---- - - -- - - --------------- ---- - --- ------ - ----------- -- ----------- - --- ---- - - -- - - ----------------- ---- - -- --------------------- --------- ------------------------- - - - -------- ------------------------ ------- - ------ ------ - - -------- -- -- ---------- ---------------- --------------- - -- ------ - ----------------------------------------------------------- -------- ----------------------------------------------------------------------------------展开代码