์ด Heroku ๋น๋ ํฉ์ ๋ค์ ์ค์์ npm prune
๋ฅผ ์คํํด์ผํฉ๋๋ค. https://github.com/gjaldon/heroku-buildpack-phoenix-static/blob/master/lib/build.sh#L137
๋ค์๊ณผ ๊ฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
npm ERR! invalid bin entry for package [email protected]. key=jsesc, value=bin/jsesc
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/samhstn/.npm/_logs/2019-12-18T17_08_55_527Z-debug.log
๋ค์ ๋๋ฒ๊ทธ ๋ก๊ทธ๋ฅผ ์์ฑํ์ต๋๋ค. 2019-12-18T17_08_55_527Z-debug.log
์ด ์ค๋ฅ๋ node_modules
๊ฐ์๋ ๊ฒฝ์ฐ npm prune
์คํํ ๋๋ง ๋ฐ์ํ๋ฉฐ jsesc
๋ชจ๋ ์ด์์์ ๋ฐ์ํ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ npm prune
๋ node_modules
์ค์นํ๋ฉด npm prune
์๋ํฉ๋๋ค.
์ด ์ค๋ฅ๋ Heroku ci์ ๊นจ๋ํ ๋น๋์ ๋ด osx ์ปดํจํฐ์ ๋ก์ปฌ์์ ๋ฐ์ํฉ๋๋ค.
์ด ์ ์ฅ์ ๋ณต์ ์์ : https://github.com/samhstn/invalid-bin-entry , ๋ค์ ์คํ :
cd assets
npm prune
์ค๋ฅ๋ฅผ ์์ฑ
์์ผ๋ก ์ด๋ฌํ ์ ํ์ ์ค๋ฅ๋ฅผ ๋๋ฒ๊น
ํ๋ ค๋ฉด ์ด๋ป๊ฒํด์ผํฉ๋๊น? ๊ทธ๋ฆฌ๊ณ npm prune
๋ช
๋ น์ ์ฑ๊ณต์ ์ผ๋ก ์คํํ๊ธฐ ์ํด Heroku ๋น๋ ํฉ์ ์ป์ผ๋ ค๋ฉด ์ด๋ป๊ฒํด์ผํฉ๋๊น?
ํจํค์ง ์ค์ ์ ์๋กญ๊ณ ๋งค์ฐ ์ ์ฌํ๊ณ ์ค๋ช ํ ์์๋ ์ค๋ฅ๊ฐ ์์ต๋๋ค. ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ๋ช ํํํ๊ธฐ ์ํด ์ฌ๊ธฐ์ ๋ต๋ณ์ ๊ธฐ๋ํฉ๋๋ค.
์ด๊ฒ์ ํฉ๋ฆฌ์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ์ฐพ์ ์์๋ ๋ช ์๋๋ ๊ณณ ์ค ํ๋์์ต๋๋ค.
npm "์๋ชป๋ ๋น ํญ๋ชฉ"
์ด๊ฒ์ด ์ต๊ทผ์ ๋ณํ ๋๋ฌธ์ผ ์ ์๋ค๊ณ ์์ฌํ๊ฒ ๋ง๋ญ๋๋ค.
๊ฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค
NPM : v6.13.4์์ ๋์ผํ ์ค๋ฅ ๋ฉ์์ง๊ฐ ๋ํ๋ฉ๋๋ค.
์ฌํํ๋ ๋จ๊ณ๋ OP์ ๋ค๋ฅด์ง๋ง ๋น์ทํ ์์ธ์ด๋ผ๊ณ ๊ฐ์ ํฉ๋๋ค.
์ฐ๋ฆฌ๋ ์ฌ์ฉ:
npm ci && npm prune --production
์ด๊ฒ์
error invalid bin entry for package
์ฌ์ฉ :
npm install && npm prune --production
๊ทธ๋ฌ๋ ์ ์๋ํฉ๋๋ค. npm install
๊ฐ ์ ํฉํ๋ค๊ณ ํ๋จ ๋ ๋๋ง๋ค package-lock / package.json์ ํฐ์นํ๊ณ ์ ์ฌ์ ์ผ๋ก์ด ๋ชจ๋ ์์
์ ์ํํ๊ธฐ ์ํด ๊ฑฐ๊ธฐ์ ๋ฌด์ธ๊ฐ๋ฅผ ์ถ๊ฐํ๊ธฐ ๋๋ฌธ์ ๊ฐ์ ํฉ๋๋ค.
๋๋ ์ด๊ฒ์ ๋ค์ ์ถ์ ํ์ต๋๋ค.
https://github.com/npm/bin-links/commit/25a34f905a0144cebcd41e56b6942117b267e005#diff -168726dbe96b3ce427e7fedce31bb0bcR85
v6.13.3 npm ๋ฆด๋ฆฌ์ค์ ์ถ๊ฐ๋์์ต๋๋ค.
๋๋ ์ง๊ธ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ํน๋ณํ ์ดํดํ์ง ๋ชปํฉ๋๋ค. ์ฆ์์ด ์๋๋ผ ์ค์ ์์ธ์ด ๋ฌด์์ธ์ง ์ดํดํ๊ธฐ ์ํด ๋์ค์ ๋ ์ ์ฝ์ ์ ์์ต๋๋ค.
6.13.3 ๋ฐ 6.13.4๊ฐ bin ๋ณด์ ๊ฒฐํจ์ ํด๊ฒฐํ๊ธฐ์ํ ๊ฒ์ด๋ฏ๋ก v6.13.2๋ก _ ๋ ๋๋ฆฌ๋ฉด ์๋ฉ๋๋ค.
https://blog.npmjs.org/post/189618601100/binary-planting-with-the-npm-cli
์ง๊ธ ๊ฐ์ฅ ์ข์ ์กฐ์น๋ ์ด๊ฒ์ด ๋ถ๋ฅ ๋ ๋๊น์ง, ์๋ง๋ ํด๊ฐ ๊ธฐ๊ฐ ์ดํ์ ์๋๋ฅผ ์ฌ์ฉํ์ง ์๋ ๊ฒ์
๋๋ค. :)
ํธ์ ๋ด์ ๊ฐ๊ธฐ
@isaacs (git-blame์ด ๋์๊ฒ ๊ทธ๋ ๊ฒ :)
๊ฐ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ๋ค์ํ ํจํค์ง๋ก๋ณด๊ธฐ :
+ npm prune
npm ERR! invalid bin entry for package [email protected]. key=portastic, value=bin/portastic
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2019-12-23T21_19_21_377Z-debug.log
์, ๋น์ ์ฐ๊ฒฐํ ๋ prune์ด ์์ ํ ํด๊ฒฐ ๋ ํด๋๋ฅผ ํต๊ณผํ์ง ๋ชปํ๋ ๊ฒ ๊ฐ์ต๋๋ค (๋ด๊ฐ ๋งํด์ผ ํ ๊ฒ์ _prune_์ด ๋น์ ์ฐ๊ฒฐํ๋ ์ด์ ๋ ๋ค์ ๋ถํ์ ํด ๋ณด์ด์ง๋ง ๊ด์ฐฎ์ต๋๋ค).
๋ค์ CLI ๋ฆด๋ฆฌ์ค์์ ์์ ๋ ๊ฒ์
๋๋ค. ๊ทธ๋์ npm ci --production
์ (๋ฅผ) ์ฌ์ฉํ์ฌ "production deps installed, but not dev deps"์ํ๋ฅผ ์ป์ ์ ์์ต๋๊น? ๋ฌผ๋ก ci
๊ฐ ๊ธฐ์กด node_modules
์ฐพ์ผ๋ฉด ๋ฒ๋ฆฌ๊ธฐ ๋๋ฌธ์ git repo์์ deps๋ฅผ ๋ฒ๋ค๋งํ๋ ๋ฐ ์์กดํ๋ค๋ฉด ์ข์ง ์์ ๊ฒ์
๋๋ค. ์ฌ์ฉํ ์์๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
์ด ์์ ์ฌํญ์ด ์ธ์ ์ ์ฉ๋๋์ง์ ๋ํ ์์์ด ์์ต๋๊น?
6.13.5๋ ๋ค์ ์ฃผ ํ์์ผ ์ธ 2019-01-07์ ์ถ์ ๋ ์์ ์ด๋ฉฐ,์ด ๋ฌธ์ ์ ๋ค๋ฅธ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ์ํ pacote ๋ฐ bin-links ์ ๋ฐ์ดํธ๊ฐ ํฌํจ๋ฉ๋๋ค.
์ฌ๊ธฐ์๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. ์ค๋ ์ ๋ฐ์ดํธ ๋ ์๊ฐ์ ๋๋ต์ ์ผ๋ก ์๊ณ ์์ต๋๊น?
์ด ๋ฌธ์ ๋ ์ง๋ ๋ฉฐ์น ๋์ ๋๋ฅผ ๋ฏธ์น๊ฒ ๋ง๋ค์์ต๋๋ค. ์ธ์ ์์ ์ฌํญ์ด ๋์ฌ์ง ์ ์ ์์ต๋๊น? TeamCity๋ฅผ ํตํด ๋ด ๋ชจ๋ ์๋ ๋ฐฐํฌ๊ฐ ์ค๋จ๋์ด ์ ํ์ ๋ฐฐํฌํ๊ณ QA ํ ์ ์์ต๋๋ค.
์ง์ฐ ๋ผ์ ์ฃ์กํฉ๋๋ค. GH Actions Windows CI์์ ์ด์ํ ์ค๋ฅ๋ฅผ ๋๋ฒ๊น ํ์ต๋๋ค. ์ฐ๋ฆฌ๋์ด ๋ฌธ์ ๋ฅผ ์์ผ๋ก ๋ฉฐ์น ๋ด๋ก ์ต๋ํ ์ค๋ ๊ฑธ๋ฆด ๊ฒ์ผ๋ก ์์ํฉ๋๋ค.
@jwwtaker ์์ ์ฌํญ์ด ๋์ฌ ๋๊น์ง ๋ช ๋ น์ ์ญ์์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
npm prune
npm v6.13.6
์ฌ์ฉํ์ฌ ์ฌ์ ํ ์๋ํ์ง ์์ต๋๋ค.
์๋ ์ค๋ช ์์ :
์ด ์ ์ฅ์ ๋ณต์ ์์ : https://github.com/samhstn/invalid-bin-entry , ๋ค์ ์คํ :
cd assets
npm prune
๋ค์ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
npm ERR! invalid bin entry for package [email protected]. key=jsesc, value=bin/jsesc
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/samhstn/.npm/_logs/2020-01-13T13_17_57_425Z-debug.log
๊ทธ๋ฆฌ๊ณ ๋ค์ ๋๋ฒ๊ทธ ๋ก๊ทธ : 2020-01-13T13_17_57_425Z-debug.log
๋์ผํ ๋ฌธ์ ๊ฐ ์์ง๋ง ๋ช
๋ น์ด Heroku ๋น๋ ํฉ์์ ์คํ๋๊ธฐ ๋๋ฌธ์ ์ด๋ฌํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. npm 6.13.2์์ ๋ฉ์ถฐ ์๊ฑฐ๋ (npm 6.13.3 ์ดํ๋ก ๋ฐ์) package-lock.json
์ ๊ฑฐํด์ผํฉ๋๋ค (์ด ํ์ผ์์๋ง ๋ฌธ์ ๊ฐ ๋ฐ์ ํจ). npm 6.13.5๋์ด๋ฅผ ์์ ํ์ง ์์ผ๋ฉฐ npm 6.13.6๋ ์์ ํ์ง ์์ต๋๋ค.
์ด @isaacs ์ ๋ํ ์ ๋ฐ์ดํธ๊ฐ ์์ต๋๊น?
๋ด Azure DevOps CI์์ ๋์ผํ ์ค๋ฅ๊ฐ ๋ฐ์ ํ์ผ๋ฏ๋ก ๋๊ตฐ๊ฐ ์ผ์์ ์ผ๋ก์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ๋์์ด ํ์ํ ๊ฒฝ์ฐ๋ฅผ ๋๋นํ์ฌ ๋ค์๊ณผ ๊ฐ์ดํ์ญ์์ค.
๊ทธ๊ฒ์ ๋๋ฅผ ์ํด ์ผํ์ต๋๋ค.
์์ ์ผ๋ถ ์ฌ๋๋ค๊ณผ ๋ฌ๋ฆฌ npm 6.13.4
์์ 6.13.6
ํ๋ฉด ์ ๊ฒฝ์ฐ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ผ๋ฏ๋ก ์ ์ด๋ _some_ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์์ ์๊ณ ์์ต๋๋ค. ๋๋ ๊ทธ๊ฒ์ด ๋ค๋ฅธ ๋ชจ๋ ์ฌ๋๋ค์๊ฒ๋ ๊ณ ์น ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
20 ์ผ์ด ์ง๋๋ฉด ์ ์ด๋ ์งํ ์ํฉ์ ์ ๋ฐ์ดํธํ๋ฉด ์ข์ ๊ฒ์ ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
6.13.5๋ ๋ค์ ์ฃผ ํ์์ผ ์ธ 2019-01-07์ ์ถ์ ๋ ์์ ์ด๋ฉฐ,์ด ๋ฌธ์ ์ ๋ค๋ฅธ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ์ํ pacote ๋ฐ bin-links ์ ๋ฐ์ดํธ๊ฐ ํฌํจ๋ฉ๋๋ค.