我尝试配置环境以使用babel和webpack开发javascript。
但是我不了解关于presets
的babel配置。
在Usage Guide中,我们可以看到带有"@babel/env"
的预设。
但是在文档中的其他位置,我无法看到更多这样的配置,而不是"@babel/preset-env"
。例如这里https://babeljs.io/docs/en/babel-preset-env
我的英语不好,我无法找到"@babel/env"
和"@babel/preset-env"
之间的区别,我确实一次又一次地阅读文档,没有运气。
也许他们是一样的吗?
顺便说一句,目标集似乎不起作用,删除目标也可以在ie9 +(或默认目标是什么)中正常运行,如果我希望将es6脚本转换为兼容ie8,那么它就不是最重要的了。
这是我的项目sdk-dev-env
// https://babeljs.io/docs/en/configuration
const presets = [
[
'@babel/env',
{
// https://babeljs.io/docs/en/babel-preset-env#targets
// TODO: how to compatibilite with ie 8
targets: {
ie: '8',
edge: '17',
firefox: '60',
chrome: '67',
safari: '11.1'
/**
* you can also set browsers in package.json
* "browserslist": ["last 3 versions"]
* relative links:
* https://github.com/browserslist/browserslist
*/
},
corejs: '3',
// corejs: { version: 3, proposals: true },
/**
* https://babeljs.io/docs/en/usage#polyfill
* https://github.com/zloirock/core-js#babelpreset-env
* "usage" will practically apply the last optimization mentioned above where you only include the polyfills you need
*/
useBuiltIns: 'usage'
}
]
]
const plugins = []
if (process.env['ENV'] === 'prod') {
// plugins.push(...);
}
module.exports = { presets, plugins }
我希望知道它们是相同的还是不同的,
以及将babeljs 7.4与core-js 3结合使用的最佳方法
答案 0 :(得分:0)
也许他们是一样的吗?
是的,preset-
是可选的。既然你在做
presets: ["@babel/env"]
Babel已经知道它是一个预设,因此它将preset-
自动添加到模块名称中。