2017-11-15 11 views
2

ノード9.2.0には言語の新機能がすべて追加されました。旧バージョンと下位互換性のあるノードモジュールを作成するにはどうすればよいですか?9.2.0のノードNPMモジュールを作成してノードの旧バージョンをサポートする

ノード9がそのままの状態でサポートされている小さなモジュールを持っている場合は、このようにします。

const {map} = require('lodash') 

async function test (...args) { 
    return map(args, (item) => { 
     return `${item} yeah` 
    }) 
} 

module.exports = test 

いずれかがあります、私はバベルのENVを使用してサポートする必要がある特定の下位バージョンのためにこれをtranspileするバベルを使用していましたか?条件付きでこれらのバベル開発の依存関係をロードする方法はありますか?インストール後のスクリプトを使用してノード4経由でインストールする方法はありますか?

答えて

0

これは、ノードの現在のバージョンがそれを必要としなくても、ちょうどその場合には、babel-runtimeが必要な場合の1つの欠点であるようです。しかし、9.2.0では、上のコードはビルドされたコードであり、単にバベルによって動かされています。

ここではpackage.jsonの例を示し、インストール時にsrcをビルドします。

{ 
    "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" 
      } 
     } 
     ] 
    ] 
    } 
} 
関連する問題