为什么Sencha CMD构建会因PhantomJS错误代码2而失败?

Dun*_*can 9 extjs phantomjs sencha-cmd extjs5

问题:为子项目A(具有源文件)构建Sencha CMD工作空间应用程序时"捕获主题时出错",但是子项目B(没有源文件)构建正常.

场景:

  1. 创建了新的Sencha工作区(CMD 5.1.0.26)并添加了一个新项目A.
  2. 项目A构建良好(sencha app build -c production)
  3. 我添加了一个主视图并引用了一个公共文件夹(/ project/common/js /)中包含的模块.

  4. sencha app watch工作正常,但sencha app build -c production现在在项目A上失败.

  5. 为了完整性检查,我在我的框架文件夹中生成一个新的应用程序,引用相同的ExtJS版本(5.1.0.107),让我们称之为项目B,它构建得很好.

项目A仍然失败并出现此错误:

[INF] Writing content to /MyWorkspace/ProjectA/sass/example/bootstrap.json
[INF] Writing content to /MyWorkspace/ProjectA/sass/example/bootstrap.js
[INF] Capturing theme image
[ERR] loading page /MyWorkspace/ProjectA/sass/example/theme.html
== Unhandled Error ==
TypeError: '''undefined''' is not a function (evaluating '''Ext.require([
    '''Ext.layout.Context'''
])''')

  file:///MyWorkspace/ext/packages/ext-theme-base/sass/example/render.js:7

[ERR]
[ERR] BUILD FAILED
[ERR] com.sencha.exceptions.ExProcess: phantomjs process exited with code 2
[ERR]
[ERR] Total time: 46 seconds
[ERR] The following error occurred while executing this line:
/MyWorkspace/ProjectA/.sencha/app/slice-impl.xml:306: The following error occurred while executing this line:
/MyWorkspace/ProjectA/.sencha/app/slice-impl.xml:307: The following error occurred while executing this line:
/MyWorkspace/ProjectA/.sencha/app/slice-impl.xml:163: com.sencha.exceptions.ExProcess: phantomjs process exited with code 2
Run Code Online (Sandbox Code Playgroud)

解决方法: 我现在通过编辑sencha.cfg和添加行阻止了错误: skip.slice=1

但是/MyWorkspace/ProjectA/sass/,失败的项目A和项目B之间的文件是相同的,除了引用应用程序名称的文件中的内容略有不同,但这就是全部.

ExtJS文件很少,我已经完成了差异的手动浏览,除了bootstrap.json视觉脱脂之外不再适用.

我最感兴趣的是,如果有人指出这些项目之间可能缺失或不同的东西,这些项目似乎导致我的框架的一部分在评估第7行时需要丢失render.js.

如果您需要更多支持信息,请与我们联系.谢谢!

小智 1

在构建 extjs 应用程序时,我们遇到了这个错误

com.sencha.exceptions.ExProcess: phantomjs process exited with code 1
Run Code Online (Sandbox Code Playgroud)

解决方案:

我们从这里下载了最新版本的phantomjs ,并用cmd替换了phantomjs.exe文件

phantomjs.exe "cmd/bin.windows/phantomjs/phantomjs.exe"
Run Code Online (Sandbox Code Playgroud)

它对我们有用。