ember build命令失败,错误:没有这样的文件或目录,lstat .... / ember-cli-test-loader / test-loader

时间:2016-01-26 22:21:32

标签: javascript ember.js ember-cli broccolijs

我最近更新了packages.jsonbower.json中的依赖项,并遇到类似的错误,我通过在EmberApp中为vendorFiles选项提供覆盖来解决这个问题:

## ember-cli-build.js
...
module.exports = function(defaults) {
  var app = new EmberApp(defaults, {
    vendorFiles: {
      'ember-resolver.js': [
        'bower_components/ember-resolver/index.js' , { //similar error to below was solved like this
          exports: {
            'ember/resolver': ['default']
          }
        }
      ],
      ...
    }
  });
  ...

我尝试了一个类似的解决方案,我将此代码放在vendorFiles属性中,没有好运:(:

#ember-cli-build.js

module.exports = function(defaults) {
  var app = new EmberApp(defaults, {
    vendorFiles: {
      'ember-resolver.js': <...>,
      // \/\/\/\/\/\/\/\/\/
      'ember-cli-test-loader': [
        'bower_components/ember-cli-test-loader/index.js', {
          exports: {
            'ember/test-loader': ['default']
          }
        }
      ]
      // /\/\/\/\/\/\/\/\/\
    }
  });

完整输出如下:

ENOENT: no such file or directory, lstat '<...>/my-app/tmp/funnel-input_base_path-qUHHutHN.tmp/0/bower_components/ember-cli-test-loader/test-loader.js'
Error: ENOENT: no such file or directory, lstat '<...>/my-app/tmp/funnel-input_base_path-qUHHutHN.tmp/0/bower_components/ember-cli-test-loader/test-loader.js'
    at Error (native)
    at Object.fs.lstatSync (fs.js:839:18)
    at symlink (<...>/my-app/node_modules/ember-cli/node_modules/symlink-or-copy/index.js:63:26)
    at Function.symlinkOrCopySync [as sync] (<...>/my-app/node_modules/ember-cli/node_modules/symlink-or-copy/index.js:58:5)
    at Funnel._copy (<...>/my-app/node_modules/ember-cli/node_modules/broccoli-funnel/index.js:398:19)
    at Funnel.processFile (<...>/my-app/node_modules/ember-cli/node_modules/broccoli-funnel/index.js:381:8)
    at Funnel.applyPatch [as _applyPatch] (<...>/my-app/node_modules/ember-cli/node_modules/broccoli-funnel/index.js:298:12)
    at Funnel.<anonymous> (<...>/my-app/node_modules/ember-cli/node_modules/broccoli-funnel/index.js:250:10)
    at Array.forEach (native)
    at Funnel.processFilters (<...>/my-app/node_modules/ember-cli/node_modules/broccoli-funnel/index.js:249:9)

我不确定从输出中我会发现发生了什么。我是broccoli的新用户(来自gruntgulp),也是ember-cli的新用户

4 个答案:

答案 0 :(得分:2)

如果查看Releases,您会发现最新版本设置为0.2.2

如果您使用0.2.2(而不是1.0.0),它可以正常工作。

我就此提交了issue

答案 1 :(得分:1)

我相信我已经回答了我自己的问题:

我的测试加载器版本是1.0.0。当我查看实际文件时,index.js非常简单。我不知道为什么这个库的所有者将它标记为1.0.0,因为它没有做太多...(我认为这是一个&#34;突破性变化&#34;从技术上讲)

无论如何,我将我的版本恢复为0.1.3,它似乎现在正常工作。此外,我不得不摆脱我的vendorFiles选项中的测试加载器部分,因为我不再需要它。

感谢您考虑我的问题!

答案 2 :(得分:0)

在项目文件夹中运行命令:

D:\Latest\eswari\develop-16.2.1\jefferson>bower install --save ember-cli-test-loader#0.1.3

答案 3 :(得分:0)

package.json或bower.json文件不再明确要求ember-cli-test-loader包。您今天看到错误的可能原因是项目中的过时依赖项。