gpt4 book ai didi

cross-browser - 带有 babel-preset-env 的 Babel 似乎忽略了 browserslist 配置

转载 作者:行者123 更新时间:2023-12-04 16:03:58 25 4
gpt4 key购买 nike

我正在 npm 脚本中使用 browserslist 测试 Babel。

这是我当前的 package.json,其中 Babel 正在做我期望的事情:

{
"name": "npm-scripts-igloo",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"devserver": "live-server",
"watch-sass": "node-sass sass/style.scss css/style.css --output-style expanded --watch",
"compile-sass": "node-sass sass/style.scss css/style.compiled.css --output-style expanded",
"prefix-css": "postcss css/style.compiled.css --use autoprefixer -o css/style.prefix.css",
"compress-css": "node-sass css/style.prefix.css css/style.min.css --output-style compressed",
"build-css": "npm-run-all compile-sass prefix-css compress-css",
"babel": "babel app.js --watch -o js/app.compiled.js",
"start": "npm-run-all -p devserver watch-sass babel"
},
"browserslist": [
"last 5 versions"
],
"babel": {
"presets": [
[
"env",
{
"targets": {
"browsers": [
"cover 99.5%"
]
}
}
]
]
},
"author": "",
"license": "ISC",
"devDependencies": {
"@fortawesome/fontawesome-free": "^5.6.1",
"autoprefixer": "^9.4.7",
"babel-cli": "^6.26.0",
"babel-preset-env": "^1.7.0",
"live-server": "^1.2.1",
"node-sass": "^4.11.0",
"npm-run-all": "^4.1.5",
"postcss-cli": "^6.1.1"
}
}

我没有使用 .babelrc 文件或任何其他 Babel 配置。

我尝试使用 browserslist 键定位 Edge 16:
"browserslist": [
"Edge 16"
]

使用此配置,Babel 不应转换 constvar ,但确实如此,如此处所述:
Babel 不会改变 const,因为 Edge 16 支持它
https://github.com/browserslist/browserslist-example

但是,如果我使用 babel 键定位 Edge 16:
"babel": {
"presets": [
[
"env",
{
"targets": {
"browsers": [
"Edge 16"
]
}
}
]
]
}

那么 Babel 正确地不会改变 constvar因为 Edge 16 支持它。

我更喜欢使用 browserslist 键,因为这是推荐的做法
https://github.com/browserslist/browserslist

此外,我可以简单地与 autoprefixer 共享这个 browserslist 选项,这就是它应该如何工作的。

但是,问题是 Babel 似乎忽略了 browserslist 键。

如果我使用包含以下内容的 .browserslistrc 文件,情况也是如此:
Edge 16

这张幻灯片上有一个带星号的注释:
https://slides.com/ai/browserslist#/14
报告:
只有 Babel 7 支持配置文件

所以,我尝试将 Babel 更新到 v7:
npm install @babel/core -D

这在 devDependencies 中产生了以下内容:
"@babel/core": "^7.3.4"

不幸的是,这似乎没有任何区别。

所以,我的问题是:
  • 为什么 browserslist 键似乎没有影响 Babel?我的语法有问题吗?
  • browserslist 键出现在 package.json 中的哪个位置是否重要?即关键顺序重要吗?
  • 最佳答案

    尝试清理 node_modules/.cache/babel-loader 中的缓存

    关于cross-browser - 带有 babel-preset-env 的 Babel 似乎忽略了 browserslist 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54999961/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com