Ember.js 2.7不会使用纱线生成 – 使用npm生成

版本:

  • ember.js 2.7,ember-data 2.7
  • ember-cli 2.9.1 //对于烬2.7也是如此
  • 节点6.9.1,npm 3.10.9 //对于节点4.4.4和npm 2.15.5也是如此
  • Mac El Capitan

重现步骤:

  • rm -Rf node_modules bower_components
  • yarn
  • bower install
  • ember sember build

症状:


 Build failed. The Broccoli Plugin: [Funnel: Funnel vendor/ember-cli-qunit/images /assets include:2] failed with: Error: ENOENT: no such file or directory, scandir '/Users/somePath/client/tmp/funnel-input_base_path-nIg5n9K9.tmp/0/vendor/ember-cli-qunit/images/' at Error (native) at Object.fs.readdirSync (fs.js:951:18) at FSMonitor._measure (/Users/somePath/client/node_modules/heimdalljs-fs-monitor/index.js:66:21) at Object.readdirSync (/Users/somePath/client/node_modules/heimdalljs-fs-monitor/index.js:82:30) at _walkSync (/Users/somePath/client/node_modules/broccoli-funnel/node_modules/walk-sync/index.js:64:18) at Function.entries (/Users/somePath/client/node_modules/broccoli-funnel/node_modules/walk-sync/index.js:40:10) at Funnel.processFilters (/Users/somePath/client/node_modules/broccoli-funnel/index.js:264:26) at Funnel.build (/Users/somePath/client/node_modules/broccoli-funnel/index.js:202:10) at /Users/somePath/client/node_modules/broccoli-plugin/read_compat.js:61:34 at tryCatch (/Users/somePath/client/node_modules/rsvp/dist/rsvp.js:538:12) The broccoli plugin was instantiated at: at Funnel.Plugin (/Users/somePath/client/node_modules/broccoli-plugin/index.js:7:31) at new Funnel (/Users/somePath/client/node_modules/broccoli-funnel/index.js:56:10) at /Users/somePath/client/node_modules/ember-cli/lib/broccoli/ember-app.js:1474:12 at Array.map (native) at EmberApp.otherAssets (/Users/somePath/client/node_modules/ember-cli/lib/broccoli/ember-app.js:1468:61) at EmberApp.toArray (/Users/somePath/client/node_modules/ember-cli/lib/broccoli/ember-app.js:1642:10) at EmberApp.toTree (/Users/somePath/client/node_modules/ember-cli/lib/broccoli/ember-app.js:1662:30) at module.exports (/Users/somePath/client/ember-cli-build.js:67:16) at CoreObject.setupBroccoliBuilder (/Users/somePath/client/node_modules/ember-cli/lib/models/builder.js:70:19) at CoreObject.init (/Users/somePath/client/node_modules/ember-cli/lib/models/builder.js:50:10) 

如果我在纱线之后进行npm install ,控制台输出是:


 npm WARN prefer global jshint@2.9.4 should be installed with -g npm WARN prefer global marked@0.3.6 should be installed with -g npm WARN prefer global node-gyp@3.3.1 should be installed with -g > node-sass@3.10.1 install /Users/somePath/client/node_modules/node-sass > node scripts/install.js > node-sass@3.10.1 postinstall /Users/somePath/client/node_modules/node-sass > node scripts/build.js "/Users/somePath/client/node_modules/node-sass/vendor/darwin-x64-46/binding.node" exists. testing binary. Binary is fine; exiting. npm WARN prefer global npm@3.10.9 should be installed with -g > spawn-sync@1.0.15 postinstall /Users/somePathclient/node_modules/spawn-sync > node postinstall auth0-ember-simple-auth@1.1.0 node_modules/auth0-ember-simple-auth 

如果我rm -Rf node_modules并执行标准的npm install ,构build工作没有像以前一样的错误。

有任何想法吗?

更新:由npm installyarn构build的node_modules文件夹的差异:


仅在yarn_node_modules /:.yarn-integrity中

仅在yarn_node_modules /:ansi中

仅在yarn_node_modules /:ansistyles中

仅在yarn_node_modules /:archy中

仅在yarn_node_modules /中:async-some

仅在yarn_node_modules /:builtins中

仅在yarn_node_modules /:char-spinner中

仅在yarn_node_modules /:chmodr中

仅在yarn_node_modules /:chownr中

仅在yarn_node_modules /:cmd-shim中

仅在yarn_node_modules /:columnify中

仅在yarn_node_modules /:config-chain中

仅在yarn_node_modules /:debuglog中

仅在yarn_node_modules /:defaults中

仅在yarn_node_modules /:dezalgo中

仅在yarn_node_modules /:dom-storage中

仅在yarn_node_modules /:editor中

仅在yarn_node_modules /:esprima中

仅在yarn_node_modules /:fs-vacuum中

仅在yarn_node_modules /:fs-write-stream-atomic中

仅在yarn_node_modules /中:fstream-ignore

仅在yarn_node_modules /:fstream-npm中

仅在yarn_node_modules /中:github-url-from-git

只在yarn_node_modules /:github-url-from-username-repo

仅在yarn_node_modules /:ic-ajax中

仅在yarn_node_modules /:iferr中

仅在yarn_node_modules /:init-package-json中

仅在yarn_node_modules /:jju中

仅在yarn_node_modules /:json-parse-helpfulerror中

仅在yarn_node_modules /:lockfile中

仅在yarn_node_modules /:lodash.pad中

仅在yarn_node_modules /:lodash.padend中

仅在yarn_node_modules /:lodash.padstart中

仅在yarn_node_modules /:normalize-git-url中

仅在yarn_node_modules /:npm-cache-filename中

仅在yarn_node_modules /:npm-install-checks中

仅在yarn_node_modules /:npm-registry-client中

仅在yarn_node_modules /:npm-user-validate中

仅在yarn_node_modules /:opener中

仅在yarn_node_modules /:path-is-inside中

仅在yarn_node_modules /:promzard中

仅在yarn_node_modules /:proto-list中

仅在yarn_node_modules /中:读取

仅在yarn_node_modules /中:read-installed

仅在yarn_node_modules /:read-package-json中

仅在yarn_node_modules /:readdir-scoped-modules中

仅在yarn_node_modules /:实现包说明符

仅在yarn_node_modules /中:重试

仅在yarn_node_modules /:sha中

仅在yarn_node_modules /:sigmund中

仅在yarn_node_modules /:sorted-object中

仅在yarn_node_modules /:text-table中

仅在yarn_node_modules /:uid-number中

仅在yarn_node_modules /:umask中

仅在yarn_node_modules /:validate-npm-package-name中

仅在yarn_node_modules /:wcwidth中


Yarn在清理阶段默认会删除大量的包。 Ember-cli-qunit需要运行images目录,但默认情况下会被删除。

更新你的.yarnclean文件并replace这一行:

图片

!图片

这将离开所有的图像目录,你可以改进正则expression式,如果你需要更多的特异性。

我遇到了同样的事情 我发现另一个解决方法是将ember-cli-qunit降级到v1.4.0,也允许使用纱线构build模块。