2017-11-15 1 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 

babel env를 사용하여 지원해야하는 특정 역방향 버전에 대해이 기능을 사용하려면 무엇이 있습니까? 조건부로 이러한 babel 개발 종속성을로드 할 수있는 방법이 있습니까, 설치 후 스크립트를 사용하여 노드 4를 통해 설치하는 방법이 있습니까?

답변

0

노드의 현재 버전이 필요하지 않은 경우에도 이것이 하나의 해법 중 하나 인 것처럼 보입니다. 단점이있는 경우에는 babel-runtime이 필요합니다. 그러나 9.2.0에서 위의 코드는 작성된 코드이며, 단순히 바벨 (babel)로 옮겨졌습니다.

다음은 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" 
      } 
     } 
     ] 
    ] 
    } 
} 
관련 문제