1

您可以直接跳到本节的最后一部分以了解确切的问题吗?如需完整上下文,请从头开始阅读。

这就是我启动 Vue 项目的方式:

vue create awesome-frontend

选择所有默认值,并babel.config.js在根目录中得到包含以下内容的文件:

module.exports = {
  presets: [
    '@vue/cli-plugin-babel/preset'
  ]
}

接下来,我在根目录中安装@babel/cli、使用@babel/preset-env并创建了一个演示,内容如下:expressnpmserver.js

import express from "express";
const app = express();
const port = 8080;

app.get('/',(req,res)=> {
  res.send('Express Home page')
});

app.listen(port,() => console.log(`Server started running on ${port}`));

现在我希望server.js使用带有预设的 babel 进行编译:preset-env我尝试了以下操作:

.babelrc1)在根目录下创建一个,内容如下:

{
    "presets": [
        "@babel/preset-env"
    ]
}

2)尝试在命令行中设置预设npx babel --preset @babel/preset-env server.js -d dist

在这两种情况下,babel.config.js似乎都优先考虑。如果确实是这样,那么我怎么能告诉 babel 在某些情况下忽略这个文件。有出路吗?

我的问题的一种解决方案是复制 to 的内容babel.config.js然后.babelrc删除babel.config.js,这样我的 VUE 构建不受影响(我真的不知道幕后发生了什么),然后我可以server.js通过忽略.babelrc使用此命令来构建

npx babel --no-babelrc --presets=@babel/preset-env server.js -d dist

现在我想知道这里到底发生了什么,有没有更好的解决方案来解决我的问题?

Q1:有什么方法可以忽略babel.config.js使用命令行,就像我们可以忽略.babelrc一样--no-babelrc

Q2:有什么办法可以在同一个项目下使用多个 babel config 文件?这样在使用 babel 编译时,我们可以提及使用哪个配置文件?

Q3:babel.config.js.babelrc本质上是一样的吗?如上所述,我复制了babel.config.jsto的内容,.babelrc然后删除了babel.config.js。但是所有的 VUE 版本都运行良好。那未来安全吗?

尝试谷歌搜索,但可以找到任何有用的东西。提前致谢。

4

0 回答 0