在9.2.0中创build节点NPM模块以支持旧版本的节点

既然Node 9.2.0具有该语言的所有新function,那么我该如何创build一个与旧版本向后兼容的节点模块?

如果我有一个Node 9支持的小模块,就像这样。

const {map} = require('lodash') async function test (...args) { return map(args, (item) => { return `${item} yeah` }) } module.exports = test 

是否有任何使用巴贝尔这个具体的后退版本,我需要支持使用巴贝尔env transpile? 有没有什么办法可以有条件地加载这些babel开发的依赖关系,比如说使用安装后的脚本通过Node 4来安装?

看来这是一个解决scheme,其中一个缺点是它需要babel-runtime作为dep,以防万一,即使当前版本的节点不需要它。 但在9.2.0中,上面的代码是内置的代码,只是由babel移动。

这里有一个package.json的示例,安装它将构buildsrc。

 { "name": "example", "version": "1.0.0", "main": "lib/index.js", "scripts": { "build": "babel src -d lib", "postinstall": "npm run build" }, "dependencies": { "babel-runtime": "^6.26.0", "lodash": "^4.17.4" }, "devDependencies": { "babel-cli": "^6.26.0", "babel-plugin-transform-runtime": "^6.23.0", "babel-preset-env": "^1.6.1" }, "babel": { "plugins": [ "transform-runtime" ], "presets": [ [ "env", { "targets": { "node": "current" } } ] ] } }