"yarn list" 列出我没有安装的东西
"yarn list" lists stuff I haven't installed
我在两台不同的机器上看到了这个。当我导航到包含我的 package.json
文件的文件夹并执行命令 yarn list
时,它列出了一堆我尚未安装的包。如果我执行命令 yarn check
然后它会抱怨大多数软件包没有安装。
那么,自从上次正常运行以来发生了什么变化? yarn 在哪里找到所有无关的包,我如何说服它它们真的不存在?
以下是我的项目目录中的所有相关文件:
package.json
{
"name": "indigo",
"version": "1.0.0",
"license": "UNLICENSED",
"dependencies": {
"@fortawesome/fontawesome-pro": "^5.2.0",
"bootstrap": "^3.3.7",
"bootstrap-datepicker": "^1.8.0",
"bootstrap-switch": "^3.3.3",
"braintree-web": "^3.32.0",
"jquery": "^3.3.1",
"jquery-ajax-unobtrusive": "aspnet/jquery-ajax-unobtrusive#^3.2.5",
"jquery-validation": "^1.17.0",
"jquery-validation-unobtrusive": "^3.2.9",
"npm": "^6.9.0",
"signalr": "2.3.0"
},
"engines": {
"yarn": ">= 1.0.0"
}
}
yarn.lock
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
"@braintree/asset-loader@0.2.1":
version "0.2.1"
resolved "https://registry.yarnpkg.com/@braintree/asset-loader/-/asset-loader-0.2.1.tgz#1f744aada54321ff591e846d707a7b7d58d7ca9f"
dependencies:
promise-polyfill "^8.1.0"
"@braintree/browser-detection@1.7.0", "@braintree/browser-detection@^1.5.0":
version "1.7.0"
resolved "https://registry.yarnpkg.com/@braintree/browser-detection/-/browser-detection-1.7.0.tgz#895ba64b700c3f36cab5c54591caf71a41171dd8"
"@braintree/class-list@0.1.0":
version "0.1.0"
resolved "https://registry.yarnpkg.com/@braintree/class-list/-/class-list-0.1.0.tgz#d6c8606ce6a82b4b37f28e32eadd090abcf1adaa"
"@braintree/iframer@1.0.3":
version "1.0.3"
resolved "https://registry.yarnpkg.com/@braintree/iframer/-/iframer-1.0.3.tgz#21dd1fd4cebd4154aeab1efa4d5b0d5f4384364e"
"@braintree/sanitize-url@3.1.0":
version "3.1.0"
resolved "https://registry.yarnpkg.com/@braintree/sanitize-url/-/sanitize-url-3.1.0.tgz#8ff71d51053cd5ee4981e5a501d80a536244f7fd"
"@braintree/wrap-promise@1.1.1":
version "1.1.1"
resolved "https://registry.yarnpkg.com/@braintree/wrap-promise/-/wrap-promise-1.1.1.tgz#d22c76855e6d4b4012610060421fae1a37ec90b0"
"@fortawesome/fontawesome-pro@^5.2.0":
version "5.8.1"
resolved "https://npm.fontawesome.com/@fortawesome/fontawesome-pro/-/fontawesome-pro-5.8.1.tgz#a676c70df0ea7968457cd338ba19d360d8b037d2"
bootstrap-datepicker@^1.8.0:
version "1.8.0"
resolved "https://registry.yarnpkg.com/bootstrap-datepicker/-/bootstrap-datepicker-1.8.0.tgz#c63513931e6f09f16ae9f11b62f32d950df3958e"
dependencies:
jquery ">=1.7.1 <4.0.0"
bootstrap-switch@^3.3.3:
version "3.4.0"
resolved "https://registry.yarnpkg.com/bootstrap-switch/-/bootstrap-switch-3.4.0.tgz#6bbb0445ad8b4264883d06366d48aad3c06988f4"
bootstrap@^3.3.7:
version "3.4.1"
resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-3.4.1.tgz#c3a347d419e289ad11f4033e3c4132b87c081d72"
braintree-web@^3.32.0:
version "3.44.2"
resolved "https://registry.yarnpkg.com/braintree-web/-/braintree-web-3.44.2.tgz#87c671ee3739d9af699901e66f438281c143c397"
dependencies:
"@braintree/asset-loader" "0.2.1"
"@braintree/browser-detection" "1.7.0"
"@braintree/class-list" "0.1.0"
"@braintree/iframer" "1.0.3"
"@braintree/sanitize-url" "3.1.0"
"@braintree/wrap-promise" "1.1.1"
card-validator "6.1.0"
credit-card-type "8.2.0"
framebus "3.0.2"
inject-stylesheet "1.0.0"
promise-polyfill "8.1.0"
restricted-input "1.2.7"
card-validator@6.1.0:
version "6.1.0"
resolved "https://registry.yarnpkg.com/card-validator/-/card-validator-6.1.0.tgz#d36bfc9ff8ee0c69e02d676b2b27f7b6d2dae92d"
dependencies:
credit-card-type "^8.0.0"
credit-card-type@8.2.0, credit-card-type@^8.0.0:
version "8.2.0"
resolved "https://registry.yarnpkg.com/credit-card-type/-/credit-card-type-8.2.0.tgz#507a43b257f0f3b8bd4d4b339a419741fc7e6236"
framebus@3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/framebus/-/framebus-3.0.2.tgz#0c99c70cb507522aae6ed485e1317fc913873a8a"
inject-stylesheet@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/inject-stylesheet/-/inject-stylesheet-1.0.0.tgz#f673047458ee58f109fee4cfb66b09f362ccc261"
jquery-ajax-unobtrusive@aspnet/jquery-ajax-unobtrusive#^3.2.5:
version "3.2.6"
resolved "https://codeload.github.com/aspnet/jquery-ajax-unobtrusive/tar.gz/dd69746ae0771e3f4232a6852210b8c17718e782"
dependencies:
jquery ">=1.8"
jquery-validation-unobtrusive@^3.2.9:
version "3.2.11"
resolved "https://registry.yarnpkg.com/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.2.11.tgz#175ee46380385a0e33ed320f255fad321f68f9f5"
dependencies:
jquery ">=1.8"
jquery-validation ">=1.16"
jquery-validation@>=1.16, jquery-validation@^1.17.0:
version "1.19.0"
resolved "https://registry.yarnpkg.com/jquery-validation/-/jquery-validation-1.19.0.tgz#0fedf0c0483a030c4fff072398898ac18cfd6e40"
dependencies:
jquery "^1.7 || ^2.0 || ^3.1"
jquery@>=1.6.4, "jquery@>=1.7.1 <4.0.0", jquery@>=1.8, "jquery@^1.7 || ^2.0 || ^3.1", jquery@^3.3.1:
version "3.4.1"
resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.4.1.tgz#714f1f8d9dde4bdfa55764ba37ef214630d80ef2"
promise-polyfill@8.1.0, promise-polyfill@^8.1.0:
version "8.1.0"
resolved "https://registry.yarnpkg.com/promise-polyfill/-/promise-polyfill-8.1.0.tgz#30059da54d1358ce905ac581f287e184aedf995d"
restricted-input@1.2.7:
version "1.2.7"
resolved "https://registry.yarnpkg.com/restricted-input/-/restricted-input-1.2.7.tgz#e1298f5fd8c430cc2d8e6bb1175524023205cb34"
dependencies:
"@braintree/browser-detection" "^1.5.0"
signalr@2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/signalr/-/signalr-2.3.0.tgz#2c5aceab8a3d6eaa81785debd8bca069bc3ed14d"
dependencies:
jquery ">=1.6.4"
.npmrc
@fortawesome:registry=https://npm.fontawesome.com/
//npm.fontawesome.com/:_authToken=xxx
.yarnrc
--modules-folder wwwroot/lib
这是 yarn list
的输出
yarn list v1.15.2
├─ @braintree/asset-loader@0.2.1
│ └─ promise-polyfill@^8.1.0
├─ @braintree/browser-detection@1.7.0
├─ @braintree/class-list@0.1.0
├─ @braintree/iframer@1.0.3
├─ @braintree/sanitize-url@3.1.0
├─ @braintree/wrap-promise@1.1.1
├─ @fortawesome/fontawesome-pro@5.8.1
├─ abbrev@1.1.1
├─ agent-base@4.2.1
│ └─ es6-promisify@^5.0.0
├─ agentkeepalive@3.5.2
│ └─ humanize-ms@^1.2.1
├─ ajv@6.10.0
│ ├─ fast-deep-equal@^2.0.1
│ ├─ fast-json-stable-stringify@^2.0.0
│ ├─ json-schema-traverse@^0.4.1
│ └─ uri-js@^4.2.2
├─ ansi-align@2.0.0
│ └─ string-width@^2.0.0
├─ ansi-regex@2.1.1
├─ ansi-styles@3.2.1
│ └─ color-convert@^1.9.0
├─ ansicolors@0.3.2
├─ ansistyles@0.1.3
├─ aproba@2.0.0
├─ archy@1.0.0
├─ are-we-there-yet@1.1.5
│ ├─ delegates@^1.0.0
│ └─ readable-stream@^2.0.6
├─ asap@2.0.6
├─ asn1@0.2.4
│ └─ safer-buffer@~2.1.0
├─ assert-plus@1.0.0
├─ asynckit@0.4.0
├─ aws-sign2@0.7.0
├─ aws4@1.8.0
├─ balanced-match@1.0.0
├─ bcrypt-pbkdf@1.0.2
│ └─ tweetnacl@^0.14.3
├─ bin-links@1.1.2
│ ├─ bluebird@^3.5.0
│ ├─ cmd-shim@^2.0.2
│ ├─ gentle-fs@^2.0.0
│ ├─ graceful-fs@^4.1.11
│ └─ write-file-atomic@^2.3.0
├─ block-stream@0.0.9
│ └─ inherits@~2.0.0
├─ bluebird@3.5.4
├─ bootstrap-datepicker@1.8.0
│ └─ jquery@>=1.7.1 <4.0.0
├─ bootstrap-switch@3.4.0
├─ bootstrap@3.4.1
├─ boxen@1.3.0
│ ├─ ansi-align@^2.0.0
│ ├─ camelcase@^4.0.0
│ ├─ chalk@^2.0.1
│ ├─ cli-boxes@^1.0.0
│ ├─ string-width@^2.0.0
│ ├─ term-size@^1.2.0
│ └─ widest-line@^2.0.0
├─ brace-expansion@1.1.11
│ ├─ balanced-match@^1.0.0
│ └─ concat-map@0.0.1
├─ braintree-web@3.44.2
│ ├─ @braintree/asset-loader@0.2.1
│ ├─ @braintree/browser-detection@1.7.0
│ ├─ @braintree/class-list@0.1.0
│ ├─ @braintree/iframer@1.0.3
│ ├─ @braintree/sanitize-url@3.1.0
│ ├─ @braintree/wrap-promise@1.1.1
│ ├─ card-validator@6.1.0
│ ├─ credit-card-type@8.2.0
│ ├─ framebus@3.0.2
│ ├─ inject-stylesheet@1.0.0
│ ├─ promise-polyfill@8.1.0
│ └─ restricted-input@1.2.7
├─ buffer-from@1.1.1
├─ builtins@1.0.3
├─ byline@5.0.0
├─ byte-size@5.0.1
├─ cacache@11.3.2
│ ├─ bluebird@^3.5.3
│ ├─ chownr@^1.1.1
│ ├─ figgy-pudding@^3.5.1
│ ├─ glob@^7.1.3
│ ├─ graceful-fs@^4.1.15
│ ├─ lru-cache@^5.1.1
│ ├─ lru-cache@5.1.1
│ │ └─ yallist@^3.0.2
│ ├─ mississippi@^3.0.0
│ ├─ mkdirp@^0.5.1
│ ├─ move-concurrently@^1.0.1
│ ├─ promise-inflight@^1.0.1
│ ├─ rimraf@^2.6.2
│ ├─ ssri@^6.0.1
│ ├─ unique-filename@^1.1.1
│ └─ y18n@^4.0.0
├─ call-limit@1.1.0
├─ camelcase@4.1.0
├─ capture-stack-trace@1.0.1
├─ card-validator@6.1.0
│ └─ credit-card-type@^8.0.0
├─ caseless@0.12.0
├─ chalk@2.4.2
│ ├─ ansi-styles@^3.2.1
│ ├─ escape-string-regexp@^1.0.5
│ └─ supports-color@^5.3.0
├─ chownr@1.1.1
├─ ci-info@2.0.0
├─ cidr-regex@2.0.10
│ └─ ip-regex@^2.1.0
├─ cli-boxes@1.0.0
├─ cli-columns@3.1.2
│ ├─ string-width@^2.0.0
│ └─ strip-ansi@^3.0.1
├─ cli-table3@0.5.1
│ ├─ colors@^1.1.2
│ ├─ object-assign@^4.1.0
│ └─ string-width@^2.1.1
├─ cliui@4.1.0
│ ├─ ansi-regex@3.0.0
│ ├─ string-width@^2.1.1
│ ├─ strip-ansi@^4.0.0
│ ├─ strip-ansi@4.0.0
│ │ └─ ansi-regex@^3.0.0
│ └─ wrap-ansi@^2.0.0
├─ clone@1.0.4
├─ cmd-shim@2.0.2
│ ├─ graceful-fs@^4.1.2
│ └─ mkdirp@~0.5.0
├─ code-point-at@1.1.0
├─ color-convert@1.9.3
│ └─ color-name@1.1.3
├─ color-name@1.1.3
├─ colors@1.3.3
├─ columnify@1.5.4
│ ├─ strip-ansi@^3.0.0
│ └─ wcwidth@^1.0.0
├─ combined-stream@1.0.7
│ └─ delayed-stream@~1.0.0
├─ concat-map@0.0.1
├─ concat-stream@1.6.2
│ ├─ buffer-from@^1.0.0
│ ├─ inherits@^2.0.3
│ ├─ readable-stream@^2.2.2
│ └─ typedarray@^0.0.6
├─ config-chain@1.1.12
│ ├─ ini@^1.3.4
│ └─ proto-list@~1.2.1
├─ configstore@3.1.2
│ ├─ dot-prop@^4.1.0
│ ├─ graceful-fs@^4.1.2
│ ├─ make-dir@^1.0.0
│ ├─ unique-string@^1.0.0
│ ├─ write-file-atomic@^2.0.0
│ └─ xdg-basedir@^3.0.0
├─ console-control-strings@1.1.0
├─ copy-concurrently@1.0.5
│ ├─ aproba@^1.1.1
│ ├─ aproba@1.2.0
│ ├─ fs-write-stream-atomic@^1.0.8
│ ├─ iferr@^0.1.5
│ ├─ mkdirp@^0.5.1
│ ├─ rimraf@^2.5.4
│ └─ run-queue@^1.0.0
├─ core-util-is@1.0.2
├─ create-error-class@3.0.2
│ └─ capture-stack-trace@^1.0.0
├─ credit-card-type@8.2.0
├─ cross-spawn@5.1.0
│ ├─ lru-cache@^4.0.1
│ ├─ shebang-command@^1.2.0
│ └─ which@^1.2.9
├─ crypto-random-string@1.0.0
├─ cyclist@0.2.2
├─ dashdash@1.14.1
│ └─ assert-plus@^1.0.0
├─ debug@3.1.0
│ ├─ ms@2.0.0
│ └─ ms@2.0.0
├─ debuglog@1.0.1
├─ decamelize@1.2.0
├─ decode-uri-component@0.2.0
├─ deep-extend@0.6.0
├─ defaults@1.0.3
│ └─ clone@^1.0.2
├─ delayed-stream@1.0.0
├─ delegates@1.0.0
├─ detect-indent@5.0.0
├─ detect-newline@2.1.0
├─ dezalgo@1.0.3
│ ├─ asap@^2.0.0
│ └─ wrappy@1
├─ dot-prop@4.2.0
│ └─ is-obj@^1.0.0
├─ dotenv@5.0.1
├─ duplexer3@0.1.4
├─ duplexify@3.7.1
│ ├─ end-of-stream@^1.0.0
│ ├─ inherits@^2.0.1
│ ├─ readable-stream@^2.0.0
│ └─ stream-shift@^1.0.0
├─ ecc-jsbn@0.1.2
│ ├─ jsbn@~0.1.0
│ └─ safer-buffer@^2.1.0
├─ editor@1.0.0
├─ encoding@0.1.12
│ └─ iconv-lite@~0.4.13
├─ end-of-stream@1.4.1
│ └─ once@^1.4.0
├─ err-code@1.1.2
├─ errno@0.1.7
│ └─ prr@~1.0.1
├─ es6-promise@4.2.6
├─ es6-promisify@5.0.0
│ └─ es6-promise@^4.0.3
├─ escape-string-regexp@1.0.5
├─ execa@0.7.0
│ ├─ cross-spawn@^5.0.1
│ ├─ get-stream@^3.0.0
│ ├─ get-stream@3.0.0
│ ├─ is-stream@^1.1.0
│ ├─ npm-run-path@^2.0.0
│ ├─ p-finally@^1.0.0
│ ├─ signal-exit@^3.0.0
│ └─ strip-eof@^1.0.0
├─ extend@3.0.2
├─ extsprintf@1.3.0
├─ fast-deep-equal@2.0.1
├─ fast-json-stable-stringify@2.0.0
├─ figgy-pudding@3.5.1
├─ find-npm-prefix@1.0.2
├─ find-up@2.1.0
│ └─ locate-path@^2.0.0
├─ flush-write-stream@1.1.1
│ ├─ inherits@^2.0.3
│ └─ readable-stream@^2.3.6
├─ forever-agent@0.6.1
├─ form-data@2.3.3
│ ├─ asynckit@^0.4.0
│ ├─ combined-stream@^1.0.6
│ └─ mime-types@^2.1.12
├─ framebus@3.0.2
├─ from2@1.3.0
│ ├─ inherits@~2.0.1
│ ├─ isarray@0.0.1
│ ├─ readable-stream@~1.1.10
│ ├─ readable-stream@1.1.14
│ │ ├─ core-util-is@~1.0.0
│ │ ├─ inherits@~2.0.1
│ │ ├─ isarray@0.0.1
│ │ └─ string_decoder@~0.10.x
│ └─ string_decoder@0.10.31
├─ fs-minipass@1.2.5
│ └─ minipass@^2.2.1
├─ fs-vacuum@1.2.10
│ ├─ graceful-fs@^4.1.2
│ ├─ path-is-inside@^1.0.1
│ └─ rimraf@^2.5.2
├─ fs-write-stream-atomic@1.0.10
│ ├─ graceful-fs@^4.1.2
│ ├─ iferr@^0.1.5
│ ├─ imurmurhash@^0.1.4
│ └─ readable-stream@1 || 2
├─ fs.realpath@1.0.0
├─ fstream@1.0.11
│ ├─ graceful-fs@^4.1.2
│ ├─ inherits@~2.0.0
│ ├─ mkdirp@>=0.5 0
│ └─ rimraf@2
├─ gauge@2.7.4
│ ├─ aproba@^1.0.3
│ ├─ aproba@1.2.0
│ ├─ console-control-strings@^1.0.0
│ ├─ has-unicode@^2.0.0
│ ├─ is-fullwidth-code-point@1.0.0
│ │ └─ number-is-nan@^1.0.0
│ ├─ object-assign@^4.1.0
│ ├─ signal-exit@^3.0.0
│ ├─ string-width@^1.0.1
│ ├─ string-width@1.0.2
│ │ ├─ code-point-at@^1.0.0
│ │ ├─ is-fullwidth-code-point@^1.0.0
│ │ └─ strip-ansi@^3.0.0
│ ├─ strip-ansi@^3.0.1
│ └─ wide-align@^1.1.0
├─ genfun@5.0.0
├─ gentle-fs@2.0.1
│ ├─ aproba@^1.1.2
│ ├─ aproba@1.2.0
│ ├─ fs-vacuum@^1.2.10
│ ├─ graceful-fs@^4.1.11
│ ├─ iferr@^0.1.5
│ ├─ mkdirp@^0.5.1
│ ├─ path-is-inside@^1.0.2
│ ├─ read-cmd-shim@^1.0.1
│ └─ slide@^1.1.6
├─ get-caller-file@1.0.3
├─ get-stream@4.1.0
│ └─ pump@^3.0.0
├─ getpass@0.1.7
│ └─ assert-plus@^1.0.0
├─ glob@7.1.4
│ ├─ fs.realpath@^1.0.0
│ ├─ inflight@^1.0.4
│ ├─ inherits@2
│ ├─ minimatch@^3.0.4
│ ├─ once@^1.3.0
│ └─ path-is-absolute@^1.0.0
├─ global-dirs@0.1.1
│ └─ ini@^1.3.4
├─ got@6.7.1
│ ├─ create-error-class@^3.0.0
│ ├─ duplexer3@^0.1.4
│ ├─ get-stream@^3.0.0
│ ├─ get-stream@3.0.0
│ ├─ is-redirect@^1.0.0
│ ├─ is-retry-allowed@^1.0.0
│ ├─ is-stream@^1.0.0
│ ├─ lowercase-keys@^1.0.0
│ ├─ safe-buffer@^5.0.1
│ ├─ timed-out@^4.0.0
│ ├─ unzip-response@^2.0.1
│ └─ url-parse-lax@^1.0.0
├─ graceful-fs@4.1.15
├─ har-schema@2.0.0
├─ har-validator@5.1.3
│ ├─ ajv@^6.5.5
│ └─ har-schema@^2.0.0
├─ has-flag@3.0.0
├─ has-unicode@2.0.1
├─ hosted-git-info@2.7.1
├─ http-cache-semantics@3.8.1
├─ http-proxy-agent@2.1.0
│ ├─ agent-base@4
│ └─ debug@3.1.0
├─ http-signature@1.2.0
│ ├─ assert-plus@^1.0.0
│ ├─ jsprim@^1.2.2
│ └─ sshpk@^1.7.0
├─ https-proxy-agent@2.2.1
│ ├─ agent-base@^4.1.0
│ ├─ debug@^3.1.0
│ └─ debug@3.2.6
│ └─ ms@^2.1.1
├─ humanize-ms@1.2.1
│ └─ ms@^2.0.0
├─ iconv-lite@0.4.24
│ └─ safer-buffer@>= 2.1.2 < 3
├─ iferr@0.1.5
├─ ignore-walk@3.0.1
│ └─ minimatch@^3.0.4
├─ import-lazy@2.1.0
├─ imurmurhash@0.1.4
├─ inflight@1.0.6
│ ├─ once@^1.3.0
│ └─ wrappy@1
├─ inherits@2.0.3
├─ ini@1.3.5
├─ init-package-json@1.10.3
│ ├─ glob@^7.1.1
│ ├─ npm-package-arg@^4.0.0 || ^5.0.0 || ^6.0.0
│ ├─ promzard@^0.3.0
│ ├─ read-package-json@1 || 2
│ ├─ read@~1.0.1
│ ├─ semver@2.x || 3.x || 4 || 5
│ ├─ validate-npm-package-license@^3.0.1
│ └─ validate-npm-package-name@^3.0.0
├─ inject-stylesheet@1.0.0
├─ invert-kv@1.0.0
├─ ip-regex@2.1.0
├─ ip@1.1.5
├─ is-ci@1.2.1
│ ├─ ci-info@^1.5.0
│ └─ ci-info@1.6.0
├─ is-cidr@3.0.0
│ └─ cidr-regex@^2.0.10
├─ is-fullwidth-code-point@2.0.0
├─ is-installed-globally@0.1.0
│ ├─ global-dirs@^0.1.0
│ └─ is-path-inside@^1.0.0
├─ is-npm@1.0.0
├─ is-obj@1.0.1
├─ is-path-inside@1.0.1
│ └─ path-is-inside@^1.0.1
├─ is-redirect@1.0.0
├─ is-retry-allowed@1.1.0
├─ is-stream@1.1.0
├─ is-typedarray@1.0.0
├─ isarray@1.0.0
├─ isexe@2.0.0
├─ isstream@0.1.2
├─ jquery-ajax-unobtrusive@3.2.6
│ └─ jquery@>=1.8
├─ jquery-validation-unobtrusive@3.2.11
│ ├─ jquery-validation@>=1.16
│ └─ jquery@>=1.8
├─ jquery-validation@1.19.0
│ └─ jquery@^1.7 || ^2.0 || ^3.1
├─ jquery@3.4.1
├─ jsbn@0.1.1
├─ json-parse-better-errors@1.0.2
├─ json-schema-traverse@0.4.1
├─ json-schema@0.2.3
├─ json-stringify-safe@5.0.1
├─ jsonparse@1.3.1
├─ JSONStream@1.3.5
│ ├─ jsonparse@^1.2.0
│ └─ through@>=2.2.7 <3
├─ jsprim@1.4.1
│ ├─ assert-plus@1.0.0
│ ├─ extsprintf@1.3.0
│ ├─ json-schema@0.2.3
│ └─ verror@1.10.0
├─ latest-version@3.1.0
│ └─ package-json@^4.0.0
├─ lazy-property@1.0.0
├─ lcid@1.0.0
│ └─ invert-kv@^1.0.0
├─ libcipm@3.0.3
│ ├─ bin-links@^1.1.2
│ ├─ bluebird@^3.5.1
│ ├─ figgy-pudding@^3.5.1
│ ├─ find-npm-prefix@^1.0.2
│ ├─ graceful-fs@^4.1.11
│ ├─ ini@^1.3.5
│ ├─ lock-verify@^2.0.2
│ ├─ mkdirp@^0.5.1
│ ├─ npm-lifecycle@^2.0.3
│ ├─ npm-logical-tree@^1.2.1
│ ├─ npm-package-arg@^6.1.0
│ ├─ pacote@^9.1.0
│ ├─ read-package-json@^2.0.13
│ ├─ rimraf@^2.6.2
│ └─ worker-farm@^1.6.0
├─ libnpm@2.0.1
│ ├─ bin-links@^1.1.2
│ ├─ bluebird@^3.5.3
│ ├─ find-npm-prefix@^1.0.2
│ ├─ libnpmaccess@^3.0.1
│ ├─ libnpmconfig@^1.2.1
│ ├─ libnpmhook@^5.0.2
│ ├─ libnpmorg@^1.0.0
│ ├─ libnpmpublish@^1.1.0
│ ├─ libnpmsearch@^2.0.0
│ ├─ libnpmteam@^1.0.1
│ ├─ lock-verify@^2.0.2
│ ├─ npm-lifecycle@^2.1.0
│ ├─ npm-logical-tree@^1.2.1
│ ├─ npm-package-arg@^6.1.0
│ ├─ npm-profile@^4.0.1
│ ├─ npm-registry-fetch@^3.8.0
│ ├─ npmlog@^4.1.2
│ ├─ pacote@^9.2.3
│ ├─ read-package-json@^2.0.13
│ └─ stringify-package@^1.0.0
├─ libnpmaccess@3.0.1
│ ├─ aproba@^2.0.0
│ ├─ get-stream@^4.0.0
│ ├─ npm-package-arg@^6.1.0
│ └─ npm-registry-fetch@^3.8.0
├─ libnpmconfig@1.2.1
│ ├─ figgy-pudding@^3.5.1
│ ├─ find-up@^3.0.0
│ ├─ find-up@3.0.0
│ │ └─ locate-path@^3.0.0
│ ├─ ini@^1.3.5
│ ├─ locate-path@3.0.0
│ │ ├─ p-locate@^3.0.0
│ │ └─ path-exists@^3.0.0
│ ├─ p-limit@2.2.0
│ │ └─ p-try@^2.0.0
│ ├─ p-locate@3.0.0
│ │ └─ p-limit@^2.0.0
│ └─ p-try@2.2.0
├─ libnpmhook@5.0.2
│ ├─ aproba@^2.0.0
│ ├─ figgy-pudding@^3.4.1
│ ├─ get-stream@^4.0.0
│ └─ npm-registry-fetch@^3.8.0
├─ libnpmorg@1.0.0
│ ├─ aproba@^2.0.0
│ ├─ figgy-pudding@^3.4.1
│ ├─ get-stream@^4.0.0
│ └─ npm-registry-fetch@^3.8.0
├─ libnpmpublish@1.1.1
│ ├─ aproba@^2.0.0
│ ├─ figgy-pudding@^3.5.1
│ ├─ get-stream@^4.0.0
│ ├─ lodash.clonedeep@^4.5.0
│ ├─ normalize-package-data@^2.4.0
│ ├─ npm-package-arg@^6.1.0
│ ├─ npm-registry-fetch@^3.8.0
│ ├─ semver@^5.5.1
│ └─ ssri@^6.0.1
├─ libnpmsearch@2.0.0
│ ├─ figgy-pudding@^3.5.1
│ ├─ get-stream@^4.0.0
│ └─ npm-registry-fetch@^3.8.0
etc.
我明白了(大部分)。由于一些我还没有解决的魔法,我在我的 packages.json
文件中插入了对 npm
的引用。
这是我认为发生的事情:当我 运行 yarn list
它通知我有更新版本的 yarn 可用。经过相当大的努力和谷歌搜索,我发现我可以通过以下方式将 yarn 和 npm 升级到最新版本:
> npm I npm
> npm install -g yarn
但是,在这两个命令的某处,它添加了对我的 packages.json
文件的 npm 引用。
OP 问了一个紧迫的问题:"What changed?"有人可以 post 一个更好的答案,解释我应该如何在不弄乱我的 packages.json
文件的情况下升级 yarn 和 npm ?
我在两台不同的机器上看到了这个。当我导航到包含我的 package.json
文件的文件夹并执行命令 yarn list
时,它列出了一堆我尚未安装的包。如果我执行命令 yarn check
然后它会抱怨大多数软件包没有安装。
那么,自从上次正常运行以来发生了什么变化? yarn 在哪里找到所有无关的包,我如何说服它它们真的不存在?
以下是我的项目目录中的所有相关文件:
package.json
{
"name": "indigo",
"version": "1.0.0",
"license": "UNLICENSED",
"dependencies": {
"@fortawesome/fontawesome-pro": "^5.2.0",
"bootstrap": "^3.3.7",
"bootstrap-datepicker": "^1.8.0",
"bootstrap-switch": "^3.3.3",
"braintree-web": "^3.32.0",
"jquery": "^3.3.1",
"jquery-ajax-unobtrusive": "aspnet/jquery-ajax-unobtrusive#^3.2.5",
"jquery-validation": "^1.17.0",
"jquery-validation-unobtrusive": "^3.2.9",
"npm": "^6.9.0",
"signalr": "2.3.0"
},
"engines": {
"yarn": ">= 1.0.0"
}
}
yarn.lock
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
"@braintree/asset-loader@0.2.1":
version "0.2.1"
resolved "https://registry.yarnpkg.com/@braintree/asset-loader/-/asset-loader-0.2.1.tgz#1f744aada54321ff591e846d707a7b7d58d7ca9f"
dependencies:
promise-polyfill "^8.1.0"
"@braintree/browser-detection@1.7.0", "@braintree/browser-detection@^1.5.0":
version "1.7.0"
resolved "https://registry.yarnpkg.com/@braintree/browser-detection/-/browser-detection-1.7.0.tgz#895ba64b700c3f36cab5c54591caf71a41171dd8"
"@braintree/class-list@0.1.0":
version "0.1.0"
resolved "https://registry.yarnpkg.com/@braintree/class-list/-/class-list-0.1.0.tgz#d6c8606ce6a82b4b37f28e32eadd090abcf1adaa"
"@braintree/iframer@1.0.3":
version "1.0.3"
resolved "https://registry.yarnpkg.com/@braintree/iframer/-/iframer-1.0.3.tgz#21dd1fd4cebd4154aeab1efa4d5b0d5f4384364e"
"@braintree/sanitize-url@3.1.0":
version "3.1.0"
resolved "https://registry.yarnpkg.com/@braintree/sanitize-url/-/sanitize-url-3.1.0.tgz#8ff71d51053cd5ee4981e5a501d80a536244f7fd"
"@braintree/wrap-promise@1.1.1":
version "1.1.1"
resolved "https://registry.yarnpkg.com/@braintree/wrap-promise/-/wrap-promise-1.1.1.tgz#d22c76855e6d4b4012610060421fae1a37ec90b0"
"@fortawesome/fontawesome-pro@^5.2.0":
version "5.8.1"
resolved "https://npm.fontawesome.com/@fortawesome/fontawesome-pro/-/fontawesome-pro-5.8.1.tgz#a676c70df0ea7968457cd338ba19d360d8b037d2"
bootstrap-datepicker@^1.8.0:
version "1.8.0"
resolved "https://registry.yarnpkg.com/bootstrap-datepicker/-/bootstrap-datepicker-1.8.0.tgz#c63513931e6f09f16ae9f11b62f32d950df3958e"
dependencies:
jquery ">=1.7.1 <4.0.0"
bootstrap-switch@^3.3.3:
version "3.4.0"
resolved "https://registry.yarnpkg.com/bootstrap-switch/-/bootstrap-switch-3.4.0.tgz#6bbb0445ad8b4264883d06366d48aad3c06988f4"
bootstrap@^3.3.7:
version "3.4.1"
resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-3.4.1.tgz#c3a347d419e289ad11f4033e3c4132b87c081d72"
braintree-web@^3.32.0:
version "3.44.2"
resolved "https://registry.yarnpkg.com/braintree-web/-/braintree-web-3.44.2.tgz#87c671ee3739d9af699901e66f438281c143c397"
dependencies:
"@braintree/asset-loader" "0.2.1"
"@braintree/browser-detection" "1.7.0"
"@braintree/class-list" "0.1.0"
"@braintree/iframer" "1.0.3"
"@braintree/sanitize-url" "3.1.0"
"@braintree/wrap-promise" "1.1.1"
card-validator "6.1.0"
credit-card-type "8.2.0"
framebus "3.0.2"
inject-stylesheet "1.0.0"
promise-polyfill "8.1.0"
restricted-input "1.2.7"
card-validator@6.1.0:
version "6.1.0"
resolved "https://registry.yarnpkg.com/card-validator/-/card-validator-6.1.0.tgz#d36bfc9ff8ee0c69e02d676b2b27f7b6d2dae92d"
dependencies:
credit-card-type "^8.0.0"
credit-card-type@8.2.0, credit-card-type@^8.0.0:
version "8.2.0"
resolved "https://registry.yarnpkg.com/credit-card-type/-/credit-card-type-8.2.0.tgz#507a43b257f0f3b8bd4d4b339a419741fc7e6236"
framebus@3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/framebus/-/framebus-3.0.2.tgz#0c99c70cb507522aae6ed485e1317fc913873a8a"
inject-stylesheet@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/inject-stylesheet/-/inject-stylesheet-1.0.0.tgz#f673047458ee58f109fee4cfb66b09f362ccc261"
jquery-ajax-unobtrusive@aspnet/jquery-ajax-unobtrusive#^3.2.5:
version "3.2.6"
resolved "https://codeload.github.com/aspnet/jquery-ajax-unobtrusive/tar.gz/dd69746ae0771e3f4232a6852210b8c17718e782"
dependencies:
jquery ">=1.8"
jquery-validation-unobtrusive@^3.2.9:
version "3.2.11"
resolved "https://registry.yarnpkg.com/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.2.11.tgz#175ee46380385a0e33ed320f255fad321f68f9f5"
dependencies:
jquery ">=1.8"
jquery-validation ">=1.16"
jquery-validation@>=1.16, jquery-validation@^1.17.0:
version "1.19.0"
resolved "https://registry.yarnpkg.com/jquery-validation/-/jquery-validation-1.19.0.tgz#0fedf0c0483a030c4fff072398898ac18cfd6e40"
dependencies:
jquery "^1.7 || ^2.0 || ^3.1"
jquery@>=1.6.4, "jquery@>=1.7.1 <4.0.0", jquery@>=1.8, "jquery@^1.7 || ^2.0 || ^3.1", jquery@^3.3.1:
version "3.4.1"
resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.4.1.tgz#714f1f8d9dde4bdfa55764ba37ef214630d80ef2"
promise-polyfill@8.1.0, promise-polyfill@^8.1.0:
version "8.1.0"
resolved "https://registry.yarnpkg.com/promise-polyfill/-/promise-polyfill-8.1.0.tgz#30059da54d1358ce905ac581f287e184aedf995d"
restricted-input@1.2.7:
version "1.2.7"
resolved "https://registry.yarnpkg.com/restricted-input/-/restricted-input-1.2.7.tgz#e1298f5fd8c430cc2d8e6bb1175524023205cb34"
dependencies:
"@braintree/browser-detection" "^1.5.0"
signalr@2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/signalr/-/signalr-2.3.0.tgz#2c5aceab8a3d6eaa81785debd8bca069bc3ed14d"
dependencies:
jquery ">=1.6.4"
.npmrc
@fortawesome:registry=https://npm.fontawesome.com/
//npm.fontawesome.com/:_authToken=xxx
.yarnrc
--modules-folder wwwroot/lib
这是 yarn list
yarn list v1.15.2
├─ @braintree/asset-loader@0.2.1
│ └─ promise-polyfill@^8.1.0
├─ @braintree/browser-detection@1.7.0
├─ @braintree/class-list@0.1.0
├─ @braintree/iframer@1.0.3
├─ @braintree/sanitize-url@3.1.0
├─ @braintree/wrap-promise@1.1.1
├─ @fortawesome/fontawesome-pro@5.8.1
├─ abbrev@1.1.1
├─ agent-base@4.2.1
│ └─ es6-promisify@^5.0.0
├─ agentkeepalive@3.5.2
│ └─ humanize-ms@^1.2.1
├─ ajv@6.10.0
│ ├─ fast-deep-equal@^2.0.1
│ ├─ fast-json-stable-stringify@^2.0.0
│ ├─ json-schema-traverse@^0.4.1
│ └─ uri-js@^4.2.2
├─ ansi-align@2.0.0
│ └─ string-width@^2.0.0
├─ ansi-regex@2.1.1
├─ ansi-styles@3.2.1
│ └─ color-convert@^1.9.0
├─ ansicolors@0.3.2
├─ ansistyles@0.1.3
├─ aproba@2.0.0
├─ archy@1.0.0
├─ are-we-there-yet@1.1.5
│ ├─ delegates@^1.0.0
│ └─ readable-stream@^2.0.6
├─ asap@2.0.6
├─ asn1@0.2.4
│ └─ safer-buffer@~2.1.0
├─ assert-plus@1.0.0
├─ asynckit@0.4.0
├─ aws-sign2@0.7.0
├─ aws4@1.8.0
├─ balanced-match@1.0.0
├─ bcrypt-pbkdf@1.0.2
│ └─ tweetnacl@^0.14.3
├─ bin-links@1.1.2
│ ├─ bluebird@^3.5.0
│ ├─ cmd-shim@^2.0.2
│ ├─ gentle-fs@^2.0.0
│ ├─ graceful-fs@^4.1.11
│ └─ write-file-atomic@^2.3.0
├─ block-stream@0.0.9
│ └─ inherits@~2.0.0
├─ bluebird@3.5.4
├─ bootstrap-datepicker@1.8.0
│ └─ jquery@>=1.7.1 <4.0.0
├─ bootstrap-switch@3.4.0
├─ bootstrap@3.4.1
├─ boxen@1.3.0
│ ├─ ansi-align@^2.0.0
│ ├─ camelcase@^4.0.0
│ ├─ chalk@^2.0.1
│ ├─ cli-boxes@^1.0.0
│ ├─ string-width@^2.0.0
│ ├─ term-size@^1.2.0
│ └─ widest-line@^2.0.0
├─ brace-expansion@1.1.11
│ ├─ balanced-match@^1.0.0
│ └─ concat-map@0.0.1
├─ braintree-web@3.44.2
│ ├─ @braintree/asset-loader@0.2.1
│ ├─ @braintree/browser-detection@1.7.0
│ ├─ @braintree/class-list@0.1.0
│ ├─ @braintree/iframer@1.0.3
│ ├─ @braintree/sanitize-url@3.1.0
│ ├─ @braintree/wrap-promise@1.1.1
│ ├─ card-validator@6.1.0
│ ├─ credit-card-type@8.2.0
│ ├─ framebus@3.0.2
│ ├─ inject-stylesheet@1.0.0
│ ├─ promise-polyfill@8.1.0
│ └─ restricted-input@1.2.7
├─ buffer-from@1.1.1
├─ builtins@1.0.3
├─ byline@5.0.0
├─ byte-size@5.0.1
├─ cacache@11.3.2
│ ├─ bluebird@^3.5.3
│ ├─ chownr@^1.1.1
│ ├─ figgy-pudding@^3.5.1
│ ├─ glob@^7.1.3
│ ├─ graceful-fs@^4.1.15
│ ├─ lru-cache@^5.1.1
│ ├─ lru-cache@5.1.1
│ │ └─ yallist@^3.0.2
│ ├─ mississippi@^3.0.0
│ ├─ mkdirp@^0.5.1
│ ├─ move-concurrently@^1.0.1
│ ├─ promise-inflight@^1.0.1
│ ├─ rimraf@^2.6.2
│ ├─ ssri@^6.0.1
│ ├─ unique-filename@^1.1.1
│ └─ y18n@^4.0.0
├─ call-limit@1.1.0
├─ camelcase@4.1.0
├─ capture-stack-trace@1.0.1
├─ card-validator@6.1.0
│ └─ credit-card-type@^8.0.0
├─ caseless@0.12.0
├─ chalk@2.4.2
│ ├─ ansi-styles@^3.2.1
│ ├─ escape-string-regexp@^1.0.5
│ └─ supports-color@^5.3.0
├─ chownr@1.1.1
├─ ci-info@2.0.0
├─ cidr-regex@2.0.10
│ └─ ip-regex@^2.1.0
├─ cli-boxes@1.0.0
├─ cli-columns@3.1.2
│ ├─ string-width@^2.0.0
│ └─ strip-ansi@^3.0.1
├─ cli-table3@0.5.1
│ ├─ colors@^1.1.2
│ ├─ object-assign@^4.1.0
│ └─ string-width@^2.1.1
├─ cliui@4.1.0
│ ├─ ansi-regex@3.0.0
│ ├─ string-width@^2.1.1
│ ├─ strip-ansi@^4.0.0
│ ├─ strip-ansi@4.0.0
│ │ └─ ansi-regex@^3.0.0
│ └─ wrap-ansi@^2.0.0
├─ clone@1.0.4
├─ cmd-shim@2.0.2
│ ├─ graceful-fs@^4.1.2
│ └─ mkdirp@~0.5.0
├─ code-point-at@1.1.0
├─ color-convert@1.9.3
│ └─ color-name@1.1.3
├─ color-name@1.1.3
├─ colors@1.3.3
├─ columnify@1.5.4
│ ├─ strip-ansi@^3.0.0
│ └─ wcwidth@^1.0.0
├─ combined-stream@1.0.7
│ └─ delayed-stream@~1.0.0
├─ concat-map@0.0.1
├─ concat-stream@1.6.2
│ ├─ buffer-from@^1.0.0
│ ├─ inherits@^2.0.3
│ ├─ readable-stream@^2.2.2
│ └─ typedarray@^0.0.6
├─ config-chain@1.1.12
│ ├─ ini@^1.3.4
│ └─ proto-list@~1.2.1
├─ configstore@3.1.2
│ ├─ dot-prop@^4.1.0
│ ├─ graceful-fs@^4.1.2
│ ├─ make-dir@^1.0.0
│ ├─ unique-string@^1.0.0
│ ├─ write-file-atomic@^2.0.0
│ └─ xdg-basedir@^3.0.0
├─ console-control-strings@1.1.0
├─ copy-concurrently@1.0.5
│ ├─ aproba@^1.1.1
│ ├─ aproba@1.2.0
│ ├─ fs-write-stream-atomic@^1.0.8
│ ├─ iferr@^0.1.5
│ ├─ mkdirp@^0.5.1
│ ├─ rimraf@^2.5.4
│ └─ run-queue@^1.0.0
├─ core-util-is@1.0.2
├─ create-error-class@3.0.2
│ └─ capture-stack-trace@^1.0.0
├─ credit-card-type@8.2.0
├─ cross-spawn@5.1.0
│ ├─ lru-cache@^4.0.1
│ ├─ shebang-command@^1.2.0
│ └─ which@^1.2.9
├─ crypto-random-string@1.0.0
├─ cyclist@0.2.2
├─ dashdash@1.14.1
│ └─ assert-plus@^1.0.0
├─ debug@3.1.0
│ ├─ ms@2.0.0
│ └─ ms@2.0.0
├─ debuglog@1.0.1
├─ decamelize@1.2.0
├─ decode-uri-component@0.2.0
├─ deep-extend@0.6.0
├─ defaults@1.0.3
│ └─ clone@^1.0.2
├─ delayed-stream@1.0.0
├─ delegates@1.0.0
├─ detect-indent@5.0.0
├─ detect-newline@2.1.0
├─ dezalgo@1.0.3
│ ├─ asap@^2.0.0
│ └─ wrappy@1
├─ dot-prop@4.2.0
│ └─ is-obj@^1.0.0
├─ dotenv@5.0.1
├─ duplexer3@0.1.4
├─ duplexify@3.7.1
│ ├─ end-of-stream@^1.0.0
│ ├─ inherits@^2.0.1
│ ├─ readable-stream@^2.0.0
│ └─ stream-shift@^1.0.0
├─ ecc-jsbn@0.1.2
│ ├─ jsbn@~0.1.0
│ └─ safer-buffer@^2.1.0
├─ editor@1.0.0
├─ encoding@0.1.12
│ └─ iconv-lite@~0.4.13
├─ end-of-stream@1.4.1
│ └─ once@^1.4.0
├─ err-code@1.1.2
├─ errno@0.1.7
│ └─ prr@~1.0.1
├─ es6-promise@4.2.6
├─ es6-promisify@5.0.0
│ └─ es6-promise@^4.0.3
├─ escape-string-regexp@1.0.5
├─ execa@0.7.0
│ ├─ cross-spawn@^5.0.1
│ ├─ get-stream@^3.0.0
│ ├─ get-stream@3.0.0
│ ├─ is-stream@^1.1.0
│ ├─ npm-run-path@^2.0.0
│ ├─ p-finally@^1.0.0
│ ├─ signal-exit@^3.0.0
│ └─ strip-eof@^1.0.0
├─ extend@3.0.2
├─ extsprintf@1.3.0
├─ fast-deep-equal@2.0.1
├─ fast-json-stable-stringify@2.0.0
├─ figgy-pudding@3.5.1
├─ find-npm-prefix@1.0.2
├─ find-up@2.1.0
│ └─ locate-path@^2.0.0
├─ flush-write-stream@1.1.1
│ ├─ inherits@^2.0.3
│ └─ readable-stream@^2.3.6
├─ forever-agent@0.6.1
├─ form-data@2.3.3
│ ├─ asynckit@^0.4.0
│ ├─ combined-stream@^1.0.6
│ └─ mime-types@^2.1.12
├─ framebus@3.0.2
├─ from2@1.3.0
│ ├─ inherits@~2.0.1
│ ├─ isarray@0.0.1
│ ├─ readable-stream@~1.1.10
│ ├─ readable-stream@1.1.14
│ │ ├─ core-util-is@~1.0.0
│ │ ├─ inherits@~2.0.1
│ │ ├─ isarray@0.0.1
│ │ └─ string_decoder@~0.10.x
│ └─ string_decoder@0.10.31
├─ fs-minipass@1.2.5
│ └─ minipass@^2.2.1
├─ fs-vacuum@1.2.10
│ ├─ graceful-fs@^4.1.2
│ ├─ path-is-inside@^1.0.1
│ └─ rimraf@^2.5.2
├─ fs-write-stream-atomic@1.0.10
│ ├─ graceful-fs@^4.1.2
│ ├─ iferr@^0.1.5
│ ├─ imurmurhash@^0.1.4
│ └─ readable-stream@1 || 2
├─ fs.realpath@1.0.0
├─ fstream@1.0.11
│ ├─ graceful-fs@^4.1.2
│ ├─ inherits@~2.0.0
│ ├─ mkdirp@>=0.5 0
│ └─ rimraf@2
├─ gauge@2.7.4
│ ├─ aproba@^1.0.3
│ ├─ aproba@1.2.0
│ ├─ console-control-strings@^1.0.0
│ ├─ has-unicode@^2.0.0
│ ├─ is-fullwidth-code-point@1.0.0
│ │ └─ number-is-nan@^1.0.0
│ ├─ object-assign@^4.1.0
│ ├─ signal-exit@^3.0.0
│ ├─ string-width@^1.0.1
│ ├─ string-width@1.0.2
│ │ ├─ code-point-at@^1.0.0
│ │ ├─ is-fullwidth-code-point@^1.0.0
│ │ └─ strip-ansi@^3.0.0
│ ├─ strip-ansi@^3.0.1
│ └─ wide-align@^1.1.0
├─ genfun@5.0.0
├─ gentle-fs@2.0.1
│ ├─ aproba@^1.1.2
│ ├─ aproba@1.2.0
│ ├─ fs-vacuum@^1.2.10
│ ├─ graceful-fs@^4.1.11
│ ├─ iferr@^0.1.5
│ ├─ mkdirp@^0.5.1
│ ├─ path-is-inside@^1.0.2
│ ├─ read-cmd-shim@^1.0.1
│ └─ slide@^1.1.6
├─ get-caller-file@1.0.3
├─ get-stream@4.1.0
│ └─ pump@^3.0.0
├─ getpass@0.1.7
│ └─ assert-plus@^1.0.0
├─ glob@7.1.4
│ ├─ fs.realpath@^1.0.0
│ ├─ inflight@^1.0.4
│ ├─ inherits@2
│ ├─ minimatch@^3.0.4
│ ├─ once@^1.3.0
│ └─ path-is-absolute@^1.0.0
├─ global-dirs@0.1.1
│ └─ ini@^1.3.4
├─ got@6.7.1
│ ├─ create-error-class@^3.0.0
│ ├─ duplexer3@^0.1.4
│ ├─ get-stream@^3.0.0
│ ├─ get-stream@3.0.0
│ ├─ is-redirect@^1.0.0
│ ├─ is-retry-allowed@^1.0.0
│ ├─ is-stream@^1.0.0
│ ├─ lowercase-keys@^1.0.0
│ ├─ safe-buffer@^5.0.1
│ ├─ timed-out@^4.0.0
│ ├─ unzip-response@^2.0.1
│ └─ url-parse-lax@^1.0.0
├─ graceful-fs@4.1.15
├─ har-schema@2.0.0
├─ har-validator@5.1.3
│ ├─ ajv@^6.5.5
│ └─ har-schema@^2.0.0
├─ has-flag@3.0.0
├─ has-unicode@2.0.1
├─ hosted-git-info@2.7.1
├─ http-cache-semantics@3.8.1
├─ http-proxy-agent@2.1.0
│ ├─ agent-base@4
│ └─ debug@3.1.0
├─ http-signature@1.2.0
│ ├─ assert-plus@^1.0.0
│ ├─ jsprim@^1.2.2
│ └─ sshpk@^1.7.0
├─ https-proxy-agent@2.2.1
│ ├─ agent-base@^4.1.0
│ ├─ debug@^3.1.0
│ └─ debug@3.2.6
│ └─ ms@^2.1.1
├─ humanize-ms@1.2.1
│ └─ ms@^2.0.0
├─ iconv-lite@0.4.24
│ └─ safer-buffer@>= 2.1.2 < 3
├─ iferr@0.1.5
├─ ignore-walk@3.0.1
│ └─ minimatch@^3.0.4
├─ import-lazy@2.1.0
├─ imurmurhash@0.1.4
├─ inflight@1.0.6
│ ├─ once@^1.3.0
│ └─ wrappy@1
├─ inherits@2.0.3
├─ ini@1.3.5
├─ init-package-json@1.10.3
│ ├─ glob@^7.1.1
│ ├─ npm-package-arg@^4.0.0 || ^5.0.0 || ^6.0.0
│ ├─ promzard@^0.3.0
│ ├─ read-package-json@1 || 2
│ ├─ read@~1.0.1
│ ├─ semver@2.x || 3.x || 4 || 5
│ ├─ validate-npm-package-license@^3.0.1
│ └─ validate-npm-package-name@^3.0.0
├─ inject-stylesheet@1.0.0
├─ invert-kv@1.0.0
├─ ip-regex@2.1.0
├─ ip@1.1.5
├─ is-ci@1.2.1
│ ├─ ci-info@^1.5.0
│ └─ ci-info@1.6.0
├─ is-cidr@3.0.0
│ └─ cidr-regex@^2.0.10
├─ is-fullwidth-code-point@2.0.0
├─ is-installed-globally@0.1.0
│ ├─ global-dirs@^0.1.0
│ └─ is-path-inside@^1.0.0
├─ is-npm@1.0.0
├─ is-obj@1.0.1
├─ is-path-inside@1.0.1
│ └─ path-is-inside@^1.0.1
├─ is-redirect@1.0.0
├─ is-retry-allowed@1.1.0
├─ is-stream@1.1.0
├─ is-typedarray@1.0.0
├─ isarray@1.0.0
├─ isexe@2.0.0
├─ isstream@0.1.2
├─ jquery-ajax-unobtrusive@3.2.6
│ └─ jquery@>=1.8
├─ jquery-validation-unobtrusive@3.2.11
│ ├─ jquery-validation@>=1.16
│ └─ jquery@>=1.8
├─ jquery-validation@1.19.0
│ └─ jquery@^1.7 || ^2.0 || ^3.1
├─ jquery@3.4.1
├─ jsbn@0.1.1
├─ json-parse-better-errors@1.0.2
├─ json-schema-traverse@0.4.1
├─ json-schema@0.2.3
├─ json-stringify-safe@5.0.1
├─ jsonparse@1.3.1
├─ JSONStream@1.3.5
│ ├─ jsonparse@^1.2.0
│ └─ through@>=2.2.7 <3
├─ jsprim@1.4.1
│ ├─ assert-plus@1.0.0
│ ├─ extsprintf@1.3.0
│ ├─ json-schema@0.2.3
│ └─ verror@1.10.0
├─ latest-version@3.1.0
│ └─ package-json@^4.0.0
├─ lazy-property@1.0.0
├─ lcid@1.0.0
│ └─ invert-kv@^1.0.0
├─ libcipm@3.0.3
│ ├─ bin-links@^1.1.2
│ ├─ bluebird@^3.5.1
│ ├─ figgy-pudding@^3.5.1
│ ├─ find-npm-prefix@^1.0.2
│ ├─ graceful-fs@^4.1.11
│ ├─ ini@^1.3.5
│ ├─ lock-verify@^2.0.2
│ ├─ mkdirp@^0.5.1
│ ├─ npm-lifecycle@^2.0.3
│ ├─ npm-logical-tree@^1.2.1
│ ├─ npm-package-arg@^6.1.0
│ ├─ pacote@^9.1.0
│ ├─ read-package-json@^2.0.13
│ ├─ rimraf@^2.6.2
│ └─ worker-farm@^1.6.0
├─ libnpm@2.0.1
│ ├─ bin-links@^1.1.2
│ ├─ bluebird@^3.5.3
│ ├─ find-npm-prefix@^1.0.2
│ ├─ libnpmaccess@^3.0.1
│ ├─ libnpmconfig@^1.2.1
│ ├─ libnpmhook@^5.0.2
│ ├─ libnpmorg@^1.0.0
│ ├─ libnpmpublish@^1.1.0
│ ├─ libnpmsearch@^2.0.0
│ ├─ libnpmteam@^1.0.1
│ ├─ lock-verify@^2.0.2
│ ├─ npm-lifecycle@^2.1.0
│ ├─ npm-logical-tree@^1.2.1
│ ├─ npm-package-arg@^6.1.0
│ ├─ npm-profile@^4.0.1
│ ├─ npm-registry-fetch@^3.8.0
│ ├─ npmlog@^4.1.2
│ ├─ pacote@^9.2.3
│ ├─ read-package-json@^2.0.13
│ └─ stringify-package@^1.0.0
├─ libnpmaccess@3.0.1
│ ├─ aproba@^2.0.0
│ ├─ get-stream@^4.0.0
│ ├─ npm-package-arg@^6.1.0
│ └─ npm-registry-fetch@^3.8.0
├─ libnpmconfig@1.2.1
│ ├─ figgy-pudding@^3.5.1
│ ├─ find-up@^3.0.0
│ ├─ find-up@3.0.0
│ │ └─ locate-path@^3.0.0
│ ├─ ini@^1.3.5
│ ├─ locate-path@3.0.0
│ │ ├─ p-locate@^3.0.0
│ │ └─ path-exists@^3.0.0
│ ├─ p-limit@2.2.0
│ │ └─ p-try@^2.0.0
│ ├─ p-locate@3.0.0
│ │ └─ p-limit@^2.0.0
│ └─ p-try@2.2.0
├─ libnpmhook@5.0.2
│ ├─ aproba@^2.0.0
│ ├─ figgy-pudding@^3.4.1
│ ├─ get-stream@^4.0.0
│ └─ npm-registry-fetch@^3.8.0
├─ libnpmorg@1.0.0
│ ├─ aproba@^2.0.0
│ ├─ figgy-pudding@^3.4.1
│ ├─ get-stream@^4.0.0
│ └─ npm-registry-fetch@^3.8.0
├─ libnpmpublish@1.1.1
│ ├─ aproba@^2.0.0
│ ├─ figgy-pudding@^3.5.1
│ ├─ get-stream@^4.0.0
│ ├─ lodash.clonedeep@^4.5.0
│ ├─ normalize-package-data@^2.4.0
│ ├─ npm-package-arg@^6.1.0
│ ├─ npm-registry-fetch@^3.8.0
│ ├─ semver@^5.5.1
│ └─ ssri@^6.0.1
├─ libnpmsearch@2.0.0
│ ├─ figgy-pudding@^3.5.1
│ ├─ get-stream@^4.0.0
│ └─ npm-registry-fetch@^3.8.0
etc.
我明白了(大部分)。由于一些我还没有解决的魔法,我在我的 packages.json
文件中插入了对 npm
的引用。
这是我认为发生的事情:当我 运行 yarn list
它通知我有更新版本的 yarn 可用。经过相当大的努力和谷歌搜索,我发现我可以通过以下方式将 yarn 和 npm 升级到最新版本:
> npm I npm
> npm install -g yarn
但是,在这两个命令的某处,它添加了对我的 packages.json
文件的 npm 引用。
OP 问了一个紧迫的问题:"What changed?"有人可以 post 一个更好的答案,解释我应该如何在不弄乱我的 packages.json
文件的情况下升级 yarn 和 npm ?