您可以直接跳到本节的最后一部分以了解确切的问题吗?如需完整上下文,请从头开始阅读。
这就是我启动 Vue 项目的方式:
vue create awesome-frontend
选择所有默认值,并babel.config.js
在根目录中得到包含以下内容的文件:
module.exports = {
presets: [
'@vue/cli-plugin-babel/preset'
]
}
接下来,我在根目录中安装@babel/cli
、使用@babel/preset-env
并创建了一个演示,内容如下:express
npm
server.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
我尝试了以下操作:
.babelrc
1)在根目录下创建一个,内容如下:
{
"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.js
to的内容,.babelrc
然后删除了babel.config.js
。但是所有的 VUE 版本都运行良好。那未来安全吗?
尝试谷歌搜索,但可以找到任何有用的东西。提前致谢。