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

时间:2019-01-23 12:30:45

标签: ember.js ember-cli

任何人都可以帮助我进行Ember更新。我当前的代码库是2.14.2,而我尝试更新2.18.2。我收到以下错误消息。

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'

任何人,请以此为指导。如果您还有其他方法可以升级余烬版本,请通知我或帮助解决该问题。

更新

完整堆栈跟踪:

日志文件源

`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

谢谢。

1 个答案:

答案 0 :(得分:1)

我记得在余烬2.x后期经历过类似的事情。基本上,余烬在大约2.11左右从凉亭切换到npm。

您是否正在使用ember-source的{​​{1}} npm版本?您的模板编译器查找是在ember内搜索,如果您正确地切换到了应该拥有的bower,则很可能是错误的!

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

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

ember

如果不是上述任何一种,请使用完整的堆栈跟踪和 "ember-cli-htmlbars-inline-precompile": "^0.3.6" 版本更新您的问题

编辑:我想帮助您将来自己解决此问题,因此,这是我得出结论的详细方式。在您的堆栈跟踪中,我们看到:

ember-cli

这是在/Users/mariselvan/Documents/sampleApp/bower_components/ember/ember- template-compiler.js 中寻找ember的情况,因为您的bower中有ember-source,因此不再是这种情况。此错误是由于

package.json

因此,这里的结论是at Class.htmlbarsOptions (/Users/mariselvan/Documents/sampleApp/node_modules/ember-inplace-edit/node_modules/ember-cli-htmlbars/ember-addon-main.js:78:25) 的版本较旧,您需要升级或修复自己。看看这个插件的package.json,它有这个固定的依赖性:

ember-inplace-edit

作为记录,我的ember 2.18应用默认情况下捆绑了"dependencies": { "ember-cli-babel": "^5.1.3", "ember-cli-htmlbars": "0.7.9" // this was released Jun 12, 2015 } 。因此,让我们转到0.7.9的发行版,下载源代码,然后查看:

中有问题的行
"ember-cli-htmlbars": "^2.0.1"

所以您有几个合理的选择

  1. 修复该插件并使其支持更高版本的Ember,并打开PR进行上游合并(通过更新此ember cli htmlbars依赖项)
  2. 在不合并上游的情况下分叉插件并对其进行修复,并指向您的叉子
  3. 删除插件并重新处理应用程序的这一部分
  4. 使用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); } 选项指向您的templateCompilerPath版本(但这实际上是最糟糕的选择)