node.js – Ember.js 2.7不使用yarn构建 – 使用npm构建

版本:

> ember.js 2.7,ember-data 2.7
> ember-cli 2.9.1 //对于ember-cli 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
>纱线
>凉亭安装
> ember s或ember 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安装,则控制台输出为:

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安装,那么构建可以像以前一样无错误地工作.

有任何想法吗?

更新:由npm install和yarn构建的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 /:默认值

仅限于yarn_node_modules /:dezalgo

仅在yarn_node_modules /:dom-storage中

仅在yarn_node_modules /:编辑器中

仅限于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 /:realize-package-specifier中

仅在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中

最佳答案
在清理阶段,纱线默认删除了很多包. Ember-cli-qunit需要运行images目录,但默认情况下会将其删除.

更新.yarnclean文件并替换该行:

images

!images

这将留下所有图像目录,如果需要更多特异性,可以优化正则表达式.

转载注明原文:node.js – Ember.js 2.7不使用yarn构建 – 使用npm构建 - 代码日志