尝试将 Ember 2.14.2 更新为 Ember 2.18.2 时出错

Have Error while try to Update Ember 2.14.2 to Ember 2.18.2

任何人请帮助我 Ember update.My 当前代码库是 2.14.2,我尝试更新 2.18。2.And 我收到以下错误。

Could not start watchman
Visit https://ember-cli.com/user-guide/#watchman for more info.
Cannot find module 
'/sampleApp/bower_components/ember/ember-template-compiler.js'

任何人,请指导我。如果您有其他升级ember版本的方法,请告诉我或帮助解决问题。

更新

完整堆栈轨道:

日志文件源

`ENV 摘要:

错误摘要:

- broccoliBuilderErrorStack: [undefined]
- code: MODULE_NOT_FOUND
- codeFrame: [undefined]
- errorMessage: Cannot find module 
'/Users/mariselvan/Documents/sampleApp/bower_components/ember/ember- 
template-compiler.js'
- errorType: [undefined]
- location:
- column: [undefined]
- file: [undefined]
 - line: [undefined]
- message: Cannot find module 
'/Users/mariselvan/Documents/sampleApp/bower_components/ember/ember- 
 template-compiler.js'
 - name: Error
 - nodeAnnotation: [undefined]
 - nodeName: [undefined]
 - originalErrorMessage: [undefined]
 - stack: Error: Cannot find module 
'/Users/mariselvan/Documents/sampleApp/bower_components/ember/ember- 
template-compiler.js'
  at Function.Module._resolveFilename 
 (internal/modules/cjs/loader.js:580:15)
at Function.Module._load (internal/modules/cjs/loader.js:506:25)
at Module.require (internal/modules/cjs/loader.js:636:17)
at require (internal/modules/cjs/helpers.js:20:18)
at Class.htmlbarsOptions (/Users/mariselvan/Documents/sampleApp/node_modules/ember-inplace-edit/node_modules/ember-cli-htmlbars/ember-addon-main.js:78:25)
at Object.toTree (/Users/mariselvan/Documents/sampleApp/node_modules/ember-inplace-edit/node_modules/ember-cli-htmlbars/ember-addon-main.js:31:36)
at /Users/mariselvan/Documents/sampleApp/node_modules/ember-cli-preprocess-registry/preprocessors.js:180:26
at Array.forEach (<anonymous>)
at processPlugins (/Users/mariselvan/Documents/sampleApp/node_modules/ember-cli-preprocess-registry/preprocessors.js:178:11)
at module.exports.preprocessTemplates (/Users/mariselvan/Documents/sampleApp/node_modules/ember-cli-preprocess-registry/preprocessors.js:161:10)

=================================================================================

Ember-项目的Cli版本:

ember-cli: 2.14.2
node: 10.13.0
os: darwin x64

提前致谢。

我 ember 在 ember 的后期 2.x 经历过类似的事情。基本上,ember 在 2.11 左右从 bower 切换到 npm。

您使用的是 emberember-source npm 版本吗?您的模板编译器查找在 bower 内搜索,如果您正确切换到 npm,这很可能是错误的!

有一个 issue 已修复,这可能是您的原因。通常,更新 ember 仅有版本是不够的。对我来说,更新到 ember-cli 版本总是最简单的,它的蓝图安装了您想要的 ember 版本(这将帮助您了解其他哪些核心依赖项需要更新)。浏览旧的发行说明在这里有帮助。

如果您使用的是旧的 ember-cli-htmlbars-inline-precompiler,您需要升级到:

 "ember-cli-htmlbars-inline-precompile": "^0.3.6"

如果不是其中任何一个,请使用完整的堆栈跟踪和 ember-cli 版本

更新您的问题

编辑:我想帮助您将来自己解决这个问题,所以这里是我如何得出结论的详细分类。在您的堆栈跟踪中,我们看到:

/Users/mariselvan/Documents/sampleApp/bower_components/ember/ember- 
template-compiler.js

这是在 bower 中寻找 ember,但由于您的 package.json 中有 ember-source,所以不再是这种情况。此错误源于

at Class.htmlbarsOptions (/Users/mariselvan/Documents/sampleApp/node_modules/ember-inplace-edit/node_modules/ember-cli-htmlbars/ember-addon-main.js:78:25)

所以这里的结论是ember-inplace-edit版本老了,需要自己升级或者修复。看看这个插件的 package.json,它有这个固定的依赖关系:

"dependencies": {
    "ember-cli-babel": "^5.1.3",
    "ember-cli-htmlbars": "0.7.9" // this was released Jun 12, 2015 
}

郑重声明,我的 ember 2.18 应用程序默认捆绑 "ember-cli-htmlbars": "^2.0.1"。因此,让我们转到 0.7.9 的发布版,下载源代码,并查看 :

中有问题的行
templateCompilerPath: function() {
    var config = this.projectConfig();
    var templateCompilerPath = config['ember-cli-htmlbars'] && config['ember-cli-htmlbars'].templateCompilerPath;

    if (!templateCompilerPath) {
      // THIS ONLY WORKS FOR BOWER VERSIONS OF EMBER
      templateCompilerPath = this.project.bowerDirectory + '/ember/ember-template-compiler'; 
    }

    return path.resolve(this.project.root, templateCompilerPath);
  }

所以你有几个合理的选择

  1. 修复插件并使其支持更高的 Ember 版本并打开 PR 以合并到上游(通过更新此 ember cli htmlbars 依赖项)
  2. 分叉插件并修复它而不合并上游并指向你的分叉
  3. 删除插件并重新设计应用程序的这一部分
  4. 使用 templateCompilerPath 选项指向您的 ember-source 版本(但这确实是最糟糕的选择)