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
当纱线像这样混淆时,您通常可以通过在安装之前清除节点模块来解决问题:
rm -rf node_modules && yarn
Run Code Online (Sandbox Code Playgroud)