babel로 컴파일 된 npm 모듈을 TravisCI에서 릴리스
ES2015 코드로 개발하고 babel로 ES5로 컴파일합니다.
여기에 움직이는 코드는 놓여 있습니다. htps : // 기주 b. 코 m / 모오 kjp / 무 l 치 p 여 xy
전제
babel을 사용하여 다음과 같은 패키지 구성으로 ES2015에서 npm 모듈을 개발한다고 가정합니다.
.
├── dist # babelでコンパイルしたコードを配置
├── package.json
└── src # ES2015のコードを配置
├── main
│ ├── lib
│ ├── main.js
│ └── middleware
└── test
├── lib
└── middleware
패키지 설정
package.json
"scripts"
에 babel-cli
를 사용하여 ES2015 코드를 컴파일하는 프로세스를 추가합니다.또,
"main"
에는 컴파일 후의 코드를 지정합니다.// 省略
"main": "dist/main.js", # babelでコンパイルしたコード
"scripts": {
// 省略
"build": "babel src/main -d dist" # dist以下に出力
},
"devDependencies": {
"babel-cli": "^6.3.17",
// 省略、テスト用パッケージ等
}
.gitignore
ES2015에서 개발하고 있는 모듈이므로, babel로 컴파일한 후의 코드는 버전 관리는 불필요하다고 생각합니다.
.gitignore
에 babel로 컴파일한 코드를 포함하지 않도록 합니다.// 省略
dist/
.npmignore
npm publish
때 패키지의 루트 디렉터리.npmignore
없음 .gitignore
있다 .gitignore
에서 무시된 파일은 npm publish
때때로 무시됩니다.(참고: 개발자 | npm Documentation )
이번에는
dist/
아래에 빌드 된 ES5 파일을 배포하고 싶습니다 그래서 다음과 같은
.npmignore
를 씁니다.// 省略
# dist/
src/ # ES2015のソースコードが配置されているディレクトリ
TravisCI 설정
.travis.yml
deploy 단계를 설정합니다.
다음 예제에서는 TravisCI가 표준으로 제공하는 npm 패키지를 배포할 수 있는 provider를 그대로 사용합니다.
language: node_js
node_js:
- "4.1"
after_success:
- npm run-script build
deploy:
provider: npm
email: "[email protected]"
api_key: $NPM_API_KEY
skip_cleanup: true # `run-script build`で生成したES5のコードを消さないようにする
on:
tags: true
TravisCI 프로젝트 설정
TravisCI의 프로젝트 별 환경 변수 설정 항목에
$NPM_API_KEY
를 미리 설정하십시오.프로젝트 설정은 h tps://t 등ゔぃs-해. 오 rg / r 우세 r 핥기 / p 로지 ct / 의 오른쪽에
settings
라는 링크가 있으므로 거기에서 할 수 있습니다.$NPM_API_KEY
는 자신의 컴퓨터에서 npm login
후 다음 명령에서 확인할 수 있습니다.cat ~/.npmrc
//registry.npmjs.org/:_authToken=<Your key>
babel6의 default export 취급 정보
babel6에서는
export default
로 export 한 모듈에 require
로 액세스 할 때의 거동이 바뀌었습니다.다음과 같이 ES2015의
export default
를 사용했을 때는mybar.js
export default myVar;
아래와 같이
require
로 취득한 오브젝트의 default
를 참조할 필요가 있습니다.importing.js
// var myVar = require('myVar'); これはbabel6からは使えない
var myVar = require('myVar').default; // defaultオブジェクトを指定する
이번에 예로 하고 있는 프로젝트를 babel6 를 사용해 컴파일할 때는,
src/main/main.js
를 이하와 같이 쓸 수가 있습니다.이것은 ES5 코드이므로 babel 컴파일러를 통해서도 그대로
dist/main.js
에 쓰여집니다.src/main/main.js
module.exports = require('./lib/my_util').default; // ユーザー側からrequireを使ってアクセスされるであろうモジュール
npm 모듈의 사용자는 평소와 같이 감각으로
require
를 사용할 수 있습니다.npm install great-package
main-by-user.js
var myUtil = require('great-package');
Reference
이 문제에 관하여(babel로 컴파일 된 npm 모듈을 TravisCI에서 릴리스), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mookjp/items/8c2bc4e28ca5f51f22ca텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)