使用babelimport转换成node能使用的语法:
- 安装:npm install babel-cli babel-preset-env -D;
- 添加.babelrc文件:
{ "presets": [ [ "env", { "targets": { "node": "current" } } ] ] }
3.
-
安装nodemon :npm install nodemon -D;
-
修改package.json:
"scripts": { "dev": "nodemon -w src --exec \"babel-node src --prosets env\"" },
监控src文件夹下内容的变化
-
、src/expo.js
export const name = 'luke' export const getName = function (params) { return 'luke' } const age = 31 export default age export { // 批量导出 name as name2, getName as getName2, age as age2 }
在src/index.js做导入使用:
import { name } from "./expo"; import { getName } from "./expo"; import { name, getName } from "./expo"; import age from "./expo"; import { name as name3, getName2 as getName3, age as age2 } from "./expo"; console.log(name); console.log(getName());
-
export default 导出的,在导入的时候,不需要{};
-
生产环境使用babel,支持es6-7:在package.json下添加命令:
"scripts": { "build": "babel src -s -D -d dist --presets env" },
这样就把该目录下的文件都编译到了dist目录下
-
用rimraf模块可以做新增的编译监控,先删除旧的文件,再编译新的文件:npm install -D rimraf ;之后配置package.json文件中的
"scripts": { "dev": "nodemon -w src --exec \"babel-node src --prosets env\"", "build": "rimraf dist && babel src -s -D -d dist --presets env" },
之后修改index.js,
-
在package.json里面添加:
"scripts": { "production": "node dist" },
这时候使用命令npm run production 则会报错:regeneratorRuntime is not defined;
-
上面的原因是因为Async 转generator Function的时候,Async是ES7(ex2016)的特性,所以要借住插件:npm install -S babel-plugin-transform-runtime babel-runtime,安装之后,需要配置一下.babelrc文件:
{ "presets": [ [ "env", { "targets": { "node": "current" } } ] ], "plugins": [ [ "transform-runtime", { "polyfill": false, "regenerator": true } ] ] // "plugins": ["transform-runtime"], // "comments": false }
在重新npm run build --npm run production