将现有的遗留库转换为 es6 模块

bac*_*ces 10 javascript legacy module ecmascript-6

注意:这是一个延续:将旧的 JavaScript 代码转换为 ES6 模块 .. 解决了 OPs 问题但没有提供答案。

所有现代浏览器现在都包含原生 es6 模块(除了我们希望很快登陆的 chrome)。问题是如何使用本机支持将现有库转换为 es6 模块。

这适用于不使用转译(webpack、babel、system.js 等)供自己使用但依赖于遗留代码的当前项目。

是否有任何现有的工作流工具支持将旧库转换/包装为 es6 可导入?我真的很想避免<script>在页面的 html 中使用标签。

小智 2

您可以使用Lebab将文件从 es5 批量转换为 es6。

Lebab将您的 ES5 代码转译为 ES6/ES7。

它的作用与Babel 的作用完全相反。

该网站已损坏,但我找到了他们网站的源代码,并从分支中重新部署了它,以便您可以在将其应用于潜在重要文件之前看到它的作用......

#演示

安装

使用 npm 安装它:

$ npm install -g lebab
Run Code Online (Sandbox Code Playgroud)

用法

使用 cli 工具转换旧式代码lebab,实现特定转换:

$ lebab es5.js -o es6.js --transform let
Run Code Online (Sandbox Code Playgroud)

或者就地转换整个文件目录:

# .js files only
$ lebab --replace src/js/ --transform arrow
# For other file extensions, use explicit globbing
$ lebab --replace 'src/js/**/*.jsx' --transform arrow
Run Code Online (Sandbox Code Playgroud)

我个人的工作流程如下


npm i lebab -g

Run Code Online (Sandbox Code Playgroud)

安全的:

 lebab --replace ./ --transform arrow
 lebab --replace ./ --transform arrow-return
 lebab --replace ./ --transform for-of
 lebab --replace ./ --transform for-each
 lebab --replace ./ --transform arg-rest
 lebab --replace ./ --transform arg-spread
 lebab --replace ./ --transform obj-method
 lebab --replace ./ --transform obj-shorthand
 lebab --replace ./ --transform multi-var

Run Code Online (Sandbox Code Playgroud)

全部:

lebab --replace ./ --transform obj-method
lebab --replace ./ --transform class
lebab --replace ./ --transform arrow
lebab --replace ./ --transform let
lebab --replace ./ --transform arg-spread
lebab --replace ./ --transform arg-rest
lebab --replace ./ --transform for-each
lebab --replace ./ --transform for-of
lebab --replace ./ --transform commonjs 
lebab --replace ./ --transform exponent
lebab --replace ./ --transform multi-var
lebab --replace ./ --transform template
lebab --replace ./ --transform default-param
lebab --replace ./ --transform  destruct-param 
lebab --replace ./ --transform includes
lebab --replace ./ --transform obj-method
lebab --replace ./ --transform class
lebab --replace ./ --transform arrow
lebab --replace ./ --transform arg-spread
lebab --replace ./ --transform arg-rest
lebab --replace ./ --transform for-each
lebab --replace ./ --transform for-of
lebab --replace ./ --transform commonjs 
lebab --replace ./ --transform exponent
lebab --replace ./ --transform multi-var
lebab --replace ./ --transform template
lebab --replace ./ --transform default-param
lebab --replace ./ --transform  destruct-param 
lebab --replace ./ --transform includes


Run Code Online (Sandbox Code Playgroud)

或者我使用 vscode es5 到 es6 转换器插件...