gpt4 book ai didi

npm - 有什么方法可以使用不同的配置和 babel 生成多个转译文件吗?

转载 作者:行者123 更新时间:2023-12-01 13:18:44 24 4
gpt4 key购买 nike

我对 NPM 脚本和 Babel 都很陌生。我以前使用过 Gulp,但我正在尝试转向 Webpack + NPM 脚本,甚至 NPM 仅在不需要 Webpack 时构建。这是后者的一个例子。

我愿意

  • 使用我的主要 ES6+ JS 文件 src/main.js
  • 使用 babel 生成一个相当现代的脚本文件 docs/main.js 使用如下目标:

    browsers: [
    'Chrome >= 60',
    'Safari >= 10.1',
    'iOS >= 10.3',
    'Firefox >= 54',
    'Edge >= 15',
    ],
  • 再次使用 babel 生成更“传统”的脚本版本 docs/main.legacy.js 使用如下目标:

    "browsers": ["> 1%, not ie 11, not op_mini all"]

  • 使用 npm 脚本从中创建两个构建任务,稍后我可以将它们放入一个命令中,例如 npm run build

看完Philip Walton's article关于在他的构建过程中创建多个目标,我想知道:

  1. 仅当我不需要 Webpack 时才可以使用 NPM 脚本吗?
  2. 启用此类功能的推荐操作步骤是什么?

我的尝试:package.json

"scripts": {
"buildModern": "babel src/main.js -o docs/main.js -presets=env",
"buildLegacy": "babel --no-babelrc src/main.js > docs/main.legacy.js",
"build": "echo '=> Building Source Files' && buildModern && buildLegacy"
},

最佳答案

因此,对于将来可能偶然发现此问题并希望做类似事情的任何人来说,这就是我的想法。感谢 Dan 的建议。

  1. 您需要创建一个 .babelrc 文件,并在其中使用 "env" 选项,该选项将包含任意数量的环境。
  2. 设置 BABEL_ENV=namename 替换为配置文件中指定的名称之一。
  3. 用你的 babel cli 命令或任何你想做的事跟进。例如。

    cross-env BABEL_ENV=modern babel src/js/main.js -o docs/js/main.min.js && echo Building ES6+ Files...`
  4. 确保根据需要安装必要的 npm 依赖项。希望这会有所帮助。

这是我的配置文件的例子

{
"env": {
"legacy": {
"presets": [
["minify"],
["env", {
"targets": {
"browsers": ["> 1%, not ie 11, not op_mini all"]
}
}]
]
},
"modern": {
"presets": [
["minify"],
["env", {
"targets": {
"browsers": [
"Chrome >= 60",
"Safari >= 10.1",
"iOS >= 10.3",
"Firefox >= 54",
"Edge >= 15"
]
}
}]
]
}
}
}

关于npm - 有什么方法可以使用不同的配置和 babel 生成多个转译文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52015969/

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