5

我不知道出了什么问题,但是当我在我的项目中更改一个触发重建的文件时,我收到EEXIST, file already exists一个引用 tmp 文件位置的错误。

为了说明,请参见以下内容:

1) 我按照 Ember 发行说明的指示从头开始:

➜  code  npm uninstall -g ember-cli
unbuild ember-cli@0.2.0-beta.1
➜  code  npm cache clean
➜  code  bower cache clean
bower deleted       Cached package ember: /Users/userx/.cache/bower/packages/6c52274ebac940c836cec79e11a2d66a/1.10.0
bower deleted       Cached package ember-cli-test-loader: /Users/userx/.cache/bower/packages/fe70ed35683979c3b9a86502abc892c8/0.1.3
bower deleted       Cached package ember-load-initializers: /Users/userx/.cache/bower/packages/ace05fe526bc815d00157b3e7fdcccab/0.0.2
bower deleted       Cached package ember-qunit: /Users/userx/.cache/bower/packages/6b2637f1e3c33e331968889fd7088678/0.2.8
bower deleted       Cached package ember-qunit-notifications: /Users/userx/.cache/bower/packages/ebaf09c3e2e50cee4fa08625051f7d60/0.0.7
bower deleted       Cached package ember-data: /Users/userx/.cache/bower/packages/b56c7ee7b1cb5f358555b733f3ec15c1/1.0.0-beta.15
bower deleted       Cached package ember-cli-shims: /Users/userx/.cache/bower/packages/b2aa621bf259c52274bc62a524406e11/0.0.3
bower deleted       Cached package loader.js: /Users/userx/.cache/bower/packages/b765bce6e48383520b38bc3732776d8e/1.0.1
bower deleted       Cached package qunit-notifications: /Users/userx/.cache/bower/packages/cb84eb840aaebd3c38265d13fc3e2e70/0.0.6
bower deleted       Cached package ember-resolver: /Users/userx/.cache/bower/packages/93ca6e97b9b9d8c72c8101fc00862583/0.1.12
bower deleted       Cached package qunit: /Users/userx/.cache/bower/packages/db7350f12693d26675a7426499405707/1.17.1
bower deleted       Cached package jquery: /Users/userx/.cache/bower/packages/fe2fe255e91d251051d543998aa8327a/1.11.2
bower deleted       Cached package jquery: /Users/userx/.cache/bower/packages/fe2fe255e91d251051d543998aa8327a/2.1.3

2) 安装 Ember CLI 0.2.0-beta.1

➜  code  npm install -g ember-cli@0.2.0-beta.1
/usr/local/bin/ember -> /usr/local/lib/node_modules/ember-cli/bin/ember
ember-cli@0.2.0-beta.1 /usr/local/lib/node_modules/ember-cli
├── abbrev@1.0.5
├── ember-cli-copy-dereference@1.0.0
├── js-string-escape@1.0.0
├── exit@0.1.2
├── debug@2.1.2 (ms@0.7.0)
├── temp@0.8.1 (rimraf@2.2.8)
├── symlink-or-copy@1.0.1 (copy-dereference@1.0.0)
├── http-proxy@1.8.1 (requires-port@0.0.0, eventemitter3@0.1.6)
├── promise-map-series@0.2.1 (rsvp@3.0.17)
├── yam@0.0.17 (fs-extra@0.8.1, findup@0.1.5, lodash@2.4.1)
├── broccoli-writer@0.1.1 (rsvp@3.0.17, quick-temp@0.1.2)
├── broccoli-sane-watcher@0.1.1 (broccoli-slow-trees@1.0.0, rsvp@3.0.17, sane@1.0.0-rc1)
├── broccoli-caching-writer@0.5.1 (rsvp@3.0.17, quick-temp@0.1.2, broccoli-kitchen-sink-helpers@0.2.6, core-object@0.0.2, rimraf@2.3.0)
├── broccoli-sourcemap-concat@0.4.3 (combined-stream@0.0.7, mkdirp@0.5.0, rsvp@3.0.17, broccoli-kitchen-sink-helpers@0.2.6, lodash-node@2.4.1, fast-sourcemap-concat@0.2.2, broccoli-caching-writer@0.5.3)
└── broccoli-es6modules@0.5.1 (walk-sync@0.1.3, mkdirp@0.5.0, rsvp@3.0.17, broccoli-kitchen-sink-helpers@0.2.6, broccoli-caching-writer@0.5.3, esperanto@0.6.17)

3) 向自己证明 Ember/node/npm 都很好

➜  code  ember version
version: 0.2.0-beta.1
node: 0.12.0
npm: 2.1.8

4) 创建一个全新的 Ember 应用

➜  code  ember new an-app
version: 0.2.0-beta.1
installing
  create .bowerrc
  create .editorconfig
  create .ember-cli
  create .jshintrc
  create .travis.yml
  create Brocfile.js
  create README.md
  create app/app.js
  create app/components/.gitkeep
  create app/controllers/.gitkeep
  create app/helpers/.gitkeep
  create app/index.html
  create app/models/.gitkeep
  create app/router.js
  create app/routes/.gitkeep
  create app/styles/app.css
  create app/templates/application.hbs
  create app/templates/components/.gitkeep
  create app/views/.gitkeep
  create bower.json
  create config/environment.js
  create .gitignore
  create package.json
  create public/crossdomain.xml
  create public/robots.txt
  create testem.json
  create tests/.jshintrc
  create tests/helpers/resolver.js
  create tests/helpers/start-app.js
  create tests/index.html
  create tests/test-helper.js
  create tests/unit/.gitkeep
  create vendor/.gitkeep
Installed packages for tooling via npm.
Installed browser packages via Bower.
Successfully initialized git.

5)启动应用程序

➜  code  cd an-app
➜  an-app git:(master) ember server
version: 0.2.0-beta.1
Livereload server on port 35729
Serving on http://0.0.0.0:4200/

Build successful - 3682ms.

Slowest Trees                  | Total
-------------------------------+----------------
Concat: Vendor                 | 3046ms

router.js6)保存将触发重建的未修改文件。这就是事情崩溃的地方。

file changed router.js
EEXIST, file already exists '/Users/userx/code/an-app/tmp/caching-writer-dest-dir_4SJKQT.tmp'
Error: EEXIST, file already exists '/Users/userx/code/an-app/tmp/caching-writer-dest-dir_4SJKQT.tmp'
    at Error (native)
    at Object.fs.symlinkSync (fs.js:852:18)
    at symlink (/Users/userx/code/an-app/node_modules/ember-cli/node_modules/symlink-or-copy/index.js:82:14)
    at Function.symlinkOrCopySync (/Users/userx/code/an-app/node_modules/ember-cli/node_modules/symlink-or-copy/index.js:58:5)
    at /Users/userx/code/an-app/node_modules/ember-cli/node_modules/broccoli-sourcemap-concat/node_modules/broccoli-caching-writer/index.js:103:21
    at lib$rsvp$$internal$$tryCatch (/Users/userx/code/an-app/node_modules/ember-cli/node_modules/promise-map-series/node_modules/rsvp/dist/rsvp.js:489:16)
    at lib$rsvp$$internal$$invokeCallback (/Users/userx/code/an-app/node_modules/ember-cli/node_modules/promise-map-series/node_modules/rsvp/dist/rsvp.js:501:17)
    at lib$rsvp$$internal$$publish (/Users/userx/code/an-app/node_modules/ember-cli/node_modules/promise-map-series/node_modules/rsvp/dist/rsvp.js:472:11)
    at lib$rsvp$asap$$flush (/Users/userx/code/an-app/node_modules/ember-cli/node_modules/promise-map-series/node_modules/rsvp/dist/rsvp.js:1290:9)
    at process._tickCallback (node.js:355:11)

我真的不知道如何/从哪里开始调试它。我已经尝试过以前版本的节点、io.js 和删除/重新安装watcher。都失败了。

感谢您的时间。

4

1 回答 1

8

Ember CLI 社区在一夜之间找到了解决此问题的方法。您可以在以下链接查看讨论:https ://github.com/ember-cli/ember-cli/issues/3413

总而言之:修改您的package.json文件以包含"broccoli-sass": "^0.4.0"在 devDependencies 和"rimraf":"2.2.8"您列出的依赖项下。

我可以确认,如果您进行这些更改,然后删除/node_modules、、/bower_components/tmp,然后执行npm installbower install,然后运行ember server,您的项目将在文件更改时正确自动更新。

只是不要问我为什么。

于 2015-03-04T13:47:48.293 回答