特性 | webpack/webpack | jrburke/requirejs | substack/node-browserify | jspm/jspm-cli | rollup/rollup | brunch/brunch | |
---|---|---|---|---|---|---|---|
附加模块按需加载 | yes | yes | no | System.import | no | no | |
AMD define
|
yes | yes | deamdify | yes | rollup-plugin-amd | yes | |
AMD require
|
yes | yes | no | yes | no | yes | |
AMD require 按需加载 |
yes | 手动配置 | no | yes | no | no | |
CommonJS exports
|
yes | 只包含在 define 中 |
yes | yes | commonjs-plugin | yes | |
CommonJS require
|
yes | 只包含在 define 中 |
yes | yes | commonjs-plugin | yes | |
CommonJS require.resolve
|
yes | no | no | no | no | ||
require 中拼接 require("./fi" + "le")
|
yes | no♦ | no | no | no | ||
调试支持 | SourceUrl, SourceMaps | 不需要 | SourceMaps | SourceUrl, SourceMaps | SourceUrl, SourceMaps | SourceMaps | |
依赖 | 19MB / 127 个程序包 | 11MB / 118 个程序包 | 1.2MB / 1 个程序包 | 26MB / 131 个程序包 | ?MB / 3 个程序包 | ||
ES2015 import /export
|
yes (webpack2) | no | no | yes | yes | yes, 通过 es6 模块转换器 | |
require (guided) 中的表达式 require("./templates/" + template)
|
yes (包括所有匹配的文件) | no♦ | no | no | no | no | |
require (free) 中的表达式 require(moduleName)
|
手动配置 | no♦ | no | no | no | ||
生成单独包 | yes | yes♦ | yes | yes | yes | yes | |
间接的 require var r = require; r("./file")
|
yes | no♦ | no | no | no | ||
分别加载每个文件 | no | yes | no | yes | no | no | |
损坏的路径名 | yes | no | 部分 | yes | 不需要(路径名称不在包中) | no | |
压缩 | uglify | uglify, closure compiler | uglifyify | yes | uglify-plugin | UglifyJS-brunch | |
用 common bundle 构建多页 | 手动配置 | yes | 手动配置 | 使用包算法 | no | no | |
多个 bundle | yes | 手动配置 | 手动配置 | yes | no | yes | |
Node.js 内置 libs require("path")
|
yes | no | yes | yes | node-resolve-plugin | ||
Node.js 其他 | process, __dir/filename, global | - | process, __dir/filename, global | process, __dir/filename, global for cjs | global (commonjs-plugin) | ||
插件 | yes | yes | yes | yes | yes | yes | |
预处理 | loaders, transforms | loaders | transforms | plugin translate | plugin transforms | compilers, optimizers | |
浏览器替换 |
web_modules , .web.js , package.json field, alias config option |
alias option | package.json field, alias option | package.json, alias option | no | ||
可 require 文件 | 文件系统 | web | 文件系统 | 通过插件 | 文件系统或通过插件 | 文件系统 | |
执行时(runtime)开销 | 243B + 20B 每个模块 + 4B 每个依赖 | 14.7kB + 0B 每个模块 + (3B + X) 每个依赖 | 415B + 25B 每个模块 + (6B + 2X) 每个依赖 | 5.5kB for 自执行 bundle, 38kB 全部 loader 和 polyfill, 0 普通模块, 293B CJS, 139B ES2015 System.register before gzip | none for ES2015 modules(可能有其他格式) | ||
开发文件监听(watch)模式 | yes | 不需要 | watchify | 开发不需要 | rollup-watch | yes |
webpack 和其他模块打包器之间的功能对比
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 2017.5.25 因为酒店包含双早,为了九点前赶上吃早餐,今天稍微早起了些:-P 10:30到达红旗渠景区 红旗...