“已经是最新的”和“运行 'yarn' 以安装缺少的依赖项”?

gla*_*con 6 npm ember.js yarnpkg

我遇到了一些奇怪的情况,“ ember s ”报告“缺少纱线包”,然后是缺少包的列表(其中两个),然后是“运行 'yarn' 以安装缺少的依赖项”。

但是,当我运行 ' yarn ' 时,我收到消息“成功已经是最新的”。

任何想法如何摆脱这个圈子?


在此开始之前我做了一些事情,我想这是我问题的根源

摆脱附加组件

我安装了一个 Ember 附加组件,它产生了问题,所以我决定摆脱它。为此,我执行了以下操作:

git push -f origin 913c2dee12b0363df0664c9c63e0443abe0adb57:foo-bar
git reset --hard 913c2dee12b0363df0664c9c63e0443abe0adb57
yarn
yarn install
yarn clean
yarn install
yarn
Run Code Online (Sandbox Code Playgroud)

其中 913c2dee12b0363df0664c9c63e0443abe0adb57 是安装不需要的附加组件之前的最后一次提交。我不认为这样做有什么问题,但现在我想知道。


运行 Ember 服务器的输出

当我运行'ember s'时,我得到了这个输出......

DEPRECATION: ember-cli-babel 5.x has been deprecated. Please upgrade to at least ember-cli-babel 6.6. Version 5.2.8 located: foobar -> ember-cli-build-date -> ember-cli-babel

Missing yarn packages:
Package: @bower_components/jquery
  * Specified: jquery/jquery-dist#
  * Installed: (not installed)

Package: @bower_components/jstree
  * Specified: vakata/jstree#^3.3.5
  * Installed: (not installed)

Run `yarn` to install missing dependencies.



Stack Trace and Error Report: /tmp/error.dump.33c6e8c0abc9fc8abd355dc080268f9c.log
An error occurred in the constructor for ember-cli-dependency-checker at /media/mint/dev/foobar/node_modules/ember-cli-dependency-checker
Run Code Online (Sandbox Code Playgroud)

关于 ember-cli 版本的警告

我不认为这是相关的,但只是为了完整性

运行“纱线”会导致以下内容出现在输出文本中...

警告 foobar@0.0.0:“dependencies”具有范围“~3.8.1”的依赖项“ember-cli”,该依赖项与版本“3.8”同名的“devDependencies”中的依赖项冲突


编辑:好的,我能够在 dwenzel 的评论的帮助下解决这个问题......

rm -rf node_modules && yarn
Run Code Online (Sandbox Code Playgroud)

虽然这实际上导致了一个不同的问题,我几乎可以肯定它是无关的,但我只是在这里提到它,以防它对后面的人有用。

yarn最初的执行失败,出现以下错误...

35238 verbose stack Error: node-sass@4.5.3 postinstall: `node scripts/build.js`
35238 verbose stack Exit status 1
35238 verbose stack     at EventEmitter.<anonymous> (/home/rshea/.nvm/versions/node/v10.15.3/lib/node_modules/npm/node_modules/npm-lifecycle/index.js:301:16)
35238 verbose stack     at EventEmitter.emit (events.js:189:13)
35238 verbose stack     at ChildProcess.<anonymous> (/home/rshea/.nvm/versions/node/v10.15.3/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:55:14)
35238 verbose stack     at ChildProcess.emit (events.js:189:13)
35238 verbose stack     at maybeClose (internal/child_process.js:970:16)
35238 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:259:5)
35239 verbose pkgid node-sass@4.5.3
35240 verbose cwd /media/mintextra/dev/ddn-build-test-temp/foobar
35241 verbose Linux 3.13.0-169-generic
35242 verbose argv "/home/rshea/.nvm/versions/node/v10.15.3/bin/node" "/home/rshea/.nvm/versions/node/v10.15.3/bin/npm" "install"
35243 verbose node v10.15.3
35244 verbose npm  v6.4.1
35245 error code ELIFECYCLE
35246 error errno 1
35247 error node-sass@4.5.3 postinstall: `node scripts/build.js`
35247 error Exit status 1
35248 error Failed at the node-sass@4.5.3 postinstall script.
35248 error This is probably not a problem with npm. There is likely additional logging output above.
35249 verbose exit [ 1, true ]
Run Code Online (Sandbox Code Playgroud)

我能够解决这个问题......

npm install node-sass@latest
npm install
Run Code Online (Sandbox Code Playgroud)

...此时ember s能够无错误地运行。

小智 12

看起来您想要yarn install --check-files验证文件尚未从 node_modules 中删除。这避免了必须清除可能耗时的 node_modules 文件。

https://classic.yarnpkg.com/en/docs/cli/install/#toc-yarn-install-check-files https://github.com/yarnpkg/yarn/issues/2240

  • 谢谢你,谢谢你,谢谢你。从头开始重建该文件夹是一场噩梦。 (2认同)

dwe*_*zel 9

当纱线像这样混淆时,您通常可以通过在安装之前清除节点模块来解决问题:

rm -rf node_modules && yarn
Run Code Online (Sandbox Code Playgroud)