Skip to content
This repository was archived by the owner on Mar 22, 2019. It is now read-only.

comparison.cn

e-cloud edited this page May 11, 2016 · 1 revision
Feature webpack/webpack jrburke/requirejs substack/node-browserify jspm/jspm-cli rollup/rollup
CommonJs require yes only wrapping in define yes yes commonjs-plugin
CommonJs require.resolve yes no no no no
CommonJs exports yes only wrapping in define yes yes commonjs-plugin
AMD define yes yes deamdify yes no
AMD require yes yes no yes no
AMD require loads on demand yes with manual configuration no yes no
ES2015 import/export no no no yes  yes
Generate a single bundle yes yes♦ yes yes yes
Load each file separate no yes no yes no
Multiple bundles yes with manual configuration with manual configuration yes no
Additional chunks are loaded on demand yes yes no System.import no
Multi pages build with common bundle with manual configuration yes with manual configuration with bundle arithmetic no
Concat in require require("./fi" + "le") yes no♦ no no no
Indirect require var r = require; r("./file") yes no♦ no no no
Expressions in require (guided) require("./templates/" + template) yes (all files matching included) no♦ no no no
Expressions in require (free) require(moduleName) with manual configuration no♦ no no no
Requirable files file system web file system through plugins file system or through plugins
Plugins yes yes yes yes yes
Preprocessing loaders, transforms loaders transforms plugin translate plugin transforms
Watch mode yes not required yes not needed in dev no
Debugging support SourceUrl, SourceMaps not required SourceMaps SourceUrl, SourceMaps SourceUrl, SourceMaps
Node.js built-in libs require("path") yes no yes yes node-resolve-plugin
Other Node.js stuff process, __dir/filename, global - process, __dir/filename, global process, __dir/filename, global for cjs global (commonjs-plugin)
Replacement for browser web_modules, .web.js, package.json field, alias config option alias option package.json field, alias option package.json, alias option no
Minimizing uglify uglify, closure compiler uglifyify yes uglify-plugin
Mangle path names yes no partial yes not required (path names are not included in the bundle)
Runtime overhead 243B + 20B per module + 4B per dependency 14.7kB + 0B per module + (3B + X) per dependency 415B + 25B per module + (6B + 2X) per dependency 5.5kB for self-executing bundles, 38kB for full loader and polyfill, 0 plain modules, 293B CJS, 139B ES6 System.register before gzip none for ES2015 modules (other formats may have)
Dependencies 19MB / 127 packages 11MB / 118 packages 1.2MB / 1 package 26MB / 131 packages ?MB / 3 packages

♦ in production mode (opposite in development mode)

X is the length of the path string

特性 webpack/webpack jrburke/requirejs substack/node-browserify jspm/jspm-cli rollup/rollup
CommonJs require yes 只能包裹于 define yes yes commonjs-plugin
CommonJs require.resolve yes no no no no
CommonJs exports yes 只能包裹于 define yes yes commonjs-plugin
AMD define yes yes deamdify yes no
AMD require yes yes no yes no
AMD require loads on demand yes 人工配置 no yes no
ES2015 import/export no no no yes  yes
Generate a single bundle yes yes♦ yes yes yes
Load each file separate no yes no yes no
Multiple bundles yes 人工配置 人工配置 yes no
Additional chunks are loaded on demand yes yes no System.import no
Multi pages build with common bundle 人工配置 yes 人工配置 需要打包算法 no
Concat in require require("./fi" + "le") yes no♦ no no no
Indirect require var r = require; r("./file") yes no♦ no no no
Expressions in require (guided) require("./templates/" + template) yes (所有匹配的文件) no♦ no no no
Expressions in require (free) require(moduleName) 人工配置 no♦ no no no
Requirable files 文件系统 web 文件系统 利用插件 文件系统 or 利用插件
Plugins yes yes yes yes yes
Preprocessing loaders, transforms loaders transforms 插件翻译 插件转换
Watch mode yes 不需要 yes 不需要 no
Debugging support SourceUrl, SourceMaps 不需要 SourceMaps SourceUrl, SourceMaps SourceUrl, SourceMaps
Node.js built-in libs require("path") yes no yes yes node-resolve-plugin
Other Node.js stuff process, __dir/filename, global - process, __dir/filename, global process, __dir/filename, global for cjs global (commonjs-plugin)
Replacement for browser web_modules, .web.js, package.json field, alias config option alias option package.json field, alias option package.json, alias option no
Minimizing uglify uglify, closure compiler uglifyify yes uglify-plugin
混淆路径名(Mangle path names) yes no 部分 yes 不需要 ( bundle 中不包含路径)
Runtime overhead 243B + 20B per module + 4B per dependency 14.7kB + 0B per module + (3B + X) per dependency 415B + 25B per module + (6B + 2X) per dependency 5.5kB for self-executing bundles, 38kB for full loader and polyfill, 0 plain modules, 293B CJS, 139B ES6 System.register before gzip none for ES2015 modules (other formats may have)
Dependencies 19MB / 127 packages 11MB / 118 packages 1.2MB / 1 package 26MB / 131 packages ?MB / 3 packages

♦ 生产模式下 (与开发模式相反)

X 路径字符串长度

Clone this wiki locally