ember build command fails with error: no such file or directory, lstat ..../ember-cli-test-loader/test-loader

ember build command fails with error: no such file or directory, lstat ..../ember-cli-test-loader/test-loader

我最近更新了 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

的新手

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

我的 test-loader 版本是 1.0.0。当我查看实际文件时,index.js 非常简单。我不知道为什么这个库的所有者将它标记为 1.0.0,因为它没有做太多......(我想它在技术上是 "breaking change")

无论如何,我将我的版本恢复为 0.1.3,它现在似乎可以工作了。此外,我不得不删除 vendorFiles 选项中的 test-loader 部分,因为我不再需要它。

感谢您考虑我的问题!

如果您查看 Releases,您会注意到最新版本设置为 0.2.2

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

我就此提交了 issue

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

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

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