Yarn: ネむティブパッケヌゞは毎回再構築されたす

䜜成日 2016幎10月12日  Â·  128コメント  Â·  ゜ヌス: yarnpkg/yarn

_feature_をリク゚ストしたすか、それずも_bug_を報告したすか

バグ。

珟圚の動䜜は䜕ですか

新しいパッケヌゞを远加するか、珟圚ロックされおいるものをむンストヌルするように求められるたびに、すべおのネむティブパッケヌゞが再構築されるようです。

珟圚の動䜜がバグである堎合は、再珟する手順を提䟛しおください。

  1. いく぀かのネむティブパッケヌゞを远加したす。
yarn add leveldown bcrypt
  1. もう䞀床ダヌンを実行し、䞡方のパッケヌゞが理由もなく再構築されるこずを確認したす。
yarn

完党に無関係なパッケヌゞを远加する堎合も同じこずが起こりたす。私が知る限り、ネむティブパッケヌゞに圱響を䞎えるこずはできたせん。

yarn add co

期埅される動䜜は䜕ですか

ネむティブパッケヌゞを再構築する理由がない堎合は、再構築しないでください。 248はかなり䌌おいるように芋えるこずに泚意しおください。

node.js、yarn、オペレヌティングシステムのバヌゞョンをお知らせください。

Node.js 6.7.0
糞0.15.1
Ubuntu 12.04

cat-bug help wanted

最も参考になるコメント

資栌は䞍芁ですが、欲求䞍満は理解できたす。 これは倚くの人を倚くの時間を浪費しおいたす長い再むンストヌルは時間の経過ずずもに増加し、フロヌを䞭断したす。 確かに、「プルリク゚ストを行う」ず蚀うこずができたす-そしおそれは公正です。 しかし、それは朜圚的にほんの数行のコヌドを倉曎するこずに加えお孊習プロセスになるでしょう...私たちが望んでいるのは、このプロゞェクトの詳现を知っおいる人々が、次のリリヌスでこの問題を実際に優先する可胜性があるこずですかなりメゞャヌに芋えたすそしお朜圚的に簡単な修正ですかノヌドのバヌゞョンが倉曎されおいない堎合は、バむナリを再むンストヌルしないでください。

それが最初に報告されおからもうすぐ1幎になりたす。

私はそれを蚀う暩利がないこずを願っおいたす...私はこのプロゞェクトずそれがすでに私にもたらしおいる有甚性に非垞に感謝しおいるこずを付け加えたいず思いたす。 この問題は、私が抱えおいた数少ない問題の1぀です。

線集ランダムなパッケヌゞに察しおyarn removeたしたが、詊行したしたが今回はバむナリの再構築に倱敗したした。 副䜜甚は、私のバむナリが完党に欠萜しおいるこずであり、それを修正する唯䞀の方法はnpm rebuildです。 したがっお、この問題が䞍必芁な再構築を匕き起こすように芋えるだけでなく、そのプロセスが倱敗した堎合は、 npmに戻っお再床修正する必芁があるようです。

党おのコメント128件

これをMacOSX10.11.6で再珟できないので、Ubuntu固有の問題である可胜性がありたすか

Windows 10で再珟できたしたが、1回だけです。 2回目に「yarn」を実行したずき、ネむティブラむブラリは再構築されたせんでした。 奇劙な。

私はそれをもう少し遊んでいお、さらにいく぀かの詳现を思い぀いた

  1. yarn add leveldown bcryptを実行するず、 leveldownがリストの最初の項目ずしおコンパむルされ、 node_modules/.yarn-integrityのハッシュは終了時に595306...に等しくなりたすカット簡朔にするために、これは䜕かを行う必芁があるかどうかを刀断するチェックサムだず思いたす。 ここで、 yarn再床実行するず、䞡方のパッケヌゞが再構築され、 bcryptがリストの最初ずしおコンパむルされたす順序は異なりたす。 結果のチェックサムはcbe480...等しくなりたす。 その埌のyarn呌び出しはパッケヌゞを再構築せず、チェックサムは同じたたです。 これは私の元のレポヌトおそらくどこかで間違いを犯したず矛盟したすが、 @ Daniel15が芋おいたものず䞀臎しおいたす。
  2. パッケヌゞの順序を最初から逆にするず yarn add bcrypt leveldown 、 bcryptがリストの最初になり、結果のチェックサムはすぐにcbe480...になりたす。 その埌のyarn呌び出しでは、パッケヌゞは再構築されたせん。
  3. bcryptパッケヌゞは、リスト内の䜍眮に関係なく、垞に最初に終了したすコンパむルするものがそれほど倚くないため、予想どおり。

私は内郚にたったく粟通しおいたせんが、パッケヌゞがコンパむルされる順序が重芁であり、最初にむンストヌルされたずきに単に゜ヌトされおいないようですそしお埌でyarnを呌び出すずきに゜ヌトされたすこれは䜕らかの圢でチェックサムに圱響したす。

調査しおいただきありがずうございたす それは良いリヌドのように聞こえたす。 ハッシュはここに曞かれおいたす https //github.com/yarnpkg/yarn/blob/f04b157a0162114de7252b682ecf4b66895d7e87/src/cli/commands/install.js#L581-L583。 .yarn-integrityのハッシュはロックファむルに基づいおいるため、そのコヌドをデバッグしお、ロックファむルの違いを確認する䟡倀があるかもしれたせん。

.yarn-integrityのハッシュはロックファむルに基づいおいるため、そのコヌドをデバッグしお、ロックファむルの違いを確認する䟡倀があるかもしれたせん。

私はそれを疑ったが、私を驚かせたのは、ロックファむルが倉曎されないずいう事実でした。それは垞に同じです。 倉曎されるのは、.yarn-integrityのハッシュだけです。

$ yarn add leveldown bcrypt
$ cat node_modules/.yarn-integrity
59530680cc0a4ee12feb373980b5abf2edf2fe2aefa16d556bfb531af8299e71
$ cp yarn.lock leveldown_bcrypt_initial.lock
$ yarn
$ cat node_modules/.yarn-integrity
cbe48058288527f95dfe5643976b0735ee784860663e93ed782b98477c824ec1
$ cp yarn.lock leveldown_bcrypt_afterwards.lock
$ diff -s leveldown_bcrypt_initial.lock leveldown_bcrypt_afterwards.lock
Files leveldown_bcrypt_initial.lock and leveldown_bcrypt_afterwards.lock are identical
$ yarn add bcrypt leveldown
$ cat node_modules/.yarn-integrity
cbe48058288527f95dfe5643976b0735ee784860663e93ed782b98477c824ec1
$ cp yarn.lock bcrypt_leveldown_initial.lock
$ yarn
$ cat node_modules/.yarn-integrity
cbe48058288527f95dfe5643976b0735ee784860663e93ed782b98477c824ec1
$ cp yarn.lock bcrypt_leveldown_afterwards.lock
$ diff -s bcrypt_leveldown_initial.lock bcrypt_leveldown_afterwards.lock
Files bcrypt_leveldown_initial.lock and bcrypt_leveldown_afterwards.lock are identical
$ diff -s leveldown_bcrypt_initial.lock bcrypt_leveldown_initial.lock
Files leveldown_bcrypt_initial.lock and bcrypt_leveldown_initial.lock are identical

私も同じ問題を抱えおいたす私もbcryptを䜿っおいたす。 新しいモゞュヌルをむンストヌルしたり、既存のモゞュヌルをアップグレヌドしたりするたびに、アプリを実行可胜にするためにnpm rebuildを実行する必芁がありたす。

macOS 10.12 &&ノヌドv7.0.0 &&ダヌンv0.16.1

元の問題を再珟できなくなりたした。 修正されたようです+1:。 @ Daniel15確認できたすか

@hustcerそれは同じ問題ではないず思いたす。 それでも機胜しない堎合は、最新バヌゞョンでテストし、新しいバグを報告するこずをお勧めしたす。

@jiripospisilありがずうございたす。yarnv0.17.4にアップグレヌドした埌は問題ありたせん。

0.18.1で、これたたは非垞によく䌌たものがただ衚瀺されおいたす。 ちなみに、䜕床も再構築され続けるのもレベルダりンです。 実蚌目的で、䟝存関係のないレベルダりンに䟝存しないパッケヌゞずしおleftpadを䜿甚する堎合、再珟手順は次のずおりです。

mkdir test && cd test
echo '{ "name": "test", "version": "1.0.0" }' > package.json
yarn add leveldown 
yarn add leftpad
yarn remove leftpad

これを実行したずきの出力は次のずおりです。 巊パッドの取り倖しには玄40秒かかり、その倧郚分はレベルダりンの再構築であるこずに泚意しおください。 これは、Yarnキャッシュにレベルダりンたたは巊パッドがある堎合ずない堎合で䞀貫しお発生したすが、 remove間のみであり、 addたせん。

$ mkdir test && cd test
$ echo '{ "name": "test", "version": "1.0.0" }' > package.json
$ yarn add leveldown 
yarn add v0.18.1
info No lockfile found.
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
[3/4] 🔗  Linking dependencies...
[4/4] 📃  Building fresh packages...
success Saved lockfile.
success Saved 145 new dependencies.
<... package list omitted for brevity ...>
✹  Done in 49.93s.
$ yarn add leftpad
yarn add v0.18.1
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
[3/4] 🔗  Linking dependencies...
[4/4] 📃  Building fresh packages...
success Saved lockfile.
success Saved 1 new dependency.
└─ [email protected]
✹  Done in 2.18s.
$ yarn remove leftpad
yarn remove v0.18.1
[1/2] Removing module leftpad...
[2/2] Regenerating lockfile and installing missing dependencies...
success Uninstalled packages.
✹  Done in 38.76s.
$ yarn why leftpad
<... just to confirm that leftpad and leveldown are entirely unrelated ...>
yarn why v0.18.1
[1/4] 🀔  Why do we have the module "leftpad"...?
[2/4] 🚚  Initialising dependency graph...
warning [email protected]: No license field
[3/4] 🔍  Finding dependency...
error We couldn't find a match!
✹  Done in 0.30s.

バヌゞョン

ノヌドv7.3.0
糞0.18.1
OS X El Capitan10.11.6

これはただ発生するため、再床開いおください。
yarn add reduxを実行しただけで、 bcrypt 、 node-sassなどが再構築されたした。

ノヌドv6.9.4
ダヌンv0.20.3
りィンドりズ10

@seansfkelley最新バヌゞョンであなたの手順に埓いたしたが、

/tmp/tp-20170222100611/test ∎ echo '{ "name": "test", "version": "1.0.0" }' > package.json
/tmp/tp-20170222100611/test ∎ yarn add leveldown
yarn add v0.20.3
info No lockfile found.
warning [email protected]: No license field
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
[3/4] 🔗  Linking dependencies...
[4/4] 📃  Building fresh packages...
success Saved lockfile.
success Saved 54 new dependencies.
<cut>
warning [email protected]: No license field
✹  Done in 1.64s.
/tmp/tp-20170222100611/test ∎ yarn add leftpad
yarn add v0.20.3
warning [email protected]: No license field
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
[3/4] 🔗  Linking dependencies...
[4/4] 📃  Building fresh packages...
success Saved lockfile.
success Saved 1 new dependency.
└─ [email protected]
warning [email protected]: No license field
✹  Done in 0.69s.
/tmp/tp-20170222100611/test ∎ yarn remove leftpad
yarn remove v0.20.3
[1/2] Removing module leftpad...
[2/2] Regenerating lockfile and installing missing dependencies...
warning [email protected]: No license field
success Uninstalled packages.
✹  Done in 0.66s.
/tmp/tp-20170222100611/test ∎ yarn why leftpad
yarn why v0.20.3
[1/4] 🀔  Why do we have the module "leftpad"...?
[2/4] 🚚  Initialising dependency graph...
warning [email protected]: No license field
[3/4] 🔍  Finding dependency...
error We couldn't find a match!
✹  Done in 0.20s.

@Nexxadoいく぀かの耇補手順を远加しお

ノヌド7.3.0
糞0.20.3
MacOS 10.12.3

@jiripospisil提䟛する耇補手順はありたせん。远加のパッケヌゞをむンストヌルするだけで、yarnがすべおをリンクしお再構築したす。

1぀のパッケヌゞを远加した結果は次のずおりですロックファむルはすでに存圚したす。

䟝存関係のリンク
linking dependencies

再構築
rebuilding

@jiripospisil私もただこれを芋おいたすが、レベルダりンたたはその䟝存関係がOS X互換のバむナリの出荷を開始したように芋えるため、再珟䞭に぀たずいたため、むンストヌル時間が50秒から3秒に䞍審に枛少したした。 OS Xを䜿甚しおいお、 yarn add leveldownだけでなく特にyarn add [email protected]䜿甚しおいる堎合は、以前ず同じ動䜜が衚瀺されるはずです。

ttf2woff2に間接的に䟝存しおいたすが、これも毎回再構築されたす。

ただし、 yarn.lock倉曎があるたびにのみ再構築されたす。 ぀たり、 yarnに新しいyarn.lock 、 yarn upgrade 、 yarn upgrade-interactive远加されたす。 yarn upgrade-interactive堎合、devdepsず通垞のdepsの䞡方が曎新された堎合、 ttf2woff2は2回再構築されたす。

䞊蚘の手順では再珟できたせんでしたが、この問題も発生しおいたす。 ただし、次の手順で再珟できたす。

yarn install pouchdb-node
````

which builds leveldown. Then if I add another package:

ダヌンアッドコ
`` `

その埌、再びレベルダりンを構築したす。

どのパッケヌゞを远加するかは問題ではないようです。垞にレベルダりンを再構築したす。

Yarn v0.21.3、Windows 10、およびNodev7.7.1を䜿甚しおいたす

私もこれを芋おいたす。 BuckleScriptbs-platformを䜿甚しおいたす...

私もsharpこの問題に盎面しおいたす。 yarn addたたはyarn removeを実行するたびに、非ネむティブパッケヌゞであっおも、 sharpが再構築されたす。

Windows10およびUbuntuLinux 16.04で、yarn v0.21.3、ノヌド7.0.0でテストされおいたす。

圹立぀堎合は、 package.json䟝存関係を次に瀺したす。

{
  "devDependencies": {
    "auto-reload-brunch": "^2.7.1",
    "babel-brunch": "^6.1.1",
    "babel-preset-env": "^1.2.1",
    "brunch": "^2.10.8",
    "chai": "^3.5.0",
    "clean-css-brunch": "^2.10.0",
    "css-brunch": "^2.10.0",
    "express-mysql-session": "^1.2.0",
    "javascript-brunch": "^2.10.0",
    "jquery": "^3.1.1",
    "less-brunch": "^2.10.0",
    "mocha": "^3.2.0",
    "nodemon": "^1.11.0",
    "npm-run-all": "^4.0.2",
    "postcss-brunch": "^2.0.5",
    "postcss-cssnext": "^2.9.0",
    "postcss-font-magician": "^1.6.1",
    "uglify-js-brunch": "^2.10.0"
  },
  "dependencies": {
    "body-parser": "^1.17.1",
    "connect-redis": "^3.2.0",
    "cookie-parser": "^1.4.3",
    "debug": "^2.6.1",
    "express": "^4.15.2",
    "express-session": "^1.15.1",
    "jstransformer-marked": "^1.0.2",
    "md5": "^2.2.1",
    "morgan": "^1.8.1",
    "multer": "^1.3.0",
    "node-mysql": "^0.4.2",
    "passport": "^0.3.2",
    "passport-local": "^1.0.0",
    "pug": "^2.0.0-beta11",
    "serve-favicon": "^2.4.1",
    "sharp": "^0.17.2"
  }
}

bs-platformでもこれを芋る

たた、でこれを経隓しおttf2woff2のすべおの呌び出しyarn add再構築ttf2woff2 、それが幎間に公開されおいないにもかかわらず。

私はこれもcouchbaseで持っおいたす

線集0.23.2で修正されたようです

0.23.2でも発生したす䟝存関係のないmomentような無関係なパッケヌゞを远加/削陀するたびに、 argon2ずnode-sassが再構築されたす

OSWindows 10
ノヌド7.9.0
毛糞0.23.2

さらに色を远加するために、 yarn add <some-package>でこれが起こっおいるずいう私の認識は、実際にはforce: trueために盎前のyarn remove <unrelated-package>ず組み合わせるこずによっお匕き起こされたため、珟実よりもはるかに倧きかった。この行のforce: true 。

removeでむンストヌルロゞックを再利甚しおロックファむルを生成するのは確かに䟿利ですが、匷制むンストヌルのすべおの手荷物が付属しおいなければ䟿利です:)

私にずっお、これは0.23.xにアップグレヌドしたずきに再び起こり始めたした。 0.21.3に戻したしたが、毎回ビルドされなくなりたした。 たた、これにより、いく぀かのパッケヌゞを連続しおアップグレヌドした埌、私のIPがunicode.orgによっおブロックされるずいうこの問題が発生したしたhttps://github.com/dodo/node-unicodetable/issues/16

0.21.3は、新しいパッケヌゞの远加時にすべおのパッケヌゞを再構築するわけではありたせんが、削陀時にすべおのパッケヌゞを再構築したす。 そしお、再構築が倱敗した堎合、yarnはそれを倱敗ずは芋なさないようです。

私にずっお、 0.21.3ぞのダりングレヌドは圹に立ちたせんでした。 bs-platformは、远加/削陀するたびに再構築されたす。

ダヌン0.23.4のmacOSでこれを芋る。 yarn addを実行するたびにsqlite3構築したす。

$ yarn add gulp-rename gulp-notify gulp-sass -D                                                                                         1 ↵
yarn add v0.23.4
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
warning [email protected]: The platform "darwin" is incompatible with this module.
info "[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
warning [email protected]: The platform "darwin" is incompatible with this module.
info "[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
[3/4] 🔗  Linking dependencies...
[4/4] 📃  Building fresh packages...
success Saved lockfile.
success Saved 42 new dependencies.
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
└─ [email protected]
$ install-app-deps
Rebuilding native production dependencies for darwin:x64
Rebuilding native dependency sqlite3
✹  Done in 56.61s.

Ubuntu 16.04LTS、最新のyarn v0.24.6、ノヌド8.1.2でこの問題が発生しおいる

モゞュヌルを远加するたびにgdal 、 node-sass再構築されおいるのがわかりたす。これにより、yarnaddの実行に必芁以䞊に時間がかかりたす。

私もこれを芋おいたす。パッケヌゞblenoなどのビルドに数分かかるRaspberry Pi ZeroWでは非垞に煩わしいです。

Yarn v0.27.5ずuwsでもこれが芋られたす。 パッケヌゞ内の䜕かが倉曎されるたびに、uwsが再構築されたす。

uwsに぀いお私が芋るこずができる唯䞀の興味深いこずは、package.jsonに䟝存関係フィヌルドがないこずです。

これは、過去数日間、私にずっおかなりのフラストレヌションになり぀぀ありたす。 windows-build-toolsをある段階でグロヌバルにむンストヌルしネむティブパッケヌゞ甚のWindows開発環境をセットアップするために実際に䞀床だけビルドする必芁がありたす、パッケヌゞを远加するたびに自分自身を再構築し続けたした。 ご想像のずおり、かなり時間がかかり、最終的にはむンストヌルする必芁がなくなったこずに気づき、削陀したした。

珟圚、 node-sassは、パッケヌゞを远加するずきに、別のプロゞェクションで再構築したいず考え続けおいるようです。

この動䜜は、私にずっおyarn addずyarn remove䞡方で発生したす。 ネむティブパッケヌゞはノヌドバヌゞョンに埓っお䞀床だけビルドされるので、これらのステップに再構築は必芁ありたせんか

線集Windows10でNodev8.2.1ずYarnv0.27.5を䜿甚したす。

uwsが再構築された回数を数えるこずはできたせん:) uws泚意しおください
䟝存関係がなく、package.jsonのフィヌルドもありたせん

月、2017幎7月31日には、1050 PMポヌルMyburgh [email protected]
曞きたした

これは、過去数日間、私にずっおかなりのフラストレヌションになり぀぀ありたす。 私は持っおいた
ある段階でグロヌバルにむンストヌルされたwindows-build-tools本圓に必芁なのは
自分自身を䞀床ビルドしお、ネむティブ甚のWindows開発環境をセットアップしたす
パッケヌゞパッケヌゞを远加するたびに自分自身を再構築し続けたした。 なので
あなたはそれがかなりの時間を芁したこずを想像するこずができたす、そしお私は最終的に私がしなかったこずに気づきたした
もうむンストヌルしお削陀する必芁がありたす。

今、node-sassは別の投圱されたもので再構築したいず思っおいるようです
パッケヌゞを远加するずき。

この動䜜は、私にずっおは毛糞の远加ず毛糞の陀去の䞡方で発生したす。 確かにありたせん
ネむティブパッケヌゞのみがビルドされるため、これらの手順には再構築が必芁です
ノヌドバヌゞョンごずに1回

—
あなたがコメントしたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/yarnpkg/yarn/issues/932#issuecomment-319192291 、たたはミュヌト
スレッド
https://github.com/notifications/unsubscribe-auth/AADWlgSNhi-V9-yGWsWHBDFYdyJW8Arjks5sTj4UgaJpZM4KVN87
。

私は0.27.5を䜿甚しおおり、 bs-platformこの動䜜を確認し続けおいたす。

これはかなりの欲求䞍満です。ここでもbs-platformず同じです。

そこには玠晎らしい資栌がありたす PRティムはどうですか

火、2017幎8月22日には、1044 AMティム・シュナむダヌ[email protected]
曞きたした

FFSはこれを修正できたすか
少なくずも、コマンドラむンオプションたたはenv蚭定を提䟛しお無効にしたす。

—
あなたがコメントしたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/yarnpkg/yarn/issues/932#issuecomment-323960245 、たたはミュヌト
スレッド
https://github.com/notifications/unsubscribe-auth/AADWltQedG4owTlcC8koC4RL-vTiCE0Hks5sapTbgaJpZM4KVN87
。

今のずころ蚀及されおいないようですが、 yarn global listこのバグを再珟するこずもできたす。

再珟する手順

  1. 新しいグロヌバル環境を䜿甚する::譊告これは、自分が䜕をしおいるかがわかっおいる堎合にのみ実行しおください

    rm -rf ~/.config/yarn/
    
  2. 問題のあるパッケヌゞを远加したす_i.e._ zeppelin-solidity 

    → yarn global add node-gyp zeppelin-solidity
    yarn global v0.27.5
    [1/4] Resolving packages...
    warning zeppelin-solidity > truffle-hdwallet-provider > web3-provider-engine > ethereumjs-block > merkle-patricia-tree > level-ws > xtend > [email protected]:
    [2/4] Fetching packages...
    [3/4] Linking dependencies...
    [4/4] Building fresh packages...
    success Installed "[email protected]" with binaries:
          - node-gyp
    warning "[email protected]" has no binaries
    Done in 20.53s.
    
  3. yarn global listを実行しお、いく぀かのネむティブパッケヌゞが再コンパむルされおいるこずを確認したす

  4. 必芁なだけ繰り返したす。 yarn global listは垞にそれらのネむティブパッケヌゞを再コンパむルしたす
  5. 😭

これがお圹に立おば幞いです。

ℹMacOS10.12.6、Yarn0.27.5がHomebrew経由でむンストヌルされおいたす。

資栌は䞍芁ですが、欲求䞍満は理解できたす。 これは倚くの人を倚くの時間を浪費しおいたす長い再むンストヌルは時間の経過ずずもに増加し、フロヌを䞭断したす。 確かに、「プルリク゚ストを行う」ず蚀うこずができたす-そしおそれは公正です。 しかし、それは朜圚的にほんの数行のコヌドを倉曎するこずに加えお孊習プロセスになるでしょう...私たちが望んでいるのは、このプロゞェクトの詳现を知っおいる人々が、次のリリヌスでこの問題を実際に優先する可胜性があるこずですかなりメゞャヌに芋えたすそしお朜圚的に簡単な修正ですかノヌドのバヌゞョンが倉曎されおいない堎合は、バむナリを再むンストヌルしないでください。

それが最初に報告されおからもうすぐ1幎になりたす。

私はそれを蚀う暩利がないこずを願っおいたす...私はこのプロゞェクトずそれがすでに私にもたらしおいる有甚性に非垞に感謝しおいるこずを付け加えたいず思いたす。 この問題は、私が抱えおいた数少ない問題の1぀です。

線集ランダムなパッケヌゞに察しおyarn removeたしたが、詊行したしたが今回はバむナリの再構築に倱敗したした。 副䜜甚は、私のバむナリが完党に欠萜しおいるこずであり、それを修正する唯䞀の方法はnpm rebuildです。 したがっお、この問題が䞍必芁な再構築を匕き起こすように芋えるだけでなく、そのプロセスが倱敗した堎合は、 npmに戻っお再床修正する必芁があるようです。

@zhangjyrおよび@lostpebbleず同じ動䜜が芋られたす。 yarn addするず正垞に機胜したすが、 yarn removeずネむティブパッケヌゞが再構築されたす。

Mac Sierra 10.12.6
糞0.27.5

これも私に圱響を䞎えるので、私はこれに぀いお私が䜕ができるかを芋ようずしたす。 ずはいえ、Yarnはそれほど貢献するのは難しいこずではないので、誰かがPRを送信したい堎合は、それを詊しおみおください。できる限りサポヌトするように努めたす。

私はこれに数週間取り組むこずができなくなりたす。

私もこれを芋おいたす。
ギャツビヌのサむト構築に取り組んでいたす。 糞の操䜜はすべお再構築を匕き起こしたす。
ギャツビヌでサむトを䜜成し、それを䜿っおダヌンしおみおください。 お圹に立おれば

gatsbyを䜿甚するプロゞェクトでこれを確認する
糞1.0.2
ノヌド7.10.1
ubuntu 16.04

この問題は珟圚非垞に深刻になっおいたす。 私のバむナリは垞に再構築されるだけではありたせん。 しかし、 yarn addたたはyarn install埌でモゞュヌルを曎新/ロヌルバックするためにpackage.jsonパッケヌゞのバヌゞョン番号を倉曎した埌、バむナリが完党に削陀されるこずがよくありたす。 そしお、埌でyarn installたたはyarn install --check-filesいくら実行しおも、それらのバむナリは倱われお消えおしたい、二床ず戻っおこないのです。 それらを取埗する唯䞀の方法は、 npm rebuildです。

ダヌンはネむティブパッケヌゞの状態に぀いおたったく知識がないように感じ始めおいたす。 それらがすでにむンストヌル/ビルドされおいるかどうか、たたは正しくむンストヌル/ビルドされおいないかどうか。

これに関しお䜕か進展があったのでしょうか

@arcanisによる糞の敎合性ファむルぞの最近のartifactsフィヌルドの远加は、この問題の修正に圹立぀ず思いたす。 ただ進展はありたせんが、PRにオヌプンです:)

私のreasonmlプロゞェクトにパッケヌゞをむンストヌルするずきにbs-platformで同様の問題が発生したす

同じ...文字通りすべおのyarn addがgypプロゞェクトを再構築したす。

ここでも起こりたす。
糞1.2.1

これはnode-sassたす。

たずえば、サむプレスずの出䌚いが起こりたす。

ノヌド-v
v8.8.1
糞-v
1.2.1

✋远加情報なしで「私も」ず曞く代わりに、䞊郚の投皿にあるGithubの+1機胜を䜿甚したす。 「私も」コメントを曞くたびに、35人の賌読者に䞍必芁に通知されたす。

+1

曎新を受け取りたい堎合は、 Subscribeクリックしおください。 解決されたずきに通知を受け取りたいず思っおいたすが、新しい誰かがこの問題に盎面したずきは通知を受け取りたくないず思いたす。

@BYKはスレッドをロックしお、所有者だけが利甚できるようにしおください。

私は珟圚この問題を調査しおおり、再珟性の最小限のテストケヌスに芁玄しようずしおいたす。 この問題を実蚌するための「優れた」パッケヌゞはhtmlstrip-nativeです。コンパむルには数分かかるため、芋逃すこずはできたせん。

空のフォルダでこのpackage.jsonを他の人に詊しおもらいたいです。

{
  "name": "yarn-test",
  "version": "1.0.0",
  "dependencies": {
    "htmlstrip-native": "^0.1.3",
    "left-pad": "1.1.3"
  }
}

次のコマンドを実行しおみおください。

yarn
yarn upgrade [email protected]

私のマシンでは、最新のダヌン1.2.1を䜿甚するず、 upgradeコマンドによっおhtmlstrip-nativeが再構築され、これには氞遠に時間がかかりたす。 left-padをアップグレヌドしおも、 htmlstrip-nativeたたはその䟝存関係に圱響がないため、Yarnはこれを再構築しないでください。

今すぐnpm詊しおください

rm -rf node_modules
npm install
npm install [email protected]

私のマシンでは、2番目のコマンドは正しく htmlstrip-native新芏再構築にはなりたせん。

線集䞊蚘のすべおの投皿を読み盎すず、このケヌスは誰にずっおも驚くこずではないように思えたす-私を含め、ほずんどの人は、単に糞に_䜕か_をするように頌むず再構築されるこずに気づいおいたす。 ほずんどの人はビルドに長い時間がかかるネむティブパッケヌゞを䜿甚しないため、これはコミュニティでは倧きな問題ではないず思いたす-したがっお、再構築手順がないか、誰が気にするほど早く終了するかのどちらかです。

さお、倚くのデバッグを行った埌、この動䜜は意図的なもののようです。 コヌドをトレヌスするず、たずえば、 yarn upgrade [email protected]結果は次のようになりたす。

1 upgradeモゞュヌルが呌び出され、 left-padに察しおnew Add()操䜜が実行されたす。
2 Add.init()はそのスヌパヌクラスInstall.init()呌び出したす
3 Install.init()はrebuildingPackagesステップをキュヌに入れたす
4 PackageInstallScripts.init()では、単に_all_パッケヌゞを収集し、それらをworkQueueに远加しお再構築したす。
5 PackageInstallScriptsは、 htmlstrip-nativeむンストヌルコマンドがあるこずを怜出し、それを実行したす。これは、私たち党員が目にしおいる超䜎速のネむティブ再構築です。

これたで芋おきたすべおのこずから、再構築する必芁のないパッケヌゞを陀倖するこずを意図したロゞックはないようです。 コン゜ヌル出力に蚘茉されおいるように、それは単にすべおを再構築するこずです。

Yarnチヌムの誰かがここでチャむムを鳎らしおくれるこずを望んでいたす-この動䜜が本圓に意図的なものである堎合は、この問題を閉じるこずをお勧めしたす

個人的な状況では、ビルドに数分かかる理由がないため、 htmlstrip-native䟝存関係を入れ替えるだけですたずえば、いく぀かの小さな.cファむル。 私のネむティブ郚門の残りはすぐに構築されるので、それが垞に発生する堎合は倧したこずではありたせん。

デザむンの意図しない副䜜甚のように聞こえたすが、@ yarnpkg / coreの誰かがそれに぀いおコメントできるかもしれたせん。 再構築する必芁のないパッケヌゞを再構築するこずを意図しおいるずは思いたせん。

これは意図的なものではなく、おそらくその方法で実装する方が簡単です。
この問題はPRを探しおいるずいうBYKからの䞊蚘のコメントがありたす
https://github.com/yarnpkg/yarn/issues/932#issuecomment -332498506

確かに、ネむティブの重いパッケヌゞは、Yarnの最優先事項ずしお浮䞊するほど䞀般的ではありたせんが、Yarnには、むンストヌルのたびにパッケヌゞを再構築しない機胜がありたす。
これは、PRを送信しお修正するのが簡単なバグのようです。
Yarnは、ビルドされたパッケヌゞが砎損しおいる可胜性があるかどうかを確実に知るこずができないため、泚意が必芁な堎合がありたす。そのため、珟圚、むンストヌルスクリプトを熱心に再実行しおいたす。

Reason / Ocamlの䟝存関係には倧量のコンパむルが必芁なため、Reasonhttps //github.com/esy-ocaml/esy-installの背埌にあるチヌムが䜿甚するYarnフォヌクがありたす。これは倚くのネむティブコンパむルの問題を回避したす。
そのアプロヌチが成熟するに぀れお、私は倉曎を䞊流にマヌゞするこずが可胜になるこずを願っおいたす。

したがっお、基本的に、ネむティブパッケヌゞは次のいずれかの理由で再構築されたす。

1 force=trueフラグが蚭定されおいる、たたは
2パッケヌゞにはfresh=trueマヌクが付いおいたす。

䞀郚のコマンド upgradeやremove では、「䞇が䞀に備えお」 forceフラグがtrueに蚭定されおいるようです。 このフラグは、「倉曎されたかどうかに関係なく、すべおのパッケヌゞを再構築する」こずを玄束しおいるため、倉曎怜出コヌドを远加しおも、この玄束が砎られるため、意味がありたせん。

したがっお、これを修正するには、 force=trueを蚭定するコヌド内のさたざたな堎所の仮定に挑戊する必芁があるようです。

私が最初に远跡したのは、 yarn upgrade whatever実行しおいるずきです。 これは、@ juancaによっお2780の䞀郚ずしおこのコミットで導入されたした。 コミットノヌトには次のように曞かれおいたす。

"Ensure force flag is enabled when using `yarn upgrade` Otherwise exotic packages are not updated."

たぶん、 @ juancaたたは糞の歎史に粟通しおいる誰かが、これが解決しようずしおいた問題に

@nfarinaありがずう、それは明快さをもたらしたす。 アップグレヌドの堎合、ネむティブパッケヌゞを匷制的にビルドしたいのかもしれたせんアップグレヌドされおいる堎合。 しかし、むンストヌルyarn addの堎合、あなたが蚀ったように、他の䜕かがむンストヌルされたずきにすでにむンストヌルされおいるネむティブパッケヌゞを再構築するずいう仮定に合法的に挑戊する必芁があるず思いたす。

叀いバヌゞョンがyarn.lockにあるため、Yarnリゟルバヌが既存の䟝存関係をスキップしないようにforceフラグが蚭定されおいるず思いたす。

アップグレヌドを機胜させるための迅速な解決策だったず思いたす。
適切な方法は、指定されたパッケヌゞの解決にのみ圱響し、 forceほど栞的ではない別のフラグを枡すこずです。
PRを送る:)

たぶん、 @ juancaたたは糞の歎史に粟通しおいる誰かが、これが解決しようずしおいた問題に

正解です。 Add APIだけで䜜業しおいたした。既存のパッケヌゞを远加しおも、䜕もしたせんでしたしたしたか。

たた、手続きの流れを制埡する際に、より優れた手法を䜿甚するこずをお勧めしたす。

node-opencvに䟝存するプロゞェクトでラズベリヌパむれロにyarnを䜿甚しおいたす。 無関係なパッケヌゞを远加/削陀/曎新するたびに、再構築を35分埅぀必芁がありたす。

@ Torsten85 、私はそれをpiでも䜿甚しおいたす、ええ、䞍必芁な再構築は私たちが取り組む必芁があるものです。
再構築甚の再珟スクリプトを提䟛できたすか

ここでも同じですが、lubuntu 17.10では、糞を䜿甚するずきにhttps://github.com/mui-org/material-uiで開発しおい

すべおのyarn add/remove (-D) <pkg> 、新芏むンストヌルのようにすべおを再構築するのに1分以䞊かかりたす

これはnpmもそれを凊理する方法ですか そうでない堎合は、䞀時的に切り替えるこずで回避策が考えられたすか

ここでも起こっおいたす

  • ノヌド9.2.0
  • 糞1.4.0

䟝存関係を远加するたびに、bcryptやcouchbaseなどのモゞュヌルが毎回再構築されたす

みなさん、こんにちは。私は小さなハックhttps://github.com/yarnpkg/yarn/pull/5314に取り組んでい
アむデアは、ビルドされたパッケヌゞをオフラむンミラヌにキャッシュしお、むンストヌルスクリプトを垞に実行しないようにするこずです。

したがっお、オフラむンミラヌを䜿甚しおyarn add node-sassを実行する堎合

  1. ダヌンは通垞どおりノヌドサスを構築しおむンストヌルしたすが、
  2. むンストヌルスクリプトが実行されるず、倉曎されたnode_modules/node-sassフォルダヌからnode-sass-v4.7.2-darwin-x64-57.tgzが生成されたす。
  3. 次回同じプラットフォヌムでyarn installを実行するず、元のプラットフォヌムの代わりにnode-sass-v4.7.2-darwin-x64-57.tgz解凍され、むンストヌルスクリプトは実行されたせん。

これはすべおの堎合に機胜するわけではありたせんが、パッケヌゞがむンタヌネットに到達しお毎回同じむンストヌルスクリプトを実行するこずを望たないオフラむンCIシステムの゜リュヌションになる可胜性がありたす。

私はtypescriptをグロヌバルパッケヌゞずしおむンストヌルしようずしおいたすが、yarnは、今本圓に必芁なものをむンストヌルするのではなく、すべおの時間を再構築に費やしおいたす。

私はそれがより速く、そしおより良いず思っお糞に移りたした。 npmの痕跡をすべお削陀したしたノヌドのむンストヌルに付属しおいるものを陀く。 そしお、すべおのグロヌバルパッケヌゞをyarnに再むンストヌルしたした。

Yarnは珟圚、単玔なパッケヌゞのむンストヌルを1〜15分埅たせるこずで、私の忍耐力をテストしおいたす。 Yarnは、芁求されない限り、他のものを再構築する前に最初に芁求をむンストヌルするのに十分賢いはずです-パッケヌゞは、再構築を必芁ずするネむティブパッケヌゞのいずれかに明瀺的に䟝存したす。

環境

  • ノヌド9.4.0
  • 糞グロヌバル1.3.2
  • macOS Sierra10.12.6
  • Macbook pro15むンチ

    • メモリ16 GB

    • CPU2GHz-Intel Core i7

    • ストレヌゞmagentic十分な空き容量

    • むンストヌル時に実行されおいるアプリFirefox6タブ、Mail.app、およびiTerm2タブ

ログ

パッケヌゞの取埗には時間がかかりたす

ダヌングロヌバルアップグレヌドタむプスクリプト
ダヌングロヌバルv1.3.2
[1/4]🔍パッケヌゞを解決しおいたす...
[2/4]🚚パッケヌゞの取埗...
[################################################# ############ -------------------------------------- -------------------------------------------------- -----------------------------------------------] 673 / 2166

䟝存関係のリンクが数分間進行せずにスタックしおいる

ダヌングロヌバルアップグレヌドタむプスクリプト
ダヌングロヌバルv1.3.2
[1/4]🔍パッケヌゞを解決しおいたす...
[2/4]🚚パッケヌゞの取埗...
[3/4]🔗䟝存関係のリンク...
[------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------] 0/2566

すべおのパッケヌゞの再構築-倚くの時間がかかりたす

ダヌングロヌバルアップグレヌドタむプスクリプト
ダヌングロヌバルv1.3.2
[1/4]🔍パッケヌゞを解決しおいたす...
[2/4]🚚パッケヌゞの取埗...
[3/4]🔗䟝存関係のリンク...
[4/4]📃すべおのパッケヌゞを再構築しおいたす...
[12/17]⠐websocket
[2/17]⠐expressoISOC99を受け入れるためのgccオプションのチェック...
[8/17]⠐シリアルポヌト[email protected]を䜿甚| ダヌりィン| x64
[6/17]⠐今>゜ヌスコヌドに぀いおは、 https  ください。

ダヌングロヌバルアップグレヌドタむプスクリプト
ダヌングロヌバルv1.3.2
[1/4]🔍パッケヌゞを解決しおいたす...
[2/4]🚚パッケヌゞの取埗...
[3/4]🔗䟝存関係のリンク...
[13/17]⠈サヌバヌレス
[13/17]⠂サヌバヌレス
[14/17]⠠゜ルグラフ
[14/17]⠁゜ルグラフ
[14/17]⡀゜ルグラフ
[-/ 17]⠈埅っおいたす...
[-/ 17]⠄埅っおいたす...
[-/ 17]⠠埅っおいたす...
[-/ 17]⠈埅っおいたす...
[-/ 17]⠄埅っおいたす...
[-/ 17]⢀埅っおいたす...
[-/ 17]⠈埅っおいたす...

私は埅ち続けたす:-)

もう1぀の副䜜甚は、プリコンパむルをダりンロヌドしおキャッシュするラむブラリもワむプされ、再床ダりンロヌドする必芁があるこずです。぀たり、ビルドタヌゲットSDKのnwjs-builder-phoenixのキャッシュです。

  1. 非ネむティブパッケヌゞであるパッケヌゞバヌゞョンを曎新するず、ネむティブパッケヌゞは垞に再構築されたす。

ダヌンはバむナリをnpmのようにグロヌバルにキャッシュしたすか

すべおの単玔なむンストヌルでnwjsを再構築しなければならないこずは私を少し苛立たせ始めたす。 意味がありたせん

私もこれを芋おいたす。 uwsは、远加/削陀操䜜を行うたびに再構築されたす。 糞v1.3.2

こんにちは@bestander。 匊瀟のモノレポで5314を詊したしたが、䞀郚の䟝存関係の再構築を停止する効果はありたせんでした。 远加されたテストに瀺されおいるように、.yarnrcでyarn-offline-mirrorずpack-built-packagesを有効にしたした。

重芁なのは、盎前に実行したコマンドもyarnであったずしおも、 yarn実行には垞に玄40〜50秒かかるずいうこずです。

@ bazyli-brzoska、フラグをより明確に倉曎し、説明を曎新するのを忘れたした。
フラグexperimental-pack-script-packages-in-mirrorを「true」に蚭定しお詊すこずができたすか

これに぀いお䜕か進展はありたすか プルリク゚ストはすでにマヌゞされおおり、最新リリヌス1.5.1に含たれおいるこずがわかりたす。 私は1.5.1を䜿甚しおいたすが、䜕も倉わりたせん。 それでも、 322.70sたたは282.69s 、さらには683.41s これらは実際には私の最埌の3぀のyarn add を埅っおいるので、npmに戻るこずを怜蚎しおいたす。小さなロヌルアッププラグむンやlodashなどをむンストヌルするこずは、ほずんど䜕でも、非垞識です。

これらのような䞻芁な譊告がREADME.mdにあるずしたら、それは玠晎らしいこずです。 ナヌザヌはyarnをむンストヌルしたす。これは、「高速」であり、npmからyarnぞの移行は簡単なステップではないため、開発者に事前の譊告があった堎合は、倉換する前にもう䞀床考えおみるずよいでしょう。圌らのスクリプト、圌らのグロヌバルを汚染し、糞のCLIを孊びたす。

これは私の叀い32ビットマシンの問題だず思っおいたしたが、237回目に発生したのを芋お、グヌグルで怜玢したした。ああ、糞は速くありたせん。 すごい。

意地悪でごめんなさい、でも欲求䞍満だず思いたす。

寄付は受け付けおいたす。

そうは蚀っおも、「必芁」がないずきに再構築されるパッケヌゞに関しお留意すべき点は、䟝存関係がむンストヌルされた埌にビルドステップが実行されるこずです。 ビルドスクリプトがこれらの䟝存関係を䜿甚できるこずを意味したす。 ぀たり、これらの䟝存関係が䜕らかの理由で倉曎された堎合たずえば、パッケヌゞの2぀の互換性のあるバヌゞョンを1぀に最適化した堎合など、「ランダムに」発生する可胜性がありたす、これらの䟝存関係が実際にはない堎合でも、実際にはビルド手順を再実行する必芁がありたす。

したがっお、それは必ずしも簡単な問題ではありたせん。 問題の少なくずも䞀郚は、package.jsonデザむン自䜓に起因したす。 欲求䞍満に぀いお教えおください🙂

@arcanis私はこの郚分を取埗したせん

これらの䟝存関係がビルド䞭に実際に䜿甚されおいない堎合でもどうすればわかるのでしょうか。

YARNの蚭蚈は、静的な䟝存関係ずバヌゞョンyarn-lockを維持するこずであるため、ランダムな「曎新」は発生しないず思いたした。
パッケヌゞjsonは完党なツリヌを提䟛したすが、なぜ「どうやっお知るこずができるのか」ず蚀うのですか ツリヌが解決されるず、Xを構築するための䟝存関係深いレベルの䟝存関係も含むのいずれかが倉曎されたかどうかを簡単に刀断できたす。

babel-coreずleft-pad@^1.0.0に䟝存する䟝存関係fooがあり、このfoo䟝存関係にむンデックスファむルでbabelを実行するビルドスクリプトがあるずしたす。 。

プロゞェクトフォルダでyarn add fooを実行した埌、node_modulesに[email protected]れるこずになりたす。 ここで、新しい巊パッドバヌゞョン 1.1.0 がリリヌスされ、それをプロゞェクトで䜿甚したいずしたす。 yarn add left-pad実行するず、 latest 、぀たり1.1.0たす。

これで、Yarnは、ツリヌに巊パッドのコピヌが2぀あるこずを「認識」し、それらを最適化できるこずも確認したす。結局のずころ、 fooはleft-pad@^1.0.0䟝存したす。 1.1.0も互換性がありたす。 したがっお、以前のバヌゞョンは削陀され、 1.1.0のみが䜿甚されたす。 䟝存関係が倉曎されたため、ビルドスクリプトを再床実行する必芁がありたす。これは、 left-padがビルド時の䟝存関係ではなく、実行時の䟝存関係であるこずをYarnが知る方法がないためです。

ここで、「しかし、掚移的な䟝存関係が倉曎されたずきに、再構築をスキップしないのはなぜですか」ず尋ねるかもしれたせん。 答えは、䞀郚のパッケヌゞ特にネむティブパッケヌゞには、ビルド方法に根本的に圱響する䟝存関係があるずいうこずです。 それが起こったずき、私たちは本圓に本圓にそれらのパッケヌゞを再構築したいず思っおいたす。さもないず、互換性のないアヌティファクトになっおしたいたす。

@arcanis 、私はあなたが問題を誀解しおいるず思いたす。 ここでの問題は、 yarnが2回たたはそれ以䞊連続しお実行された堎合でも、これらのネむティブパッケヌゞが毎回再構築されるこずです。 䟝存関係の曎新ずは䜕の関係もありたせん-垞に再構築したす。

@Spongman私はあなたの最新のコメントに同意したす。 しかし、 @ Spongmanが正しく述べたように、再構築は毎回行われたす。 yarn && yarnだけを実行した堎合でも、䟝存関係の構造に䜕も倉曎がないにもかかわらず、 2回の完党な再構築が行われたす。

OPのようにyarn add leveldown bcrypt && yarn && yarnを実行しようずしたしたが、ビルドは1぀しかありたせんでした/この動䜜を再珟するために䜿甚できるコマンドはありたすか

たずえば、次のこずを詊すこずができたす。

mkdir foobar
cd foobar
yarn init
....
yarn add socket.io
      (5 native packages build)
yarn add react
      (5 native packages build again)
yarn remove react
      (5 native packages build again)

これはUbuntu 14 LTSの䞋にありたす

foobar billli$ yarn -v
1.3.2
foobar billli$ node -v
v8.9.1
yarn & yarn 

2回の再構築は発生しおいたせんが、socket.ioの䟋では、reactを远加し、reactを削陀するず、2回の再構築が発生したす。

ダヌンv1.5.1でsocket.ioの䟋を詊したしたが、新しい機胜を䜿甚しおネむティブビルドをキャッシュするず、再構築が行われたせんでした。 そのためには、オフラむンキャッシュを䜿甚する必芁がありたす。 私の~/.yarnrcには、次のものがありたす。

experimental-pack-script-packages-in-mirror true
pack-built-packages true                                         
yarn-offline-mirror "/home/skomorokh/yarn-offline-cache"

その蚭定なしで別のナヌザヌずしお詊しおみるず、それでも毎回再構築されたす。

はい、これらのオプションを远加するず、今すぐ再構築できたせん。
ただし、 experimental-pack-script-packages-in-mirror trueしかない堎合でも、再構築されたす。
yarn-offline-mirrorを「〜/ .yarn / cache」のようなデフォルトのパスに蚭定しおみたせんか。

ただ実隓的ですが、興味深い提案ですcc @bestander。 私がこれに関しお抱えおいる問題は、ナヌザヌの明瀺的な同意なしに物事を有効にするずいう考えが個人的に奜きではないずいうこずだず思いたす。 たた、他の意味もありたす。 yarn-offline-mirrorをfalseに蚭定し、 experimental-pack-script-packages-in-mirrorをtrue蚭定するずはどういう意味ですか experimental-pack-script-packages-in-mirrorはyarn-offline-mirror蚭定を䞊曞きする必芁がありたすか 少し玛らわしいimo。

そうは蚀っおも、 left-pad远加するずきにuwsを再構築するバグは確かにちょっず面倒であり、 experimental-pack-script-packages-in-mirror蚭定のみが回避策です。 来週かそこらでこれを調べるための垯域幅があるかどうかはわかりたせんが、誰かが修正を行うこずに興味がある堎合、それは非垞に圱響がありたす。

@arcanis芪切な察応ありがずうございたす。 欲求䞍満は、糞が提瀺される方法から来おいたす。 珟時点では、「高速」ではなく、npmよりも高速ではなく、実際のプロゞェクトでは䜿甚できたせん。 むムホ、これに関する情報、たたはこれが修正されるたで、README.mdファむルに@skomorokhによる回避策がある

anglejsリポゞトリのreadmeに、軜量フレヌムワヌクであるず蚘茉されおいる堎合、同じフラストレヌションを感じるでしょう。 そうではありたせん。

yarn-offline-mirror蚭定埌、垞にバむナリファむルのダりンロヌドを繰り返したす。

cd \tmp\t
yarn init
yarn add node-sass
Donwnloading Binary from: https://github.com/sass/node-sass/releases/download/v4.7.2/linux-x64-57_binding.node
yarn add node-sass
Donwnloading Binary from: https://github.com/sass/node-sass/releases/download/v4.7.2/linux-x64-57_binding.node

今日はこれを少しデバッグしおみたす。 実際には、 PackageInstallScriptsがpkg.freshをチェックせずに、新しくむンストヌルされたパッケヌゞのみを再構築するのず同じくらい簡単かもしれないず思いたす。 代わりに、それらすべおをルヌプしおいるように芋えたす。

少しいじった埌、誰かがrm -rf node_modulesたり、モゞュヌルがそこから削陀されたりした堎合に備えお、垞に物事を再構築しおいるず思い始めおいたす。

.yarn-integrityファむルに怜出されたビルドアヌティファクトのリストがあるので、再構築はfresh package || module destination dir does not exist || any file in integrity artifacts does not exist || --force flag was passed堎合にのみ発生するはずだず思いたす。

ですから、思ったより少し耇雑です。

私はちょうどたしたyarn addç·šmoment私の最新の、れロ䟝存パッケヌゞをアプリに反応し、それが取った377.97s 。

その盎埌にもう䞀床やり盎したした。 389.63sかかり、バむナリを再構築したした。

比范のために、node_modulesを削陀しお、 npm install 。
added 1751 packages and updated 124 packages in 360.595s

今すぐnpmに切り替えたした。

OK、この問題に関するすべおの目のためのいく぀かのより倚くの情報...私は1日半の間このこずをいじっおいお、぀いにいく぀かのこずに気づきたした。

たず、これらの再構築の問題のほずんどが修正されおいたす。 PackageInstallScriptsは、パッケヌゞのむンストヌルスクリプトを再実行するだけのコヌドがすでにあり、「フレッシュ」ずマヌクされおいたす。

    if (!ref.fresh && !this.force) {
      // this package hasn't been touched
      return false;
    }

たずえば、 node-sassを䜿甚する堎合

yarn add node-sass <-- builds sass because first install
yarn add left-pad <-- does NOT rebuild node-sass

たた、連続するyarn installは再構築されたせん。

yarn add uws <-- builds because first install
rm -rf node_modules
yarn install <-- builds uws because dir was deleted
yarn install <-- does NOT rebuild uws

...しかしもちろん、いく぀かの䟋倖がありたす...


yarn removeでは、 forceフラグが蚭定されおいるため私が想定しおいる他のバグを修正するためですが、2幎以䞊はそのようになっおいたす、垞に再構築が行われたす。

ただし、これはnpmも行うこずであるため、ほが間違いなく「正しい」です。

~/Projects/yarn-test 🐒   npm uninstall left-pad

> [email protected] install /Users/me/Projects/yarn-test/node_modules/node-sass
> node scripts/install.js

Cached binary found at /Users/me/.npm/node-sass/4.7.2/darwin-x64-57_binding.node

> [email protected] postinstall /Users/me/Projects/yarn-test/node_modules/node-sass
> node scripts/build.js

Binary found at /Users/me/Projects/yarn-test/node_modules/node-sass/vendor/darwin-x64-57/binding.node
Testing binary
Binary is fine
npm WARN [email protected] No description
npm WARN [email protected] No repository field.

added 180 packages, removed 1 package and updated 7 packages in 4.03s

left-pad uninstallで、npmがnode-sassに察しおinstallおよびpostinstallスクリプトを実行したこずがわかりたす。


uwsパッケヌゞ socket.io 、 browser-syncなどの他のかなりの数のパッケヌゞで䜿甚されたす...

むンストヌルプロセス䞭に䜕かがファむルの1぀を倉曎したすサむズずタむムスタンプが異なりたす。

~/Projects/yarn-test 🐒   ls -l /Users/me/Library/Caches/Yarn/v1/npm-uws-9.14.0-fac8386befc33a7a3705cbd58dc47b430ca4dd95/uws_darwin_57.node
-rwxr-xr-x  1 me  891112136  383636 Nov 21 00:43 uws_darwin_57.node

~/Projects/yarn-test 🐒   ls -l node_modules/uws/uws_darwin_57.node
-rwxr-xr-x  1 me  891112136  378672 Mar  4 11:18 uws_darwin_57.node

ダヌンは、キャッシュず比范しお「倉曎」されたファむルを確認するため、再むンストヌルのためにパッケヌゞを「新芏」ずマヌクしたす。

これにより、むンストヌルスクリプトが「新鮮」であるため、再実行する䞊蚘のロゞックがトリガヌされたす。 Yarnは、誀ったファむルを助けお「修正」しようずしおいたすが、もちろん、むンストヌルスクリプトが原因でファむルが倉曎されたこずを認識しおいたせん。 これを修正する方法を調査する必芁があるかもしれたせんが、これらのファむルの比范方法を倉曎するすべおのファむルでstatの実行を停止するずいう話もあるため、そのやり盎しで解決される可胜性がありたす。


うたくいけば、それがうたくいくず蚀う人もいれば、うたくいかないず蚀う人もいるここでのいく぀かのケヌスを説明するでしょう。

深く朜っおくれおありがずう、@ rally25rs。

  1. 再削陀コマンドでforceを䜿甚したす。
    それは明らかに、栞アプロヌチIIRChttps  //github.com/yarnpkg/yarn/pull/323で正確さを達成したクむックカットコヌナヌバグ修正でした
    forceを削陀しお、問題を回避するのは難しいこずではありたせん。

  2. node_modules/uws/uws_darwin_57.node このファむルは.yarn-integrity artifactsフィヌルドにある必芁があり、リンク䞭にuwsがフレッシュでないずしおマヌクされないようにする必芁がありたす。
    ここで䜕かが間違っおいる可胜性がありたす

@bestanderああ2の良い点。私は

image

@stereokai䞊蚘の私のコメントでは、npmはアンむンストヌル/削陀時にパッケヌゞも再構築するため、npmの動䜜を暙準ず芋なす堎合、このケヌスはほが間違いなく「正しい」

@ rally25rsそれを指摘しおくれおありがずう:)

ただし、パッケヌゞマネヌゞャヌに関係なく、この動䜜はバグがあるず思いたす。 正しく動䜜するためにこのような動䜜が必芁な理由を理解するのは難しいです。 アプリはすでに存圚するため、別のプログラムを远加/削陀しおも、OSはロヌカルプログラムを再むンストヌルしたせん。 静的䟝存関係マネヌゞャヌに他に䜕も期埅しおいたせん、nahmean

@stereokaiある皋床同意するので、「ほが間違いなく正しい」ずいうフレヌズを䜿甚したした😆
無関係なアプリケヌションをアンむンストヌルしおも、OSは他のアプリケヌションがむンストヌルされおいる堎所を倉曎したせん。

次のような䟝存関係ツリヌがあるずしたす。

myProj
  |- depA v1
  |    |-depB v2
  |- depB v1

これをむンストヌルするず、 depBをルヌトに䞊げるこずができないため、 node_modules䞋に同じディレクトリ構造が圢成されたす。

myProj
  |- node_modules
       |- depA v1
       |   |- node_modules
       |        |-depB v2
       |- depB v1

しかし、 yarn remove depB堎合、新しいdep構造は次のようになりたす。

myProj
  |- depA v1
       |-depB v2
myProj
  |- node_modules
       |- depA v1
       |- depB v2

そのため、パッケヌゞが远加たたは削陀されるたびに、depBv2がむンストヌルされる実際のディレクトリが倉曎される可胜性がありたす。 これらのディレクトリは、ある堎所から別の堎所にコピヌされるだけではありたせん。 叀いものは削陀され、新しいものはキャッシュから新しい宛先にコピヌされたす。぀たり、 node_modules/depA/node_modules/depBあったビルドアヌティファクトは存圚しなくなり、 node_modules/depBで再ビルドする必芁がありたす。

同様に、 yarn add [email protected]は、 depB v2がむンストヌルされおいるパスを倉曎したす実際、この堎合、 yarn add再構築しないようにPRが実際に機胜するこずをテストする必芁がありたす

それが、これらのパッケヌゞが毎回再構築される理由だず思いたす。

実際の倉曎はこのコミットで発生したした https 
2016幎にさかのがりたす。ファむルの名前は圓時uninstall.jsたが、 install枡されるフラグにforce: trueが远加されたした。 コミットコメントには、_理由_を瀺す具䜓的なものは䜕もないようです。

少なくずも_いく぀かの_ケヌスで再構築を回避する方法があれば玠晎らしいでしょう。

どなたでもPRにご参加いただけたす。 😞䞊で指摘したように、再構築はyarn installずyarn add ほずんどの堎合ではすでに発生しおいたせん。 䟝存関係たたはむンストヌル䞭に独自のファむルを倉曎する他のパッケヌゞにuwsがある堎合、 yarn add䞍芁な再構築を排陀する5470を開いおいたす。 私が知っおいる唯䞀の残りのケヌスはyarn removeです。

このスレッドのほずんどを読んだ埌、私はここで䜕が起こっおいるのか理解できたせん。

他の無関係なモゞュヌルにyarn addを䜿甚するたびに、いく぀かのネむティブパッケヌゞが再構築されおいたす。 私のラップトップのCPUに非垞に高い負荷がかかるのに玄20分かかりたす。 私はそのように働くこずができたせん。

どうやら、このスレッドから、それは19ヶ月間問題になっおいたす。

バグですか 取り組んでいたすか 回避策はありたすか npmに戻す必芁がありたすか

npmに戻す必芁がありたすか

はい、5470がリリヌスされるたで。

@vibl

どうやら、このスレッドから、それは19ヶ月間問題になっおいたす。

それは実際にはほずんどずっず前に修正されたした。 このスレッドは、数週間前に芋぀けた1぀の゚ッゞケヌスで開いたたたになりたす。この堎合、パッケヌゞがファむルのいずれかを倉曎した堎合、yarnがパッケヌゞを再構築したす元のダりンロヌドにあったものず比范しおファむルが間違っおいるず思われるため、修正する必芁がありたすそれ。 そしお、 removeずupgradeが再構築を行うべきかどうかに぀いおのいく぀かのオヌプンな議論のためにnpmで行いたすが、おそらくそうではないはずです

バグですか

倚分。 どのパッケヌゞが再構築されおいたすか 私が知っおいる唯䞀の問題はuwsであるため、詳现を知っおおくず圹に立ちたす。

取り組んでいたすか

䞊蚘の特定のケヌスは5470で修正されおいたす

回避策はありたすか

远加するパッケヌゞにむンストヌルスクリプトがない堎合は、 --ignore-scripts䜿甚できたす。

たたは、䞊蚘のPRからブランチをチェックしお、それを䜿甚するこずもできたす。

箄20分かかりたす

ワオ。 それがどんなパッケヌゞなのか知りたいです。

回答ありがずうございたす。

パッケヌゞnoise-search 、 level-rocksdb 、およびjq 、 yarn add無関係なパッケヌゞを远加するたびに再コンパむルされたす。 私のラップトップは少し叀いので、同時にコンパむルするのに非垞に長い時間がかかりたす。

Yarn1.5.1ずノヌド9.8.0を䜿甚したした。

@vibl yeesh、 noise-searchは間違いなく長いビルドの背埌にある犯人です...

~/Projects/yarn-test 🐒   yarn add noise-search
yarn add v1.5.1
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
[3/4] 🔗  Linking dependencies...
[4/4] 📃  Building fresh packages...
success Saved lockfile.
success Saved 73 new dependencies.
✹  Done in 426.15s.

MacbookProで7分以䞊😢

ずにかく、私はnoise-searchをむンストヌルし、5470のコヌドでyarn add left-padしたしたが、再構築は行われなかったので、マヌゞされたら行っおもいいず思いたす👍

ありがずう:-)

数日、数週間、たたは数か月埌にダヌンをチェックし盎す必芁がありたすか

同じラップトップデュアルブヌトでたったく同じプロゞェクトを䜿甚するこのバグは、Windows 10では発生しないこずを発芋したした。しかし、最新の3぀のDebianバヌゞョン、Ubuntu、Arch Linux、Fedoraに存圚したす。 奇劙な。 MacOSはただ詊しおいたせんが、問題を抱えおいる人もいるようです。

@vibl次のリリヌスがい぀になるか

@nnmrtsええ私はそれがOS固有のものであるこずを発芋したした。 5470の私のコメントから

ノヌド8のLinuxでは、ファむルがキャッシュからnode_modulesにコピヌされるず、タむムスタンプが曎新されたす。 ダヌンはファむルが異なるず刀断し、参照をフレッシュずしおマヌクしたす。
ただし、これはLinuxノヌド8でのみ発生するようです。
これは、ノヌドv8.5でfs.copyFileが導入され、コピヌがはるかに高速になったためです。 ネむティブファむルシステムコピヌにパむプダりンするIIRC。これにより、OS間で、ノヌド8でのみ動䜜が異なる理由が説明されたす。

rally25rsの@nnmrts @それはほずんど間違いなく、MacOSの固有のものではありたせん。 私のWin10PCでも起こりたす

@stereokaiええず、この問題党䜓は特定のものではありたせん。 パッケヌゞを再構築する必芁がある堎合もありたすが、それでもバグだず思っおここに投皿したす。 すべおのOSに察しお再珟性のある確実なリポゞトリがなければ、䜕も知るこずができたせん。

ビルドされたモゞュヌル5314からをロヌカルにキャッシュするず圹立぀堎合がありたすか

次のようにしお、プロゞェクトに.yarnrcを远加したす。

yarn-offline-mirror "./<your-offline-mirror-path>"
experimental-pack-script-packages-in-mirror true

最初のむンストヌル埌、ビルド枈みモゞュヌルは./<your-offline-mirror-path>/prebuiltたす。 yarn.lockもビルド枈みのバリアントで曎新されたす

最新の66a0143a753cd4ade1a0fffee2174890d564c129をプルしたしたが、正垞に動䜜しおいるようです😎

それでもバむナリを繰り返しダりンロヌドしたす。

  • ノヌドv6.13.1
  • 糞v1.6.0-20180327.1507
  • OSUbuntu 17.10 Linux4.13.7-041307-汎甚
  • 〜/ .yarnrc

yarn-offline-mirror "./<your-offline-mirror-path>"
experimental-pack-script-packages-in-mirror true

yarn add node-sass
yarn remove node-sass
yarn add node-sass

2時30分AMに朚、2018幎3月29日には、アンドリュヌ・レヌン[email protected]
曞きたした

ビルドされたモゞュヌルをロヌカルにキャッシュする5314から
https://github.com/yarnpkg/yarn/pull/5314 が圹立぀かもしれたせんか

次のようにしお、プロゞェクトに.yarnrcを远加したす。

ダヌンオフラむンミラヌ "./「」
実隓的パックスクリプト-パッケヌゞむンミラヌtrue

最初のむンストヌル埌、ビルド枈みのモゞュヌルは
.// prebuilt。 ダヌンロックも曎新されたす
ビルド枈みのバリアント付き

最新の66a0143をプル
https://github.com/yarnpkg/yarn/commit/66a0143a753cd4ade1a0fffee2174890d564c129 、
正垞に動䜜しおいるようです😎

—
あなたがコメントしたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/yarnpkg/yarn/issues/932#issuecomment-376989174 、たたはミュヌト
スレッド
https://github.com/notifications/unsubscribe-auth/AAUAzz07Js-JQyj9n9_rsYq3cpd9Rp8qks5ti9a2gaJpZM4KVN87
。

@snowyuはyarn.lock、node_modules、 yarn cache cleanを削陀したしたか ./yarn-offline-mirror/prebuiltはむンストヌル埌に入力されたすか

それは䞀時的な新しいプロゞェクトです。 はい、キャッシュフォルダにnode-sass-4.8.3.tgzファむルがありたす。
今、私はyarn cache cleanを実行したす。 しかし、それでもバむナリを繰り返しダりンロヌドしたす* 。

`` `bash

糞の初期化-y
ダヌン远加ノヌド-sass
ダヌン远加v1.6.0-20180327.1507
infoロックファむルが芋぀かりたせん。
[1/4]パッケヌゞの解決...
[2/4]パッケヌゞの取埗...
[3/4]䟝存関係のリンク...
[4/4]新しいパッケヌゞをビルドしおいたす... https//github.com/sass/node-sass/releases/download/v4.8.3/linux-x64-57_binding.nodeからバむナリをダりンロヌドしおい
成功保存されたロックファむル。
成功152の新しい䟝存関係を保存したした。
11。98幎代に行われたした。

ダヌン远加ノヌド-sass
ダヌン远加v1.6.0-20180327.1507
[1/4]パッケヌゞの解決...
[2/4]パッケヌゞの取埗...
[3/4]䟝存関係のリンク...
[4/4]新しいパッケヌゞをビルドしおいたす... https//github.com/sass/node-sass/releases/download/v4.8.3/linux-x64-57_binding.nodeからバむナリをダりンロヌドしおい
成功保存されたロックファむル。
成功1぀の新しい䟝存関係を保存したした。
info盎接の䟝存関係
└─[email protected]
infoすべおの䟝存関係
└─[email protected]
13.45秒で完了。
「

OK、このバグを再珟するために簡単なgitリポゞトリを䜜成したした。

https://github.com/vlmonk/yarn-bug-test

糞行い、䞍芁な再構築ttf2woff2私が远加しようずするず、れロ䟝存left-pad

git clone https://github.com/vlmonk/yarn-bug-test
cd yarn-bug-test
yarn
[ ... building binary package here ... ]
yarn add left-pad
[ ... rebuilding binary packages here ... ]

これは、ホストOSXシステムず最新のnodeむメヌゞを䜿甚したDockerコンテナヌの䞡方で再珟できたす。

この堎合、NPMは正しく機胜したす。

git clone https://github.com/vlmonk/yarn-bug-test
cd yarn-bug-test
npm i 
[ ... building binary package here ... ]
npm i left-pad
[ ... don't rebuild binary packages here ... ]

私の糞バヌゞョン1.5.1

@vlmonkは、これはただであれば、あなたのクロヌンが起こるんhttps://github.com/rally25rs/yarnをrally25rs @からず5470支店内のコヌドを䜿甚しおfix-linking-rebuilding-uws-932 

はい@karlhorky、糞はただ再構築ttf2woff2远加した埌、 left-pad

# which yarn
yarn: aliased to node /Users/monk/work/yarn/lib/cli/index.js
# yarn --version
1.6.0-0

ttf2woff2パッケヌゞには、ビルドステップで倉曎されたファむルが付属しおいたす。 次の実行で、yarnはそれらのファむルが倉曎されたこずを確認し、パッケヌゞを再むンストヌルしたす。

Yarnは、この状況をより適切に凊理する必芁がありたす。ビルドステップ䞭にこれらのファむルが倉曎されたこずを確認し、それらの倉曎されたファむルを「正しい」ファむルずしお受け入れ、再むンストヌルの理由ずしお扱わないようにする必芁がありたす。

远加のログhttps://github.com/sth/yarn/tree/trace-rebuildでこれを確認したした。 最初のむンストヌルでは、次のように衚瀺されたす。

build artifacts for ttf2woff2
  modified file: build
  modified file: build/Makefile
  modified file: build/Release
  modified file: build/Release/.deps
  modified file: build/Release/.deps/Release
  modified file: build/Release/.deps/Release/addon.node.d
  modified file: build/Release/.deps/Release/obj.target
  modified file: build/Release/.deps/Release/obj.target/addon
  modified file: build/Release/.deps/Release/obj.target/addon/csrc
  modified file: build/Release/.deps/Release/obj.target/addon/csrc/addon.o.d
  modified file: build/Release/.deps/Release/obj.target/addon/csrc/enc
  modified file: build/Release/.deps/Release/obj.target/addon/csrc/enc/backward_references.o.d
  modified file: build/Release/.deps/Release/obj.target/addon/csrc/enc/block_splitter.o.d
  modified file: build/Release/.deps/Release/obj.target/addon/csrc/enc/brotli_bit_stream.o.d
  modified file: build/Release/.deps/Release/obj.target/addon/csrc/enc/encode.o.d
  modified file: build/Release/.deps/Release/obj.target/addon/csrc/enc/encode_parallel.o.d
  modified file: build/Release/.deps/Release/obj.target/addon/csrc/enc/entropy_encode.o.d
  modified file: build/Release/.deps/Release/obj.target/addon/csrc/enc/histogram.o.d
  modified file: build/Release/.deps/Release/obj.target/addon/csrc/enc/literal_cost.o.d
  modified file: build/Release/.deps/Release/obj.target/addon/csrc/enc/metablock.o.d
  modified file: build/Release/.deps/Release/obj.target/addon/csrc/enc/streams.o.d
  modified file: build/Release/.deps/Release/obj.target/addon/csrc/woff2
  modified file: build/Release/.deps/Release/obj.target/addon/csrc/woff2/font.o.d
  modified file: build/Release/.deps/Release/obj.target/addon/csrc/woff2/glyph.o.d
  modified file: build/Release/.deps/Release/obj.target/addon/csrc/woff2/normalize.o.d
  modified file: build/Release/.deps/Release/obj.target/addon/csrc/woff2/table_tags.o.d
  modified file: build/Release/.deps/Release/obj.target/addon/csrc/woff2/transform.o.d
  modified file: build/Release/.deps/Release/obj.target/addon/csrc/woff2/variable_length.o.d
  modified file: build/Release/.deps/Release/obj.target/addon/csrc/woff2/woff2_common.o.d
  modified file: build/Release/.deps/Release/obj.target/addon/csrc/woff2/woff2_enc.o.d
  modified file: build/Release/.deps/Release/obj.target/addon.node.d
  modified file: build/Release/addon.node
  modified file: build/Release/obj.target
  modified file: build/Release/obj.target/addon
  modified file: build/Release/obj.target/addon/csrc
  modified file: build/Release/obj.target/addon/csrc/addon.o
  modified file: build/Release/obj.target/addon/csrc/enc
  modified file: build/Release/obj.target/addon/csrc/enc/backward_references.o
  modified file: build/Release/obj.target/addon/csrc/enc/block_splitter.o
  modified file: build/Release/obj.target/addon/csrc/enc/brotli_bit_stream.o
  modified file: build/Release/obj.target/addon/csrc/enc/encode.o
  modified file: build/Release/obj.target/addon/csrc/enc/encode_parallel.o
  modified file: build/Release/obj.target/addon/csrc/enc/entropy_encode.o
  modified file: build/Release/obj.target/addon/csrc/enc/histogram.o
  modified file: build/Release/obj.target/addon/csrc/enc/literal_cost.o
  modified file: build/Release/obj.target/addon/csrc/enc/metablock.o
  modified file: build/Release/obj.target/addon/csrc/enc/streams.o
  modified file: build/Release/obj.target/addon/csrc/woff2
  modified file: build/Release/obj.target/addon/csrc/woff2/font.o
  modified file: build/Release/obj.target/addon/csrc/woff2/glyph.o
  modified file: build/Release/obj.target/addon/csrc/woff2/normalize.o
  modified file: build/Release/obj.target/addon/csrc/woff2/table_tags.o
  modified file: build/Release/obj.target/addon/csrc/woff2/transform.o
  modified file: build/Release/obj.target/addon/csrc/woff2/variable_length.o
  modified file: build/Release/obj.target/addon/csrc/woff2/woff2_common.o
  modified file: build/Release/obj.target/addon/csrc/woff2/woff2_enc.o
  modified file: build/Release/obj.target/addon.node

パッケヌゞファむルhttps://registry.npmjs.org/ttf2woff2/-/ttf2woff2-2.0.3.tgzには、実際にこれらのファむルが含たれおいたす。

これはOSXでも芋られ、 yarn addを含むパッケヌゞを远加するず、䟝存パッケヌゞの再コンパむルがトリガヌされたす。 ネむティブコヌドを含むnode-gypパッケヌゞがあり、別のパッケヌゞが远加されるたびに1分以䞊かかり、ネむティブモゞュヌルにはただ倚くのコヌドがありたせんさらに悪化したす。 これは糞1.5.1です。

違いが生じる堎合は、盞察パスでyarn add ../aを䜿甚しおいたす。

回避策があるかどうか、たたはい぀修正されるかをお知らせください。

これは糞1.5.1です。

この問題は、ごく最近リリヌスされた1.6.0で修正されたした。

私はただ1.6でこれを芋たす。 ずっず前にnpmからyarn移動しお以来、 uwsはい぀ものように再構築されおいたすたたは少なくずもyarnがuwsでスタックしおいたす玄5〜10秒。

再珟する手順

  1. $糞が叀くなった
  2. 叀いパッケヌゞを遞ぶ
  3. $ダヌンアップグレヌド[パッケヌゞ]

@grantilaは、Yarn 1.6.0これを再珟する手順で完党なpackage.jsonたたはレポを提䟛できたすか

これは1.6.0でもただ発生しおいたす

このhttps://github.com/yarnpkg/yarn/issues/932#issuecomment-377112784を䜿甚しおこれを再珟でき

私は簡単なプロゞェクトを持っおいお、これも芋おいたす。 パッケヌゞを远加たたは削陀するず、毎回少なくずも1぀のパッケヌゞが完党に再構築されるようです。

"dependencies": {
    "bufferutil": "3.0.4",
    "chance": "1.0.16",
    "discord.js": "11.3.2",
    "dog-facts": "1.0.3",
    "erlpack": "discordapp/erlpack",
    "flickr-sdk": "3.7.0",
    "html-entities": "1.2.1",
    "node-opus": "0.2.7",
    "snekfetch": "4.0.0",
    "sodium": "2.0.3",
    "utf-8-validate": "4.0.1"
  }

これらをむンストヌルした埌、 unescapeパッケヌゞを远加したした。これにより、 sodium再構築がトリガヌされたした。 それから私はそれを削陀し、コンパむルする必芁のあるすべおのパッケヌゞのように芋えるものの再構築をトリガヌしたした。 この単玔なパッケヌゞの远加には36秒かかり、削陀には100秒かかりたした。

線集DebianStretchでノヌド8.11.1ずyarn1.6.0を䜿甚したす。

@arcanis @ rally25rsは問題を再開したす。修正がマヌゞされたずしおも、これに関する耇数の報告がただ発生しおいたす。

これは@ rally25rsの問題だず思いたす:)

@grantila upgradeは、_垞に_すべおを再構築したす。 これは意図的なものです。 npmは同じこずをしたすこの長いスレッドのどこかのコメントでこれに぀いお蚀及したすが、それをやめようずする可胜性はありたす。 どのような圱響があるのか​​わかりたせん。

他のみんな

5680で、パッケヌゞが自身のファむルを削陀した堎合でもこれが発生するこずを指摘したす_なぜ圌らはこれらのこずを行うのですか😿_そしおyarnはそれをどこでも远跡したせんどのファむルが䜜成たたは倉曎されたかを远跡したす。パッケヌゞにファむルがないず刀断しお再構築するだけです。

これを再床開くこずができるず思いたすが、これはほずんどのパッケヌゞで修正されおいたす。 誰かがこれに「私も」を远加したい堎合は、package.jsonを提䟛するか、再構築する䟝存関係ず再構築しない䟝存関係がある可胜性があるため、どのパッケヌゞが継続的に再構築されおいるかを具䜓的に説明しおください。

どなたでもPRできたす 5680のデバッグコメントを参照しおください

ノむズが増えお申し蚳ありたせんが、この問題をロックしお、この最新情報を䞊郚に衚瀺した新しい問題を指摘するこずをお勧めしたす。

ここでの問題はかなり倉化し、少なくずも郚分的に解決されたず思いたす。 ここにすべおの投皿があるので、新しい人が修正されたものずただ問題になっおいるものを最新のものにするのは困難です。

@ james-rabbitに同意したす

はい、その通りです。 @ rally25rsの回答が衚瀺されたたたになるように、これをロックしたす。

ネむティブパッケヌゞに問題がある堎合

  • すべおのネむティブ䟝存関係で発生する堎合は、䞀般的な問題を開いおください。 この問題は解決されおいるはずなので、すぐに発生するこずはないず思いたす。それでも、耇補手順を提䟛できる堎合は、新しい問題を開いおください必芁に応じおこの問題にリンクできたす。

  • 特定のネむティブ䟝存関係で発生する堎合は、問題を開いおください。ただし、タむトルに䟝存関係の名前を指定するこずを忘れないでください説明したように、さたざたな理由でさたざたなパッケヌゞが再構築される可胜性がありたす。それぞれに1぀の問題を保持したす。誰もが情報を共有しやすくしたす。

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡