ES6 Tools
Transpilers¶
- Babel - 将 ES6+ 代码转换为没有运行时的普通 ES5
- Traceur compiler - ES6 特性 > ES5. 包括类、生成器、承诺、解构模式、默认参数等.
- es6ify - 跟踪器编译器包装为 Browserify v2变换
- babelify - Babel 转译器包装成 Browserify 转换
- es6-transpiler - ES6 > ES5. 包括类、解构、默认参数、传播
- 广场 es6-module-transpiler - ES6 模块到 AMD 或 CJS
- 脸书 regenerator - 将 ES6 yield/generator 函数转换为 ES5
- 脸书 jstransform - 用于可插入 JS 语法转换的简单实用程序. 附带一小组 ES6 -> ES5 转换
- defs - ES6 块作用域 const 和 let 变量到 ES3 变量
- es6_module_transpiler-rails - Rails 资产管道中的 ES6 模块
- Some Sweet.js macros 从 ES6 编译到 ES5
- 比托维 transpile - 将 ES6 转换为 AMD、CJS 和 StealJS.
- regexpu — 将 Unicode-aware ES6 正则表达式转换为 ES5
- Lebab - ES5 代码到 ES6 的转换(近似值)
Build-time transpilation¶
Gulp Plugins¶
巴别塔: gulp-babel 绘图仪: gulp-traceur 再生器: gulp-regenerator * ES6 模块转译器: gulp-es6-module-transpiler * es6 转译器: gulp-es6-transpiler - ES6 → ES5 * es6-js转换: gulp-jstransform - ES6 → ES5 使用 FB jstransform 正则表达式: gulp-regexpu *打字稿: gulp-typescript
Grunt Tasks¶
巴别塔: grunt-babel - 将 ES6+ 代码转换为没有运行时的普通 ES5 绘图仪: grunt-traceur ES6 > ES5 转译, grunt-traceur-build * ES6 模块转译器: grunt-es6-module-transpiler 再生器: grunt-regenerator - ES6 生成器函数到 ES5 * grunt-microlib - 使用 ES6 模块转译器的库工具(样本 Gruntfile) * grunt-defs - ES6 块作用域 const 和 let 变量,到 ES3 * es6 转译器: grunt-es6-transpiler - ES6 → ES5 打字稿: grunt-ts - ES6+ > ES5/ES3 转译
Broccoli Plugins¶
巴别塔: broccoli-babel-transpiler 绘图仪: broccoli-traceur 再生器: broccoli-regenerator * ES6 编译器: broccoli-transpiler * ES6 模块转译器: broccoli-es6-module-transpiler * ES6 胖箭转译器: broccoli-es6-arrow 打字稿: broccoli-tsc
Brunch Plugins¶
巴别塔: babel-brunch * ES6 模块转译器: es6-module-transpiler-brunch 打字稿: typescript-brunch
Webpack plugins¶
巴别塔: babel-loader 绘图仪: traceur-compiler-loader *打字稿: awesome-typescript-loader
Duo plugins¶
巴别塔: duo-babel 打字稿: duo-typescript
Connect plugins¶
巴别塔: babel-connect 打字稿: typescript-middleware
Gobble plugins¶
巴别塔: gobble-babel 绘图仪: gobble-es6-transpiler
Jade plugins¶
巴别塔: jade-babel 绘图仪: jade-traceur
Jest plugins¶
*巴别塔: babel-jest
Karma plugins¶
巴别塔: karma-babel-preprocessor 绘图仪: karma-traceur-preprocessor *打字稿: karma-typescript-preprocessor
Sprockets plugins¶
巴别塔: sprockets-es6 绘图仪: sprockets-traceur *打字稿: typescript-rails
Browser plugins¶
- Scratch JS - 使用 Babel 或 Traceur 在页面上运行 ES6 的 Chrome/Opera DevTools 扩展
- generator-typescript - 用于 TypeScript 应用程序的 Yeoman 生成器
Mocha plugins¶
- Mocha Traceur - Mocha 通过 Traceur 编译器传递 JS 文件的简单插件
Module Loaders¶
- ES6 Module Loader polyfill (与最新规格和 Traceur 兼容)
- js-loaders - Mozilla 的规范兼容加载器原型
- JSPM - ES6、AMD、CJS模块加载/包管理
- Babel Module Loader
- beck.js - 用于 ES6 模块加载器管道的工具包,用于遗留环境的垫片
Boilerplates¶
- es6-boilerplate - 允许社区现在通过 traceur 结合 amd 和浏览器全局模块使用 es6 的工具,在真实浏览器中使用源映射、连接、缩小、压缩和单元测试.
- es6-jspm-gulp-boilerplate - 允许社区现在通过 babel 结合 jspm 使用 es6 的工具,在使用 es6 的真实浏览器中使用源映射、连接、缩小、压缩和单元测试.
Code generation¶
- generator-node-esnext - 用于绘图仪应用程序的 Yeoman 生成器
- generator-es6-babel - Babel 应用程序的 Yeoman 生成器
- generator-gulp-babelify - Yeoman 发电机 Babel, Browserify 和 Gulp
- grunt-init-es6 - 带有单元测试的脚手架节点模块,在 ES6 中编写
- Loom generators with ES6 ember modules
- 早午餐 plugin 用于 ES6 模块转译
Polyfills¶
- core-js - ES6 的模块化和紧凑的 polyfill,包括 Symbols、Map、Set、Iterators、Promises、setImmediate、Array generics 等.使用的标准库 Babel.
- es6-shim - 几乎所有新的 ES6 方法——来自 Map、Set、String、Array、Object、Object.is 等等.
- WeakMap, Map, Set, HashMap - ES6 Collections
- 聚合物 WeakMap shim
String.prototype.startsWith
String.prototype.endsWith
String.prototype.at
String.prototype.repeat
String.prototype.includes
String.prototype.codePointAt
String.fromCodePoint
Array.prototype.find
Array.prototype.findIndex
Array.from
Array.of
Object.assign
Number.isFinite
Math.sign
RegExp.prototype.match
RegExp.prototype.search
- es6-promise - 匹配 ES6 API 的 Promises 的 polyfill
- ES6 Map Shim - 尽可能符合最新规范的破坏性垫片.
Function.create
- ES6 shim
- ES6 Symbol polyfill
- ES6 Map, Set, WeakMap
- harmony-reflect - ES6 reflection module (包含 Proxy API)
- ES5 based shims in pure CJS style - Array、Object、Number、Math 和 String 函数/方法,以及 Map、Set、Symbol 和 WeakMap 对象
Editors¶
- ES6 语法高亮 Sublime Text and TextMate
- 中的 ES6 语法支持 WebStorm 和 PhpStorm, 编译为 ES5 与 file watchers or task runners
- 文档管理器 plugin 对于绘图仪 *语法和转译 package 为了 Atom
- 学习 Webstorm 中的 ES6 转译选项 Read Blog Post
Parsers¶
- Esprima - 支持 ES6 的 JavaScript 解析器,解析为 ESTree AST format
- Acorn - 一个小型、快速、基于 JavaScript 的 JavaScript 解析器,支持 ES6,解析为 SpiderMonkey AST 格式.
- esparse - 用 ES6 编写的 ES6 解析器.
- Traceur compiler 在 traceur.syntax.Parser 下也有内置的解析器.
Other¶
- ES.next showcase - ES6 特性的真实使用示例
- looper - ES6 静态分析工具
- es6-module-packager
- es-dependency-graph 和 grunt-es-dependency-graph - Generate a list of imports 和 exports from ES6 module files, useful for preloading, bundling, etc.
- es6-import-validate 和 grunt-es6-import-validate - 验证 ES6 模块中匹配的命名/默认导入语句.
- let-er - 转译 let-block block-scoping (不被 ES6 接受)进入 ES3 或 ES6
- Recast - 基于 Esprima 的 JavaScript 语法树转换器、保守的漂亮打印机和自动源映射生成器. 由上面列出的几个转译器使用,包括 regenerator 和 es6-arrow-function.
- Paws on ES6 - ES6 功能的极简示例.
- ES6 on node - 如何在 node.js 中使用 ES6 特性.
- es6-translate - 使用 ES6 加载器挂钩在 ES6 中加载(节点风格的)commonjs 包.
- Isparta
- babel-node - 使用 Babel 运行带有 ES6 转译的节点 cli.
- ES6 Lab setup - 使用带有
gulp
和jasmine
支持的Babel
或traceur
将 ES6 转换为 ES5 的简单设置. - TypeScript - 具有严格类型的 ECMAScript 超集,旨在与 ES6 保持一致
- Rollup - Rollup 是下一代 JavaScript 模块打包器. 使用 ES2015 模块编写您的应用程序或库,然后将它们有效地捆绑到一个文件中以供在浏览器和 Node.js 中使用