前言
日常积累,欢迎指正
1、问题描述
使用 Nuxt.js 官网提供的 新手模板 做 vue SSR 时,该模板初始化不支持 ES Module 为了添加支持百度到的解决办法几乎都是使用 babel-node 解决,并且说 babel-node 是安装 babel-cli babel-core babel-preset-env 通过在命令中添加 --exec babel-node
即可的,如下:
注意 babel 版本
yarn add @babel/core @babel/cli @babel/preset-env -D
package.json
{
"scripts": {
"dev": "cross-env NODE_ENV=development nodemon server/index.js --watch server --exec babel-node",
"build": "nuxt build",
"start": "cross-env NODE_ENV=production node server/index.js --exec babel-node",
"generate": "nuxt generate",
"test": "jest"
}
}
.babelrc
{
"presets": [
[
"@babel/preset-env"
]
]
}
但是我根据说明操作之后总是报错babel-node 不是内部外部命令
2、解决方法
是手动安装一个 babel-node
yarn add @babel/node -D
安装之后在执行即可解决问题也可以正常使用 ES6 语法,如 ES Module
但是这不是 node 与 babel 结合的最佳方案
3、最佳推荐
You should not be using babel-node in production. It is unnecessarily heavy, with high memory usage due to the cache being stored in memory. You will also always experience a startup performance penalty as the entire app needs to be compiled on the fly.Check out the example Node.js server with Babel for an idea of how to use Babel in a production deployment.
4、关于 @babel/node
@babel/node 与 @babel/core @babel/cli @babel/preset-env 的关系?
独立 babel/node 能做什么?
疑惑中