babel-runtime 作用了解,但官方文档中特意提醒生产与开发依赖的不同,github 发现 babel-runtime 对 babel-plugin-transform-runtime 有开发依赖,想问这两个插件有什么关系:
babel-runtime 作用了解,但官方文档中特意提醒生产与开发依赖的不同,github 发现 babel-runtime 对 babel-plugin-transform-runtime 有开发依赖,想问这两个插件有什么关系:
27 回答13.1k 阅读
8 回答3.5k 阅读✓ 已解决
6 回答1.3k 阅读✓ 已解决
5 回答5.3k 阅读✓ 已解决
4 回答1.6k 阅读✓ 已解决
3 回答1.7k 阅读
4 回答2.3k 阅读✓ 已解决
这个只针对Node.js的项目使用babel来编译的情况,如果是写前端项目(用webpack打包)的话,就可以无视这个问题了。
因为babel编译es6到es5的过程中,
babel-plugin-transform-runtime
这个插件会自动polyfill es5不支持的特性,这些polyfill包就是在babel-runtime
这个包里,所以babel-runtime
需要安装在dependency而不是devDependency。dependency和devDependency应该能明白吧。假如一个用户npm install 了你发布在npm上的一个包,他只会安装这个包的dependency依赖,devDependency是不会安装的,那么此时假如
babel-runtime
是安装在devDependency的话,有些polyfill就会找不到了。至于这两个包有什么区别,字面意思就能看出来,一个是转化的包(插件),一个是充满polyfill的包。