npm publishする前にbuildとtestして、最後にgithubにもpushする
こうなる
build→test→npm publish→git push
色々問題があったので、考えていたら
問題については下の方に書く
code:package.json
"scripts": {
"build": "run-s build:*",
"build:clean": "rm -rf lib/",
"build:babel": "babel src/ --out-dir lib/",
"pretest": "npm run build",
"test": "run-s test:*",
"test:standard": "standard",
"test:mocha": "NODE_ENV=test mocha 'test/*.js' -r @babel/register -r @babel/polyfill --exit",
"prepublishOnly": "npm test",
"postpublish": "git push origin --tags && git push origin master"
}
publishする時
package.jsonの中の"version"が更新される
$ npm publish
これで全て完了する様にした
動作
毎回lib/削除し
testし
順に実行
問題と解決
lib/に不要なファイルが混ざってしまう
作業中に作ったファイルがbabelにコンパイルされて、残る
解決:毎回lib/を削除してからbuildする
buildするのを忘れて、npm publishできてしまう
作業フローの問題
npm publishする前に
github上でpull requestをmergeし、ローカルのmasterにpullし、ローカルでbuildする必要がある
これは大変
特に「ローカルでbuildする」を忘れてしまうケースが実際あった
test通らないコードがnpm publishできてしまう
testコードがtestする対象は、src/ではなくbuild結果のlib/にするべき
babelの更新が安全に行える様になる
src/ではなく、実際にnpm publishされるlib/の方をtestする
githubにpushし忘れる
publish後に、masterブランチとバージョンtagの両方をpushする必要がある
普通は覚えていられないshokai.icon
postpublishでgit pushする様にした
注意力散漫状態でもミスが起きないワークフローを作る
他の方法
検討したが、色々問題があってやめた