配置babel爬坑之路
背景介绍:
在node.js 项目中,使用es6规范的语法,其中用了import导入模块,所以用babel编辑器帮助转。
项目过程:
首先:由于需要babel转译,所以下载 @babel/node @babel/core @babel/preset-env
其次:新建 ‘.babelrc’ 文件,并配置。如下:
然后:在package.json中,配置脚本:nodemon --exec babel-node app.js【项目通过nodemon启动,app.js为入口文件】
最后:运行脚本,启动项目,此时项目正常启动。
这就完了吗?没有!!!发现通过pm2启动不了,查阅资料得知需要改变pm2解析器。具体解决办法请参考 《pm2 + babel-node 遇到的坑》
pm2解析器配置完成之后,启动之后提示babel-node路径不对,然后通过命令执行【babel-node app.js】发现babel-node找不到。
所以通过百度发现需要全局安装babel-cli babel-node。通过npm全局安装了babel-cli babel-node这两个模块,安装之后启动此时发现一个大坑,如下:
发现版本不对,重新卸载再安装依旧不对,网上查找发现让有的让安装babel/cli有的让安装babel-cli,结果都尝试了还是不对
解决办法:
第一步:将项目中的模块删除 @babel/node @babel/core @babel/preset-env
第二步:将全局安装的babel-cli babel-node删除【一定要删除】
第三步:将node_modules删除,重新install
第四步:重新安装 @babel/node @babel/core @babel/preset-env 【安装完成启动,发现babel-node 又找不到了】
第五步:全局安装 @babel/cli @babel/node 【在启动好了。发现之前安装的babel/cli或babel-cli、babel-node而现在安装的是@babel/cli @babel/node】
关于第五步另外说一点:
之前安装(babel/cli或babel-cli)和 babel-node 的安装目录在 /usr/local/lib/node_modules 和其他模块同一级,如下图
后边通过安装@babel/cli 和 @babel/node 发现他们被合并到@babel文件夹中了。
补充知识点:参考文件 -> https://segmentfault.com/q/1010000017876791
不过题主当时为了解决问题,引入了一堆冲突,这种情况首先应该移除所有 babel 相关依赖。
安装 babel-cli
默认安装依赖 babel/core 6.26.3
,基本可以说这种不带 @ 的语法将停留在 v6 版本里。
所以要用 v7 的话,就应该使用 @babel/cli
,提供 babel 命令行使用环境,这个版本并不会自动安装 @babel/core
,而是需要自行安装匹配依赖,所以要能执行 babel,再加上使得 node 能运行 JavaScript 新特性,最小安装为:
npm install @babel/cli @babel/core @babel/node @babel/preset-env -D