Saat menjalankan yarn install --production
itu tidak menginstal dependensi yang diperlukan dari forever
. Ini tampaknya terkait dengan memiliki nodemon
di devDependencies
.
Tanggapan kesalahan:
> forever app.js
module.js:457
throw err;
^
Error: Cannot find module 'minimatch'
Saya telah membuat aplikasi tes di sini:
https://github.com/donovan-graham/yarn-example-app
# Steps to reproduce error
git clone https://github.com/donovan-graham/yarn-example-app.git
cd yarn-example-app
yarn install --production
npm start
# temporary step to bypass error
rm -rf node_modules
yarn remove nodemon
yarn install --production
npm start
@ Daniel15 Saya rasa ini karena nodemon memiliki minimatch versi terbaru.
Fungsi linker saat ini mengambil deps dan dev deps ke dalamnya. Untuk produksi argumen, ini harus dicegah.
Bahkan pada pemasangan benang normal tanpa argumen produksi. Hanya versi terbaru yang diinstal di jalur yang sebenarnya. Ini harus diperiksa juga.
Saya mendapatkan masalah serupa saat menjalankan yarn install --production
dan kemudian mencoba menjalankan bangunan saya menggunakan webpack
(menjalankan yarn install
berfungsi dengan baik).
> NODE_ENV=production webpack -p --config webpack/production.config.js
module.js:457
throw err;
^
Error: Cannot find module 'graceful-fs'
at Function.Module._resolveFilename (module.js:455:15)
at Function.Module._load (module.js:403:25)
at Module.require (module.js:483:17)
at require (internal/module.js:20:19)
dan jika saya ingat dengan benar, upaya sebelumnya menunjukkan kesalahan yang serupa dengan paket lain (tidak hanya graceful-fs
)
Saya mendapatkan sangat mirip juga ... yarn install
berfungsi dengan baik. tetapi dengan bendera --production
saya mendapatkan ini:
> yarn install --production
yarn install v0.15.1
error npm-shrinkwrap.json found. This will not be updated or respected. See [TODO] for more information.
[1/4] Resolving packages...
[2/4] Fetching packages...
warning [email protected]: The engine "rhino" appears to be invalid.
warning [email protected]: The platform "win32" is incompatible with this module.
info "[email protected]" is an optional dependency and failed compatibility check. Excluding it from installation.
warning [email protected]: The engine "rhino" appears to be invalid.
warning [email protected]: The engine "rhino" appears to be invalid.
[3/4] Linking dependencies...
[4/4] Building fresh packages...
[1/1] ⠐ node-sass: at Module.require (module.js:367:17)
[-/1] ⠐ waiting...
[-/1] ⠐ waiting...
[-/1] ⠐ waiting...
error C:\vagrant\ebroker-quoteengine\node_modules\node-sass: Command failed.
Exit code: 1
Command: C:\WINDOWS\system32\cmd.exe
Arguments: /d /s /c node scripts/install.js
Directory: C:\vagrant\ebroker-quoteengine\node_modules\node-sass
Output:
module.js:341
throw err;
^
Error: Cannot find module 'tough-cookie'
at Function.Module._resolveFilename (module.js:339:15)
at Function.Module._load (module.js:290:25)
at Module.require (module.js:367:17)
at require (internal/module.js:16:19)
at Object.<anonymous> (C:\vagrant\ebroker-quoteengine\node_modules\node-sass\node_modules\request\lib\cookies.js:3:13)
at Module._compile (module.js:413:34)
at Object.Module._extensions..js (module.js:422:10)
at Module.load (module.js:357:32)
at Function.Module._load (module.js:314:12)
at Module.require (module.js:367:17)
at SpawnError (C:\Users\nathan.white\AppData\Roaming\npm\node_modules\yarnpkg\lib\errors.js:18:1)
at ChildProcess.<anonymous> (C:\Users\nathan.white\AppData\Roaming\npm\node_modules\yarnpkg\lib\util\child.js:107:15)
at emitTwo (events.js:100:13)
at ChildProcess.emit (events.js:185:7)
at maybeClose (internal/child_process.js:827:16)
at Socket.<anonymous> (internal/child_process.js:319:11)
at emitOne (events.js:90:13)
at Socket.emit (events.js:182:7)
at Pipe._onclose (net.js:471:12)
Dapat mereproduksi masalah serupa dengan:
npm init --yes
yarn add --dev nodemon
yarn add gulp
rm -rf node_modules
yarn install --production
Ini akan menginstal is-glob
tetapi tidak ketergantungannya is-extglob
:
> yarn why is-glob
yarn why v0.16.0
# ...
info Reasons this module exists
- "nodemon#chokidar" depends on it
- "gulp#liftoff#findup-sync" depends on it
> yarn why is-extglob
yarn why v0.16.0
# ...
info This module exists because "nodemon#chokidar#is-glob" depends on it.
Tampaknya "melupakan" jalur ketergantungan gulp#liftoff
saat melakukan traverse ..?
EDIT: Contoh yang lebih kecil:
npm init --yes
yarn add --dev [email protected]
yarn add [email protected]
rm -rf node_modules
yarn --prod
node -e "require('is-glob')"
Juga dipastikan bahwa menghapus devDependencies
sebelum menjalankan yarn --prod
menginstal pohon ketergantungan yang benar.
Tim perangkat lunak saya mengalami masalah ini, khususnya dengan paket prr
yang merupakan ketergantungan dari less
dan pouchdb
. Banyak paket lain yang juga hilang dari --production
build tetapi prr
adalah yang pertama menyebabkan kegagalan pada produk kami. Masalah ini telah menjadi penghalang bagi kami karena ukuran pemasang kami akan meningkat secara signifikan jika kami menyertakan paket dev, jadi kami telah kembali menggunakan npm.
FWIW: Saya dapat mengatasi masalah ini dengan menghapus devDependencies
bagian dari package.json sebelum menjalankan yarn
dalam produksi.
seperti yang dikatakan @gihrig menjalankan npm prune --production
dapat menghapus devDependencies yang membantu mengatasi masalah ini.
seperti yang dikatakan @gihrig , menjalankan npm prune --production dapat menghapus devDependencies yang membantu mengatasi masalah ini.
Keuntungan utama benang atas npm adalah deterministik node_modules
dir yaitu sama dalam dev, CI, dan produksi di luar kotak. Apakah menjalankan npm prune --production
menghasilkan perilaku yang sama?
Solusi saya saat ini adalah menginstal devDependencies
dalam produksi juga. Disk murah (terutama di AWS) dan penginstalan deterministik jauh lebih penting bagi saya daripada ruang disk. Jadi "solusi" saya adalah bertindak seperti yarn --production
tidak ada sekarang.
@tanx npm prune --production
cukup hapus devDependencies. Dan dalam pengujian saya selalu modul yang sama telah dihapus. Di sisi lain, ya, ruang disk itu murah, jadi mungkin bertindak seolah-olah yarn --production
tidak keluar adalah solusi yang lebih baik :)
@tanx npm prune --production cukup hapus devDependencies. Dan dalam pengujian saya selalu modul yang sama telah dihapus.
Inilah tepatnya mentalitas "bekerja di mesin saya" yang dijelaskan dalam entri blog Yarn . Masalahnya adalah Anda membiarkan npm mengubah status node_modules
tanpa pemeriksaan integritas benang melalui file yarn.lock
.
Mudah-mudahan solusi yang dibahas akan segera diperdebatkan oleh pembaruan benang untuk menghormati departemen dev vs produksi. Sementara itu, memang ada banyak yang perlu dikeluhkan dengan hack pasca-pemrosesan "npm prune".
yarn why
yang dijelaskan di atas tidak terkait afaict. Tampaknya hanya efek samping dari bagaimana kode why
mencari paket.
Mencoba menemukan cara yang bagus untuk melakukan ini tanpa menambahkan pass tambahan untuk menyebarkan visibilitas setelah grafik dijalankan sekali. Tidak yakin apakah dapat diterima dengan hanya membagi visibilitas menjadi langkah terpisah ..?
Ada beberapa kasus tepi yang menarik juga, ini bukan hanya tentang menyelesaikan visibilitas dengan benar:
Dalam hal ini, flag opsional C bergantung pada dev vs. prod. Dalam dev itu akan menjadi non-opsional, dalam prod itu akan menjadi opsional. Hanya mewarisi flag opsional dari salah satu orang tua (atau selalu mewarisinya dari orang tua prod) dapat menyebabkan keanehan.
Ini masih belum diperbaiki di 0.17.2 😢
Repro: https://gist.github.com/SimenB/2b179f3b6bca73ba824e1273ea38aed3
yarn
node index.js # works
yarn --prod
node index.js # explodes
/ cc @jkrems
Tidak terlihat tetap bagi saya baik di 0.17.2 (HearthSim / Joust # 169).
Saya akan membukanya kembali karena dapat dengan mudah direproduksi dengan instruksi @SimenB .
@wyze Masalahnya mungkin instalasinya sendiri, dan bukan pemangkasannya?
rm -rf node_modules/ && yarn && npm prune --production && node index.js
gagal dengan kesalahan yang sama.
rm -rf node_modules/ && npm i && npm prune --production && node index.js
bekerja.
Saya kira benang dan npm tidak dimaksudkan untuk digunakan pada saat yang bersamaan, jadi mungkin kebetulan itu menghasilkan kesalahan yang sama.
Selisih node_modules
setelah npm i
dan yarn
menunjukkan bahwa benang tidak menghasilkan "_requiredBy"
, mungkin mengapa npm prune
kacau setelah yarn install
. Info itu tersedia di lockfile, jadi seharusnya tidak menjadi masalah, bukan?
Masalah yang sama di sini, kami menguji gedung produksi di buruh pelabuhan dan menemukan bahwa dengan yarn --production
paket mime
hilang bahkan jika modul induk send
(digunakan oleh express) dipasang .
Saya pikir masalah ini harus ditangani dengan prioritas maksimum karena menyebabkan build yang tidak dapat diprediksi.
Sebagai solusinya, saya hanya menghapus bagian devDependencies dari package.json di skrip build saya.
$ jq 'del(.devDependencies)' package.json > tmp.json && mv tmp.json package.json
Mengikuti saran @ dy-dx, saya telah menulis titik masuk khusus untuk Docker agar monkeypatch masalah ini selama pengembangan:
Pertama-tama Anda harus menginstal jq di Dockerfile Anda dengan menambahkan baris ini di suatu tempat:
RUN apt-get update && \
apt-get install -y jq
Kemudian tambahkan skrip ini di suatu tempat dan gunakan sebagai Dockerfile [ENTRYPOINT]
atau docker-compose entrypoint
entrypoint.sh
Gunakan perintah pilihan Anda untuk Dockerfile [CMD]
atau docker-compose command
Misalnya npm start
Skrip yang sama dapat digunakan di CI dengan beberapa edit untuk membangun gambar
@SimenB Bisakah Anda menghapus node_modules
dari paket entries-test
dan mencobanya?
Ekstrak bola tar v1.0.1, ada folder node_modules
dengan define-properties
dan modul lainnya. Dan, tidak satupun dari mereka memiliki file *.js
.
@torifat Huh, bagaimana bisa sampai masuk? Seharusnya tidak mungkin menyertakan node_modules
tanpa menggunakan bundledDependencies
...
Akan mencoba untuk mendorong yang bersih (saya telah menghapus proyek, harus membuat ulang).
@torifat Sepertinya kesalahan benang.
$ mkdir some-dir && cd some-dir && yarn init -y && yarn add object.entries && yarn pack && tar -ztvf some-dir-v1.0.0.tgz
drwxr-xr-x 0 0 0 0 Nov 27 10:36 package
-rw-r--r-- 0 0 0 972 Oct 15 2015 package/node_modules/define-properties/CHANGELOG.md
-rw-r--r-- 0 0 0 1080 Oct 15 2015 package/node_modules/define-properties/LICENSE
-rw-r--r-- 0 0 0 2725 Oct 15 2015 package/node_modules/define-properties/README.md
-rw-r--r-- 0 0 0 1593 Oct 15 2015 package/node_modules/define-properties/package.json
-rw-r--r-- 0 0 0 3798 Aug 21 11:09 package/node_modules/es-abstract/CHANGELOG.md
-rw-r--r-- 0 0 0 1080 Jul 29 2015 package/node_modules/es-abstract/LICENSE
-rw-r--r-- 0 0 0 1812 Aug 13 2015 package/node_modules/es-abstract/README.md
-rw-r--r-- 0 0 0 1989 Aug 21 11:09 package/node_modules/es-abstract/package.json
-rw-r--r-- 0 0 0 1207 Jan 4 2016 package/node_modules/es-to-primitive/CHANGELOG.md
-rw-r--r-- 0 0 0 1082 Nov 1 2015 package/node_modules/es-to-primitive/LICENSE
-rw-r--r-- 0 0 0 2180 Nov 1 2015 package/node_modules/es-to-primitive/README.md
-rw-r--r-- 0 0 0 1558 Jan 4 2016 package/node_modules/es-to-primitive/package.json
-rw-r--r-- 0 0 0 1074 Sep 22 2014 package/node_modules/foreach/LICENSE
-rw-r--r-- 0 0 0 593 Sep 22 2014 package/node_modules/foreach/Readme.md
-rw-r--r-- 0 0 0 1297 Sep 22 2014 package/node_modules/foreach/package.json
-rw-r--r-- 0 0 0 1052 Feb 14 2016 package/node_modules/function-bind/LICENSE
-rw-r--r-- 0 0 0 1488 Feb 14 2016 package/node_modules/function-bind/README.md
-rw-r--r-- 0 0 0 1619 Feb 14 2016 package/node_modules/function-bind/package.json
-rw-r--r-- 0 0 0 1060 Jul 24 2015 package/node_modules/has/LICENSE-MIT
-rw-r--r-- 0 0 0 239 Jul 24 2015 package/node_modules/has/README.mkd
-rw-r--r-- 0 0 0 782 Jul 24 2015 package/node_modules/has/package.json
-rw-r--r-- 0 0 0 1839 Feb 28 2016 package/node_modules/is-callable/CHANGELOG.md
-rw-r--r-- 0 0 0 1082 May 19 2015 package/node_modules/is-callable/LICENSE
-rw-r--r-- 0 0 0 1978 Aug 12 2015 package/node_modules/is-callable/README.md
-rw-r--r-- 0 0 0 1983 Feb 28 2016 package/node_modules/is-callable/package.json
-rw-r--r-- 0 0 0 421 Sep 27 2015 package/node_modules/is-date-object/CHANGELOG.md
-rw-r--r-- 0 0 0 1082 Mar 13 2015 package/node_modules/is-date-object/LICENSE
-rw-r--r-- 0 0 0 1751 Aug 12 2015 package/node_modules/is-date-object/README.md
-rw-r--r-- 0 0 0 1420 Sep 27 2015 package/node_modules/is-date-object/package.json
-rw-r--r-- 0 0 0 482 Jan 30 2015 package/node_modules/is-regex/CHANGELOG.md
-rw-r--r-- 0 0 0 1081 Jan 15 2014 package/node_modules/is-regex/LICENSE
-rw-r--r-- 0 0 0 1623 Jan 28 2015 package/node_modules/is-regex/README.md
-rw-r--r-- 0 0 0 1512 Jan 30 2015 package/node_modules/is-regex/package.json
-rw-r--r-- 0 0 0 121 Jan 26 2015 package/node_modules/is-symbol/CHANGELOG.md
-rw-r--r-- 0 0 0 1082 Jan 24 2015 package/node_modules/is-symbol/LICENSE
-rw-r--r-- 0 0 0 1469 Jan 24 2015 package/node_modules/is-symbol/README.md
-rw-r--r-- 0 0 0 1214 Jan 26 2015 package/node_modules/is-symbol/package.json
-rw-r--r-- 0 0 0 6992 Jul 5 19:14 package/node_modules/object-keys/CHANGELOG.md
-rw-r--r-- 0 0 0 1080 Oct 15 2015 package/node_modules/object-keys/LICENSE
-rw-r--r-- 0 0 0 2460 Oct 15 2015 package/node_modules/object-keys/README.md
-rw-r--r-- 0 0 0 1955 Jul 5 19:14 package/node_modules/object-keys/package.json
-rw-r--r-- 0 0 0 560 Oct 6 2015 package/node_modules/object.entries/CHANGELOG.md
-rw-r--r-- 0 0 0 1082 Sep 2 2015 package/node_modules/object.entries/LICENSE
-rw-r--r-- 0 0 0 2339 Sep 2 2015 package/node_modules/object.entries/README.md
-rw-r--r-- 0 0 0 1636 Oct 6 2015 package/node_modules/object.entries/package.json
-rw-r--r-- 0 0 0 145 Nov 27 10:36 package/package.json
Menggunakan npm pack
berfungsi seperti yang diharapkan (di direktori yang sama).
$ npm pack && tar -ztvf some-dir-1.0.0.tgz
-rw-r--r-- 0 501 20 145 Nov 27 10:36 package/package.json
-rw-r--r-- 0 501 20 2460 Nov 27 10:36 package/yarn.lock
Sepertinya Yarn sangat ingin memasukkan changelog
, readme
dan package.json
bahkan termasuk mereka dari node_modules
...
Menggunakan [email protected]
@torifat Mempublikasikan 1.0.2 sekarang (menggunakan npm untuk menghindari bug yang baru saja disebutkan), masih masalah yang sama
Dibuka # 2047 untuk bug terkait node_modules, tetapi ini adalah masalah besar dalam masalah ini, karena repro saya masih valid dengan tarball yang tepat diterbitkan.
(maaf tentang spam ke orang yang berlangganan, saya akan berhenti sekarang)
@SimenB Terima kasih atas waktu Anda. Saya sudah menemukan bugnya.
Ini tampaknya terkait dengan # 2104, yang baru saja saya buka. node_modules/.bin
setelah penginstalan OP:
$ ll node_modules/.bin
total 16
lrwxr-xr-x 1 samuelreed staff 22B Dec 1 11:16 forever -> ../forever/bin/forever
lrwxr-xr-x 1 samuelreed staff 109B Dec 1 11:16 nodemon -> ../../../../../Library/Caches/Yarn/npm-nodemon-1.11.0-226c562bd2a7b13d3d7518b49ad4828a3623d06c/bin/nodemon.js
Diperbaiki melalui # 2116.
Apakah # 2116 sudah digabungkan? Saya tidak bisa melihatnya dalam riwayat komit. Tampaknya terlalu dini untuk menutup banyak masalah sebelum perbaikan tersedia setidaknya di master jika tidak dalam rilis yang diberi tag. Juga, sepertinya # 2116 gagal dalam ketiga pemeriksaan. Apakah saya melewatkan sesuatu?
Ini masih menjadi masalah di v0.18.0, yang mencakup (# 2116).
ya, saya dapat mengonfirmasi bahwa masalah ini masih ada di 0.18.0
Dari apa yang saya lihat, # 2116 seharusnya telah memperkenalkan pengujian untuk masalah ini ( test.concurrent ('- flag produksi mengabaikan ketergantungan dev' ... atau saya salah?
Pengujian tidak memverifikasi perilaku yang benar untuk dependensi transitif:
Dalam kasus saya, masalahnya adalah ketergantungan bersama (lru-cache) antara prod (minimatch v2.0.0) dan ketergantungan dev (useragent v2.1.9). Ketergantungan bersama itu tidak dipasang di --production
, meskipun ketergantungan prod membutuhkannya.
@beheh saya tidak melihat adalah minimatch
menggunakan lru-cache
, mungkin itu sebabnya tidak dipasang dalam produksi?
dep { A->B }
devDep { B }
OK
A,B are installed.
dep { A->C->D }
devDep { B->C->D }
OK
A,C,D are installed.
dep { E->A->C->D }
devDep { B->C->D }
KO
E,A,C are installed but D is missing.
ini adalah kasus yang diilustrasikan oleh @SimenB
"dependencies": {
"entries-test": "^1.0.1"
},
"devDependencies": {
"object.values": "^1.0.3"
}
@SharpEdgege Terima kasih untuk pengujian. Saya akan menambahkannya sebagai kasus uji.
@torifat mungkin mempertimbangkan untuk
@SharpEdgeMarshall Mencoba yang berikut ini dan berhasil. Perlu mencari tahu masalah sebenarnya.
@SimenB perlu memverifikasi sebelum membuka kembali. Ini mungkin terjadi karena optionalDependencies
juga. Yang memiliki masalah terbuka lainnya.
@torifat repro saya masih terjadi: https://github.com/yarnpkg/yarn/issues/761#issuecomment -260975012
EDIT: Yang tidak memiliki deps opsional, grep optional yarn.lock
keluar dengan 1
Sekarang gagal pada Error: Cannot find module 'object-keys'
bukannya kehilangan define-properties
.
$ yarn why object-keys
yarn why v0.18.0
[1/4] 🤔 Why do we have the module "object-keys"...?
[2/4] 🚚 Initialising dependency graph...
[3/4] 🔍 Finding dependency...
[4/4] 🚡 Calculating file sizes...
info This module exists because "object.values#define-properties" depends on it.
✨ Done in 0.09s.
Sepertinya sekarang menangani satu tingkat lebih dalam, tetapi kemudian gagal
@SimenB Baru saja mencoba dengan:
{
"dependencies": {
"entries-test": "^1.0.1"
},
"devDependencies": {
"object.values": "^1.0.3"
}
}
Dan, itu bekerja dengan baik untuk saya. Dapatkah Anda melakukan yarn cache clean
dan mencoba lagi?
Tidak, gagal
@SimenB Dapatkah Anda membagikan file yarn.lock
?
$ rm -rf node_modules && rm yarn.lock && yarn cache clean && yarn && node index.js && yarn --prod && node index.js
yarn cache v0.18.0
success Cleared cache.
✨ Done in 0.07s.
yarn install v0.18.0
info No lockfile found.
[1/4] 🔍 Resolving packages...
[2/4] 🚚 Fetching packages...
[3/4] 🔗 Linking dependencies...
[4/4] 📃 Building fresh packages...
success Saved lockfile.
✨ Done in 0.92s.
yarn install v0.18.0
[1/4] 🔍 Resolving packages...
[2/4] 🚚 Fetching packages...
[3/4] 🔗 Linking dependencies...
[4/4] 📃 Building fresh packages...
✨ Done in 0.18s.
module.js:471
throw err;
^
Error: Cannot find module 'object-keys'
at Function.Module._resolveFilename (module.js:469:15)
at Function.Module._load (module.js:417:25)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/Users/simbekkh/repos/ugh/node_modules/define-properties/index.js:3:12)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
Bagi saya, contoh SimenB tidak berfungsi dengan 0.18.0 bahkan setelah yarn cache clean
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
define-properties@^1.1.2:
version "1.1.2"
resolved "http://npm.office.crweb.it/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94"
dependencies:
foreach "^2.0.5"
object-keys "^1.0.8"
entries-test@^1.0.1:
version "1.0.2"
resolved "http://npm.office.crweb.it/entries-test/-/entries-test-1.0.2.tgz#f1039aba3a2effc9c3a56b6b1180694b2789e4d5"
dependencies:
object.entries "^1.0.3"
es-abstract@^1.6.1:
version "1.6.1"
resolved "http://npm.office.crweb.it/es-abstract/-/es-abstract-1.6.1.tgz#bb8a2064120abcf928a086ea3d9043114285ec99"
dependencies:
es-to-primitive "^1.1.1"
function-bind "^1.1.0"
is-callable "^1.1.3"
is-regex "^1.0.3"
es-to-primitive@^1.1.1:
version "1.1.1"
resolved "http://npm.office.crweb.it/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d"
dependencies:
is-callable "^1.1.1"
is-date-object "^1.0.1"
is-symbol "^1.0.1"
foreach@^2.0.5:
version "2.0.5"
resolved "http://npm.office.crweb.it/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99"
function-bind@^1.0.2, function-bind@^1.1.0:
version "1.1.0"
resolved "http://npm.office.crweb.it/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771"
has@^1.0.1:
version "1.0.1"
resolved "http://npm.office.crweb.it/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28"
dependencies:
function-bind "^1.0.2"
is-callable@^1.1.1, is-callable@^1.1.3:
version "1.1.3"
resolved "http://npm.office.crweb.it/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2"
is-date-object@^1.0.1:
version "1.0.1"
resolved "http://npm.office.crweb.it/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16"
is-regex@^1.0.3:
version "1.0.3"
resolved "http://npm.office.crweb.it/is-regex/-/is-regex-1.0.3.tgz#0d55182bddf9f2fde278220aec3a75642c908637"
is-symbol@^1.0.1:
version "1.0.1"
resolved "http://npm.office.crweb.it/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572"
object-keys@^1.0.8:
version "1.0.11"
resolved "http://npm.office.crweb.it/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d"
object.entries@^1.0.3:
version "1.0.4"
resolved "http://npm.office.crweb.it/object.entries/-/object.entries-1.0.4.tgz#1bf9a4dd2288f5b33f3a993d257661f05d161a5f"
dependencies:
define-properties "^1.1.2"
es-abstract "^1.6.1"
function-bind "^1.1.0"
has "^1.0.1"
object.values@^1.0.3:
version "1.0.4"
resolved "http://npm.office.crweb.it/object.values/-/object.values-1.0.4.tgz#e524da09b4f66ff05df457546ec72ac99f13069a"
dependencies:
define-properties "^1.1.2"
es-abstract "^1.6.1"
function-bind "^1.1.0"
has "^1.0.1"
$ rm -rf node_modules && rm yarn.lock && yarn cache clean && yarn && node index.js && rm -rf node_modules && rm yarn.lock && yarn cache clean && yarn --prod && node index.js
yarn cache v0.18.0
success Cleared cache.
✨ Done in 0.07s.
yarn install v0.18.0
info No lockfile found.
[1/4] 🔍 Resolving packages...
[2/4] 🚚 Fetching packages...
[3/4] 🔗 Linking dependencies...
[4/4] 📃 Building fresh packages...
success Saved lockfile.
✨ Done in 0.93s.
yarn cache v0.18.0
success Cleared cache.
✨ Done in 0.07s.
yarn install v0.18.0
info No lockfile found.
[1/4] 🔍 Resolving packages...
[2/4] 🚚 Fetching packages...
[3/4] 🔗 Linking dependencies...
[4/4] 📃 Building fresh packages...
success Saved lockfile.
✨ Done in 0.76s.
module.js:471
throw err;
^
Error: Cannot find module 'object-keys'
at Function.Module._resolveFilename (module.js:469:15)
at Function.Module._load (module.js:417:25)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/Users/simbekkh/repos/ugh/node_modules/define-properties/index.js:3:12)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
Lockfile:
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
define-properties@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94"
dependencies:
foreach "^2.0.5"
object-keys "^1.0.8"
entries-test@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/entries-test/-/entries-test-1.0.2.tgz#f1039aba3a2effc9c3a56b6b1180694b2789e4d5"
dependencies:
object.entries "^1.0.3"
es-abstract@^1.6.1:
version "1.6.1"
resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.6.1.tgz#bb8a2064120abcf928a086ea3d9043114285ec99"
dependencies:
es-to-primitive "^1.1.1"
function-bind "^1.1.0"
is-callable "^1.1.3"
is-regex "^1.0.3"
es-to-primitive@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d"
dependencies:
is-callable "^1.1.1"
is-date-object "^1.0.1"
is-symbol "^1.0.1"
foreach@^2.0.5:
version "2.0.5"
resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99"
function-bind@^1.0.2, function-bind@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771"
has@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28"
dependencies:
function-bind "^1.0.2"
is-callable@^1.1.1, is-callable@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2"
is-date-object@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16"
is-regex@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.3.tgz#0d55182bddf9f2fde278220aec3a75642c908637"
is-symbol@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572"
object-keys@^1.0.8:
version "1.0.11"
resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d"
object.entries@^1.0.3:
version "1.0.4"
resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.0.4.tgz#1bf9a4dd2288f5b33f3a993d257661f05d161a5f"
dependencies:
define-properties "^1.1.2"
es-abstract "^1.6.1"
function-bind "^1.1.0"
has "^1.0.1"
object.values@^1.0.3:
version "1.0.4"
resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.0.4.tgz#e524da09b4f66ff05df457546ec72ac99f13069a"
dependencies:
define-properties "^1.1.2"
es-abstract "^1.6.1"
function-bind "^1.1.0"
has "^1.0.1"
@Simen Terima kasih. Sepertinya, cache saya bermasalah. Setelah membersihkan cache saya sekarang gagal. Tapi, dengan error yang berbeda. Beri aku waktu untuk menyelidiki.
Btw, saya sarankan menggunakan https://github.com/Mottie/Octopatcher di utas ini
Sangat praktis dengan banyak jalur keluaran
Saya akan berhenti mengirim spam sekarang
@SimenB Gagal v0.18.0
tetapi tidak dapat mereproduksi master
.
UPDATE: Aneh! Itu gagal lagi 😕
@torifat Saya dapat mengonfirmasi bahwa tidak berfungsi dengan master (v0.19.0)
rm -rf node_modules && rm yarn.lock && ../yarn/bin/yarn cache clean && ../yarn/bin/yarn && node index.js && rm -rf node_modules && rm yarn.lock && ../yarn/bin/yarn cache clean && ../yarn/bin/yarn --prod && node index.js
yarn cache v0.19.0-0
success Cleared cache.
Done in 0.58s.
yarn install v0.19.0-0
info No lockfile found.
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Saved lockfile.
Done in 10.18s.
yarn cache v0.19.0-0
success Cleared cache.
Done in 0.09s.
yarn install v0.19.0-0
info No lockfile found.
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Saved lockfile.
Done in 4.26s.
module.js:457
throw err;
^
Error: Cannot find module 'object-keys'
at Function.Module._resolveFilename (module.js:455:15)
at Function.Module._load (module.js:403:25)
at Module.require (module.js:483:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/home/sharpedge/git/Utility/YarnBug/node_modules/define-properties/index.js:3:12)
at Module._compile (module.js:556:32)
at Object.Module._extensions..js (module.js:565:10)
at Module.load (module.js:473:32)
at tryModuleLoad (module.js:432:12)
at Function.Module._load (module.js:424:3)
Saya memiliki masalah yang sama (beberapa paket tidak diinstal dengan --production
flag) dengan stabil saat ini 0.17.10
:
curl -o- -L https://yarnpkg.com/install.sh | bash && ~/.yarn/bin/yarn install --production && rm -rf ~/.yarn
Tetapi ketika saya mencoba nightly build Yarn 0.19.0-20161207.1241
semua paket yang dibutuhkan telah diinstal dengan benar untuk aplikasi saya:
wget https://yarnpkg.com/install.sh && chmod +x install.sh && ./install.sh --nightly && rm -f install.sh && ~/.yarn/bin/yarn install --production && rm -rf ~/.yarn
@SharpEdgeMarshall @SimenB dapatkah Anda mencoba pembuatan nightly terbaru dan memastikan bahwa masalah tetap ada.
Digunakan dalam wadah buruh pelabuhan saya: https://gist.github.com/nodkz/b843d65a3430a4f510e5f5eb0cc759d2
@nodkz 18 sudah keluar dan stabil (menurut saya?), tetapi seperti yang dapat dilihat di pos langsung di atas milik Anda, master (setidaknya 2 hari yang lalu) masih memiliki bug
Saya pikir itu masih membutuhkan install yarn@rc
:
'dist-tags': { rc: '0.18.0', latest: '0.17.10' },
Itu baru, saya mendapat 0,18 beberapa hari yang lalu dengan hanya menginstal. Bagaimanapun, bug masih dapat direproduksi di 0.18.
@nodkz Repro adalah:
{
"dependencies": {
"entries-test": "^1.0.1"
},
"devDependencies": {
"object.values": "^1.0.3"
}
}
Ya, mengalami masalah serupa dengan proyek kami juga:
rm -rf package.json yarn.lock node_modules && npm init --yes && yarn add --dev nodemon && yarn add glob-stream && yarn --prod && node -p "require('glob-stream')"
Gagal dengan 0.18 dan cabang master terbaru.
Sepakat. Masih bisa repro dengan yang terbaru.
Saya pikir masalah saya mirip atau sama dengan yang ini. Build gagal di Heroku, tetapi hanya untuk lingkungan produksi. Caching dinonaktifkan.
Resolving node version ^7.2.1 via semver.io...
Downloading and installing node 7.2.1...
Using default npm version: 3.10.10
Resolving yarn version (latest) via semver.io...
Downloading and installing yarn (0.18.1)...
Installed yarn 0.18.1
-----> Restoring cache
Skipping cache restore (disabled by config)
-----> Building dependencies
Installing node modules (yarn)
yarn install v0.18.1
[1/4] Resolving packages...
[2/4] Fetching packages...
warning [email protected]: The platform "linux" 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...
error /tmp/build_0e4ff736ad0f25dc816a47543687fefc/bbb7b6e751dde291f65dea175f41a26862eef28f/node_modules/bcrypt: Command failed.
Exit code: 1
Command: sh
Arguments: -c node-pre-gyp install --fallback-to-build
Directory: /tmp/build_0e4ff736ad0f25dc816a47543687fefc/bbb7b6e751dde291f65dea175f41a26862eef28f/node_modules/bcrypt
Output:
module.js:472
throw err;
^
Error: Cannot find module 'abbrev'
at Function.Module._resolveFilename (module.js:470:15)
at Function.Module._load (module.js:418:25)
at Module.require (module.js:498:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/tmp/build_0e4ff736ad0f25dc816a47543687fefc/bbb7b6e751dde291f65dea175f41a26862eef28f/node_modules/nopt/lib/nopt.js:10:14)
at Module._compile (module.js:571:32)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:488:32)
at tryModuleLoad (module.js:447:12)
at Function.Module._load (module.js:439:3)
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
-----> Build failed
Saya juga memiliki masalah ini juga. Saya masih menggunakan yarn install
untuk produksi sampai saat ini karena yarn install --production
tidak menginstal dependensi yang benar dengan benar.
Saya khawatir saya tidak bisa melakukan itu, karena hardcoded menjadi yarn install --production
di Heroku buildpack menurut saya (ref https://github.com/heroku/heroku-buildpack-nodejs/issues/337)
@adamreisnz Maaf, yang saya maksud adalah masalah asli, bukan milik Anda.
Untuk solusi dari masalah Anda, saya sarankan Anda meletakkan semua devDependencies
menjadi dependencies
untuk saat ini hingga masalah ini diperbaiki.
@dashmug Ah ok, tidak masalah.
Bagaimanapun, saya lebih suka menggunakan npm
di Heroku untuk saat ini sampai Yarn lebih stabil, daripada mengotak-atik solusi hacky. Saya telah meletakkan yarn.lock
di .gitignore
agar tidak dapat diunggah ke repo / heroku. Dengan cara ini, saya masih bisa menggunakan Yarn secara lokal, tetapi itu tidak akan memengaruhi build di Heroku.
@adamreisnz Itu mengalahkan tujuan Anda untuk menggunakan yarn
, bukan begitu?
@dashmug Tidak juga, setidaknya, tidak untuk kami. Saya tidak menggunakannya untuk mengunci versi paket di tempatnya. Kami memiliki dependensi yang sangat mutakhir dan tidak ada masalah seputar "bekerja pada mesin saya". Alasan utama saya untuk pindah ke thread di atas npm adalah untuk kecepatannya, yang untuk aplikasi kompleks dengan banyak dependensi yang saya lihat mulai dari 5 menit dengan npm install
menjadi 22 detik dengan benang.
Selama benang tidak stabil, saya dapat hidup dengan proses pembuatan yang sedikit lebih lambat di Heroku, selama saya dapat menggunakan benang secara lokal untuk pengembangan dan memiliki pemasangan yang cepat :)
Benang diiklankan sebagai pengganti npm yang cukup banyak. Namun, beberapa masalah yang kami temui dan yang masih belum terselesaikan, seperti ini, menghalangi kami untuk menggunakannya. Oleh karena itu saya melihatnya sebagai alat tambahan saat ini, yang berguna untuk satu hal, tetapi belum ada untuk yang lain. Saya tidak ragu pada waktunya ini akan bekerja dengan baik :)
Ini tampaknya diperbaiki untuk saya di 0.18.1.
Heroku menggunakan 0.18.1 pada saat gagal, jadi belum diperbaiki afaik.
Masalah ini telah diperbaiki untuk saya pada 0.18.1.
Repro saya sebelumnya diperbaiki dengan 0.18.1 🎉
Saya akan mencoba besok dengan aplikasi nyata
0.18.1 memperbaiki masalah saya. Saya senang berkemah 🎉
Mencoba 0.18.1 dengan aplikasi non-sepele yang sebelumnya gagal dan tampaknya berfungsi sekarang! 🎉
Saya rasa saya akan segera mencobanya lagi :)
Maaf, masih belum berfungsi dengan 0.18.1;
-----> Node.js app detected
-----> Creating runtime environment
NPM_CONFIG_LOGLEVEL=error
NPM_CONFIG_PRODUCTION=true
NODE_ENV=production
NODE_MODULES_CACHE=true
-----> Installing binaries
engines.node (package.json): ^7.2.1
engines.npm (package.json): unspecified (use default)
Resolving node version ^7.2.1 via semver.io...
Downloading and installing node 7.2.1...
Using default npm version: 3.10.10
Resolving yarn version (latest) via semver.io...
Downloading and installing yarn (0.18.1)...
Installed yarn 0.18.1
-----> Restoring cache
Loading 2 from cacheDirectories (default):
- node_modules
- bower_components (not cached - skipping)
-----> Building dependencies
Installing node modules (yarn)
yarn install v0.18.1
[1/4] Resolving packages...
[2/4] Fetching packages...
warning [email protected]: The platform "linux" 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...
error /tmp/build_c86802dccae94b3fb074d3b88f3f63f2/9512deeed23c0eca48d68fb2c8850a28f76692ea/node_modules/bcrypt: Command failed.
Exit code: 1
Command: sh
Arguments: -c node-pre-gyp install --fallback-to-build
Directory: /tmp/build_c86802dccae94b3fb074d3b88f3f63f2/9512deeed23c0eca48d68fb2c8850a28f76692ea/node_modules/bcrypt
Output:
module.js:472
throw err;
^
Error: Cannot find module 'abbrev'
at Function.Module._resolveFilename (module.js:470:15)
at Function.Module._load (module.js:418:25)
at Module.require (module.js:498:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/tmp/build_c86802dccae94b3fb074d3b88f3f63f2/9512deeed23c0eca48d68fb2c8850a28f76692ea/node_modules/nopt/lib/nopt.js:10:14)
at Module._compile (module.js:571:32)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:488:32)
at tryModuleLoad (module.js:447:12)
at Function.Module._load (module.js:439:3)
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
-----> Build failed
We're sorry this build is failing! You can troubleshoot common issues here:
https://devcenter.heroku.com/articles/troubleshooting-node-deploys
Some possible problems:
- A module may be missing from 'dependencies' in package.json
https://devcenter.heroku.com/articles/troubleshooting-node-deploys#ensure-you-aren-t-relying-on-untracked-dependencies
- This module may be specified in 'devDependencies' instead of 'dependencies'
https://devcenter.heroku.com/articles/nodejs-support#devdependencies
Love,
Heroku
! Push rejected, failed to compile Node.js app.
! Push failed
Menyetel NODE_MODULES_CACHE=false
juga tidak membantu.
Berikut adalah pohon ketergantungan:
├─┬ [email protected]
│ └─┬ [email protected]
│ └─┬ [email protected]
│ └─┬ [email protected]
│ └─┬ [email protected]
│ └── [email protected]
├─┬ [email protected]
│ └─┬ @google-cloud/[email protected]
│ └─┬ @google-cloud/[email protected]
│ └─┬ [email protected]
│ └─┬ [email protected]
│ └─┬ [email protected]
│ └── [email protected]
└─┬ [email protected]
└── [email protected]
Saya pikir masalahnya adalah ketergantungan yang mendalam melalui google-cloud
. Itu adalah modul produksi, dan bable-cli
dan instanbul
adalah dev saja.
Selain itu, ketika saya menggunakan yarn why abbrev
, gagal mengambil tanggungan induk google-cloud
dan babel-cli
:
yarn why v0.18.1
[1/4] 🤔 Why do we have the module "abbrev"...?
[2/4] 🚚 Initialising dependency graph...
[3/4] 🔍 Finding dependency...
[4/4] 🚡 Calculating file sizes...
info Reasons this module exists
- "istanbul" depends on it
- "istanbul#nopt" depends on it
@jkrems , @SimenB Haruskah saya mengangkat masalah baru untuk itu atau tidak?
istanbul#nopt
juga terlihat salah, pada keluaran why
.
Saya sedang dalam perjalanan ke kantor sekarang, akan menguji dalam aplikasi nyata
@SimenB terima kasih, beri tahu saya jika Anda memerlukan informasi lebih lanjut, mis. Seluruh daftar modul package.json saya.
Sunting: sebenarnya di sini untuk berjaga-jaga, karena saya akan tidur sekarang;
"dependencies": {
"bcrypt": "^1.0.1",
"bluebird": "^3.4.6",
"body-parser": "^1.15.2",
"chalk": "^1.1.3",
"compression": "^1.6.2",
"cookie-parser": "^1.4.3",
"cors": "^2.8.1",
"express": "^4.14.0",
"glob": "^7.1.1",
"google-cloud": "^0.45.1",
"handlebars": "^4.0.6",
"html-pdf": "^2.1.0",
"http-as-promised": "^1.1.0",
"meanie-express-error-handling": "git+https://github.com/meanie/express-error-handling#2.0.0",
"meanie-express-github-service": "^2.0.2",
"meanie-express-jwt-service": "^1.0.2",
"meanie-express-raven-service": "^1.0.1",
"meanie-mail-composer": "^1.2.0",
"meanie-mongoose-only-id": "^1.0.1",
"meanie-mongoose-set-properties": "^1.0.1",
"meanie-mongoose-to-json": "^1.1.0",
"meanie-multer-mime-types-filter": "^1.0.1",
"meanie-passport-refresh-strategy": "^1.1.2",
"moment": "^2.17.1",
"mongoose": "^4.7.3",
"morgan": "^1.7.0",
"multer": "^1.1.0",
"passport": "^0.3.2",
"passport-http-bearer": "^1.0.1",
"passport-local": "^1.0.0",
"phantomjs-prebuilt": "2.1.14",
"sendgrid": "^4.7.1",
"sendgrid-mailer": "^1.0.7",
"socket.io": "^1.7.2",
"yargs": "^6.5.0"
},
"devDependencies": {
"babel-cli": "^6.16.0",
"babel-preset-es2015": "^6.18.0",
"chai": "^3.5.0",
"chai-as-promised": "^6.0.0",
"dirty-chai": "^1.2.2",
"eslint": "^3.12.1",
"express-simulate-latency": "0.0.2",
"istanbul": "^1.0.0-alpha.2",
"mocha": "^3.2.0",
"mocha-clean": "^1.0.0",
"nodemon": "^1.11.0",
"sinon": "^1.17.6",
"sinon-as-promised": "^4.0.0",
"sinon-mongoose": "^1.3.0"
}
Ini masih gagal untuk aplikasi di tempat kerja. Sepertinya Yarn tidak bisa mengikuti jalan yang dalam. Ini adalah npm ls entities
setelah yarn --prod
$ npm ls entities
[email protected] /Users/simbekkh/repos/frontpage
└─┬ @finn-no/[email protected]
└─┬ [email protected]
└─┬ [email protected]
└─┬ [email protected]
└─┬ [email protected]
└─┬ [email protected]
└── UNMET DEPENDENCY entities@~1.1.1
npm ERR! missing: entities@~1.1.1, required by [email protected]
Sama seperti @adamreisnz , yarn why
tidak mengambil pohon yang benar.
$ yarn why entities
yarn why v0.18.1
[1/4] 🤔 Why do we have the module "entities"...?
[2/4] 🚚 Initialising dependency graph...
[3/4] 🔍 Finding dependency...
[4/4] 🚡 Calculating file sizes...
info Reasons this module exists
- "cheerio" depends on it
- "cheerio#htmlparser2" depends on it
info Disk size without dependencies: "108kB"
info Disk size with unique dependencies: "108kB"
info Disk size with transitive dependencies: "108kB"
info Amount of shared dependencies: 0
✨ Done in 0.40s.
istanbul # nopt juga terlihat salah, dalam output why.
Anda benar, sepertinya itulah inti dari masalah ini. Tampaknya berpikir bahwa nopt
adalah bagian dari paket istanbul
, bukan google-cloud
dan / atau babel-cli
, dan mungkin itu sebabnya ia tidak menginstalnya untuk produksi lingkungan, karena istanbul
bukan ketergantungan prod.
Hai semuanya, maaf Anda mengalami masalah ini cukup lama sekarang.
Saya akan menetapkan masalah ini untuk diri saya sendiri dan sekarang menjadi prioritas tinggi, saya akan mencoba memperbaikinya selama liburan.
Bantuan dan PR dengan tes pemecahan yang terisolasi atau perbaikan (idealnya) sangat disambut baik.
Kami memiliki masalah yang sama di prod env dengan lib bl
yang merupakan ketergantungan opsional gulp-imagemin
😕
[~/Workspaces/my-project 12:05:33] NODE_ENV=production yarn
yarn install v0.18.1
info No lockfile found.
[1/4] 🔍 Resolving packages...
warning algoliasearch > [email protected]: Just use Array.isArray directly
warning gulp-file > through2 > xtend > [email protected]:
warning raven > [email protected]: use uuid module instead
warning wiredep > bower-config > [email protected]: graceful-fs v3.0.0 and before will fail on node releases >= v7.0. Please update to graceful-fs@^4.0.0 as soon as possible. Use 'npm ls graceful-fs' to find it in the tree.
warning chromedriver > [email protected]: this package has been reintegrated into npm and is now out of date with respect to npm
warning mversion > [email protected]: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
warning wiredep > glob > [email protected]: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
warning webdriverio > request > [email protected]: use uuid module instead
warning gulp > vinyl-fs > glob-watcher > gaze > globule > [email protected]: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
warning gulp > vinyl-fs > glob-watcher > gaze > globule > glob > [email protected]: graceful-fs v3.0.0 and before will fail on node releases >= v7.0. Please update to graceful-fs@^4.0.0 as soon as possible. Use 'npm ls graceful-fs' to find it in the tree.
warning sprity-lwip > lwip > decree > [email protected]: This package is discontinued. Use lodash@^4.0.0.
[2/4] 🚚 Fetching packages...
warning [email protected]: The engine "ender" appears to be invalid.
[3/4] 🔗 Linking dependencies...
[4/4] 📃 Building fresh packages...
[1/7] ⠂ fsevents: GET https://fsevents-binaries.s3-us-west-2.amazonaws.com/v1.0.15/fse-v1.0.15-node-v51-darwi
[2/7] ⠂ gifsicle
[3/7] ⠂ jpegtran-bin
[4/7] ⠂ optipng-bin
error /Users/fdubost/Workspaces/my-project/node_modules/gifsicle: Command failed.
Exit code: 1
Command: sh
Arguments: -c node lib/install.js
Directory: /Users/fdubost/Workspaces/my-project/node_modules/gifsicle
Output:
module.js:474
throw err;
^
Error: Cannot find module 'bl'
at Function.Module._resolveFilename (module.js:472:15)
at Function.Module._load (module.js:420:25)
at Module.require (module.js:500:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/Users/fdubost/Workspaces/my-project/node_modules/tar-stream/extract.js:2:10)
at Module._compile (module.js:573:32)
at Object.Module._extensions..js (module.js:582:10)
at Module.load (module.js:490:32)
at tryModuleLoad (module.js:449:12)
at Function.Module._load (module.js:441:3)
Terima kasih atas bantuan Anda 😊
Ini berfungsi jika saya menambahkan bl
secara manual ke package.json ...
Ada berita tentang ini?
Belum, saya sedang membuat pemeriksa ad-hoc commonJS yang memverifikasi struktur node_modules terlepas dari algoritme pengangkat dan resolusi Yarn https://github.com/yarnpkg/yarn/pull/2419.
Itu akan dapat menangkap semua kasus yang dijelaskan dalam bug ini dan melindungi kami dari regresi di masa mendatang.
@kittens sedang melihat apa yang terjadi di sini.
Bug ini tidak sepele, jadi kami menerima informasi tambahan apa pun
Baiklah, kumpulkan semua repro sekarang dengan bagasi terbaru.
Contoh di komentar pertama tidak mereproduksi lagi dan yarn check --verify-tree
lolos
Yang ini tidak mereproduksi juga https://github.com/yarnpkg/yarn/issues/761#issuecomment -260975012 dan https://github.com/yarnpkg/yarn/issues/761#issuecomment -265823529
Ya, repro itu telah diperbaiki dengan 0.18.1.
2 ide:
Apakah ada log dengan resolusi yang terjadi yang dapat saya bagikan dengan Anda?
Selain itu, saya dapat memberikan lockfile yang mereproduksinya di tempat kerja, tetapi Anda tidak dapat menginstalnya karena deps pribadi. Anda mungkin bisa mengotak-atik dan melewati pengambilan paket, dan hanya mengotak-atik pohon?
@SimenB , jadi Anda memiliki contoh lain di mana resolusinya rusak untuk --production install?
Untuk itu, Anda dapat mencoba:
yarn install --production --verbose
yarn check --production --verify-tree
Dengan cabang master terbaru.
Jika Anda tidak ingin mengirim log secara publik, kirimi saya pesan di [email protected]
Ya, 0.18.1 masih rusak, belum diuji 0.19 (atau master). Jika masih mereproduksi (harap tidak!), Saya akan mengirimkan log secara pribadi
Mari kita tutup tugas ini karena masalah judul telah terpecahkan.
Ada 2 yang terbuka yang belum saya periksa ulang: # 2263 dan # 2141 jangan ragu untuk berkomentar di sana atau buat yang baru untuk kasus Anda dan cc saya.
2all: ketika Anda berkomentar bahwa instalasi tidak benar, harap sertakan package.json sehingga orang lain dapat mereproduksinya.
Kudos to @jkrems karena membuat langkah lebih jauh dan mengirimkan skrip repro yang luar biasa: https://github.com/yarnpkg/yarn/issues/761#issuecomment -265823529
@bestander sudahkah Anda memeriksa ulang https://github.com/yarnpkg/yarn/issues/761#issuecomment -268130124?
@adamreisnz , bisakah Anda membagikan package.json lagi?
https://github.com/yarnpkg/yarn/issues/761#issuecomment -268130124 adalah masalah yang berbeda.
Yang itu gagal untuk yarn install --production
.
Masalah ini tentang yarn install --production
selesai dengan sukses tetapi tidak melakukan hal yang benar.
@bestander saya sudah membagikannya di komentar di bawah itu, https://github.com/yarnpkg/yarn/issues/761#issuecomment -268201708, cheers
Masih gagal dengan master (c98df16b) untuk saya ...
yarn check --verify-tree
lemparan, itu menjanjikan. Banyak dari mereka adalah deps dev.
yarn check v0.20.0-0
error "babel-preset-es2015" not installed
error "browserify-middleware" not installed
error "cheerio" not installed
error "codeceptjs" not installed
error "del-cli" not installed
error "eslint" not installed
error "eslint-config-finn" not installed
error "espower-loader" not installed
error "hashmark" not installed
error "interfake" not installed
error "nightmare" not installed
error "nightmare-upload" not installed
error "nock" not installed
error "nodemon" not installed
error "nyc" not installed
error "power-assert" not installed
error "sinon" not installed
error "supertest" not installed
error "uglifyify" not installed
error "@finn-no/express-base#nunjucks#chokidar#anymatch" not installed
error "@finn-no/express-base#unleash-client#request#json-stringify-safe" not installed
error "@finn-no/express-base#pretty-error#renderkid#css-select#domutils#dom-serializer#entities" not installed
error Found 22 errors.
Menjalankan aplikasi, gagal jika ada kecocokan yang hilang.
npm ls
menunjukkan deps lain yang hilang, yang lebih masuk akal
npm ERR! extraneous: [email protected] /Users/simbekkh/repos/frontpage/node_modules/node-pre-gyp
npm ERR! missing: anymatch@^1.3.0, required by [email protected]
npm ERR! missing: entities@~1.1.1, required by [email protected]
npm ERR! missing: json-stringify-safe@~5.0.1, required by [email protected]
Dan ini adalah observasi / penyebab masalah: https://github.com/yarnpkg/yarn/issues/761#issuecomment -268331340
Anda benar, sepertinya itulah inti dari masalah ini. Sepertinya nopt adalah bagian dari paket istanbul, bukan google-cloud dan / atau babel-cli, dan mungkin itu sebabnya tidak menginstalnya untuk lingkungan produksi, karena istanbul bukanlah ketergantungan prod.
Oh, maaf, @SimenB
yarn check --prodution --verify-tree
Saya akan mengedit komentar saya
Melakukan yarn check --verify-tree --production
memberikan hasil yang baik (setuju dengan npm ls
):
yarn check v0.20.0-0
error "@finn-no/express-base#nunjucks#chokidar#anymatch" not installed
error "@finn-no/express-base#unleash-client#request#json-stringify-safe" not installed
error "@finn-no/express-base#pretty-error#renderkid#css-select#domutils#dom-serializer#entities" not installed
error Found 3 errors.
@bestander Saya akan mengirimkan email kepada Anda package.json, yarn.lock, dan log pemasangan verbose 😄
@dashmug apakah Anda ingin saya membuat tiket baru untuk masalah itu? Ini masih masalah dependensi yang salah yang diinstal (meskipun hanya untuk produksi), jadi saya rasa ini terkait dengan tiket ini.
@bestander Email terkirim.
Meskipun @finn-no/express-base
tidak tersedia untuk umum, 3 paket lainnya dalam output tersedia, jadi mudah-mudahan Anda dapat mereproduksi hanya dengan paket publik.
Haruskah saya membuka terbitan baru?
@adamreisnz , bisakah Anda membuat terbitan baru?
Saya dapat mereproduksinya tetapi ini adalah masalah yang berbeda dari judul satu
Itu terkait. Mungkin penyebabnya sama. Hanya gejala yang berbeda. Saya akan menempatkan itu sebagai masalah yang berbeda karena tidak persis sama dengan judulnya.
@SimenB , terima kasih, saya akan melihatnya
Ok akan dilakukan teman-teman.
@bestander Membuat paket dengan hanya 3 di output yang gagal membuatnya dapat direproduksi di master untuk saya hanya dengan deps publik. Ini bukan reproduksi minimal, tapi tetap saja
{
"name": "app",
"version": "1.0.0",
"dependencies": {
"brakes": "^2.5.1",
"compression": "^1.6.2",
"envalid": "^2.4.0",
"express": "^4.14.0",
"object.entries": "^1.0.4",
"prom-client": "^7.0.0",
"response-time": "^2.3.2",
"spaden": "^7.13.1",
"yarn-issue-repro-package": "^1.0.0"
},
"devDependencies": {
"babel-preset-es2015": "^6.18.0",
"browserify": "^13.1.1",
"browserify-middleware": "^7.1.0",
"cheerio": "^0.22.0",
"codeceptjs": "^0.4.13",
"del-cli": "^0.2.1",
"eslint": "^3.12.2",
"eslint-config-finn": "^1.0.1",
"espower-loader": "^1.0.1",
"hashmark": "^4.1.0",
"interfake": "^1.19.0",
"mocha": "^3.2.0",
"nightmare": "^2.9.0",
"nightmare-upload": "^0.1.1",
"nock": "^9.0.2",
"nodemon": "^1.11.0",
"nyc": "^10.0.0",
"power-assert": "^1.4.1",
"sinon": "^1.17.6",
"supertest": "^2.0.1",
"uglify-js": "^2.7.5",
"uglifyify": "^3.0.4"
}
}
package.json
dari yarn-issue-repro-package
{
"name": "yarn-issue-repro-package",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"dependencies": {
"nunjucks": "^2.5.2",
"pretty-error": "^2.0.2",
"unleash-client": "^1.0.0-beta.7"
}
}
Menariknya, ini menghasilkan 4 kesalahan, bukan 3 ...
$ yarn check v0.20.0-0 │├─ [email protected]
error "yarn-issue-repro-package#nunjucks#chokidar#anymatch" not installed │└─ [email protected]
error "yarn-issue-repro-package#unleash-client#request#json-stringify-safe" not installed │✨ Done in 2.65s.
error "yarn-issue-repro-package#nunjucks#yargs#string-width#code-point-at" not installed │ ~/repos/yarn-issue-repro-package vim package.json
error "yarn-issue-repro-package#pretty-error#renderkid#css-select#domutils#dom-serializer#entities" not installed │ ~/repos/yarn-issue-repro-package npm publish
error Found 4 errors.
Saya tidak yakin apakah ini masalah yang sama atau tidak, tetapi ini adalah outputnya (diuji dengan 0.19.1)
Saya rasa saya telah menemukan akar penyebab masalah instalasi.
Kegagalan untuk menginstal paket dapat direproduksi oleh package.json berikut ini:
{ "dependencies": {
"bcrypt": "^1.0.1",
"gamepad": "1.4.2"
},
"devDependencies": {
"istanbul": "^1.0.0-alpha.2"
}
}
Dan kemudian perintahnya
rm -rf node_modules yarn.lock
yarn install
rm -rf node_modules
yarn install --production
npm ls abbrev
Dalam konfigurasi ini, abbrev
tidak diinstal.
abbrev
digunakan oleh istanbul
dan oleh nopt
(seperti dapat dilihat dari yarn why abbrev
). nopt
digunakan oleh istanbul
dan node-pre-gyp
(yang digunakan oleh bcrypt
dan gamepad
).
Ketika mendeduping abbrev
dalam paket hoister, kode berikut digunakan untuk menentukan fungsi isIgnored baru dari catatan hoisting:
// switch to non ignored if earlier deduped version was ignored
if (existing.isIgnored() && !info.isIgnored()) {
existing.isIgnored = info.isIgnored;
}
abbrev
adalah salah satu catatan pengangkatan pertama yang akan diproses. Pada saat itu, rekaman yang ada adalah istanbul#abbrev
(diabaikan karena istanbul
diabaikan), dan rekaman duplikatnya adalah istanbul#nopt#abbrev
, yang juga diabaikan pada saat itu karena alasan yang sama .
Karena kedua catatan diabaikan pada saat itu, fungsi ignore tidak disesuaikan sebagaimana mestinya - karena nopt
akan menjadi non-diabaikan dalam dedup berikutnya karena ketergantungan oleh node-pre-gyp
. Status pengabaian kedua rekaman bisa berubah kapan saja, jadi fungsi abaikan yang baru harus mencampurnya.
Dan memang, masalah penginstalan hilang saat kami mengganti saluran tersebut dengan
// switch to non ignored if earlier deduped version was ignored
if (existing.isIgnored()) {
if (info.isIgnored()) {
// both are ignored now, but any one could become non ignored later on.
let oldIsIgnored = existing.isIgnored;
existing.isIgnored = () => oldIsIgnored() && info.isIgnored();
} else {
existing.isIgnored = info.isIgnored;
}
}
@blexrob ,
Apakah Anda akan mengirim PR?
Ada pengujian nonaktif untuk "tidak boleh kehilangan dependensi saat menginstal dengan --production" di integration.js yang harus diperbaiki sekarang
@bestander , baru saja mengujinya, dan perbaikan ini menyebabkan tumpukan melimpah dalam pengujian yang Anda sebutkan, sehingga tidak dapat diterapkan. Siklus berikut muncul:
d#es5-ext -> es6-symbol#es5-ext -> es6-set#es5-ext -> es6-iterator#es5-ext -> es6-map#es5-ext -> es5-ext#es6-iterator -> es6-set#es6-iterator -> es6-weak-map#es6-iterator -> event-emitter#es5-ext -> d#es5-ext
Jadi, pendekatan panggilan rekursif naif keluar ...
Ya, saya yakin perlu sedikit penyesuaian tetapi idenya tampaknya benar
Saya punya masalah dengan modul phantomjs-prebuilt
(karena ketergantungan ketergantungan) dengan benang 0.27.5-1.
Jadi sekarang saya membuat dummy yarn add phantomjs-prebuilt
, sebelum yarn install --production
.
Saya menyesal untuk mengatakan bahwa ini tampaknya masih menjadi masalah di Benang 1.3.2.
Build saya di Netlify gagal ketika saya menggunakan Yarn 1.3.2 tetapi berhasil dengan Yarn 0.18.2.
Kesalahan pembuatan dengan cannot find module 'are-we-there-yet'
dan hanya dengan flag produksi.
@adamreisnz , utas ini terlalu besar untuk melacak semua masalah.
Bisakah Anda membuat yang baru dengan skrip repro?
@bestander selesai, terima kasih.
Bagi seseorang yang masih belum bisa menjalankannya dan tidak ingin menginstal jq dapat menggunakan
$ python -c "import json; p = json.loads(open('package.json').read()); del p['devDependencies']; open('package.json', 'w').write(json.dumps(p, indent=2));"
saya menggunakan benang 1.17.3
dan simpul v10.16.2
di lerna
monorepo. masih menghadapi masalah yang sama.
Saya bisa memastikannya juga.
Saya memiliki banyak dependensi, tetapi ketika saya menggunakan yarn install --production
, hanya dua modul yang diinstal.
Perlu diperhatikan, saya menggunakan Lerna monorepo yang mirip dengan @hannadrehman dengan ruang kerja Yarn , yang mungkin menjelaskan perilaku ekstrem.
Versi benang: 1.22.0
Node: v12.16.1
npm install --production
bekerja dengan sempurna.
@hannadrehman apakah proyek yang dimaksud adalah paket monorepo Anda?
Masalah yang sama seperti @ TAnas0
Komentar yang paling membantu
Hai semuanya, maaf Anda mengalami masalah ini cukup lama sekarang.
Saya akan menetapkan masalah ini untuk diri saya sendiri dan sekarang menjadi prioritas tinggi, saya akan mencoba memperbaikinya selama liburan.
Bantuan dan PR dengan tes pemecahan yang terisolasi atau perbaikan (idealnya) sangat disambut baik.