我有一个现有的Sencha Touch 2.3.1 MVC应用程序,我想编译为使用Sencha CMD进行单个连接的javascript。使用Sencha CMD,我编译了一个引导程序文件和包含我所有javascript的单个连接文件,但是当我运行应用程序时,我可以在Chrome检查器中看到应用程序正在下载单个javascript文件。
这是我用来将现有应用编译成一个文件的行(此时未压缩):
sencha -sdk /path/touch-2.3.1/src compile --classpath=. --options=debug:false include --all and exclude --file=lib,one_file.js and concatenate --output-file=one_file.js
这就是我用来生成引导文件的原因:
sencha -sdk /path/touch-2.3.1/src compile -classpath=app meta -alias -out bootstrap.js and meta -alt -append -out bootstrap.js and meta -loader -append -base-path . -out bootstrap.js
以下是我的app.js的样子:
Ext.application({
name: 'MyApp',
appFolder: 'app',
glossOnIcon: false,
paths: {
'MyApp.ux': './app/ux',
'Ext.override': './app/override'
},
requires: [
'MyApp.Config',
'MyApp.File'
],
viewport: {
itemId: 'viewport'
},
stores: [
'store1',
'store2',
// ...
'store5'
],
models: [
'model1',
'model2',
//...
'model5'
],
views: [
'MainContainer',
'view1',
'view2',
//...
'view9'
],
controllers: [
'MainController',
'LoginController',
'AnotherController'
],
launch: function() {
MyApp.app = this;
Ext.create('MyApp.view.MainContainer', { fullscreen: true });
}
});
最后这就是我的index.html的样子:
<!DOCTYPE html>
<html>
<head>
<title>MyApp</title>
<link rel="stylesheet" type="text/css" href="css/my-theme.css"/>
<link rel="stylesheet" type="text/css" href="style.css"/>
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript" src="lib/touch2/sencha-touch-all-debug.js"></script> <script type="text/javascript" src="one_file.js"></script>
</head>
<body></body>
</html>
我们将非常感谢您的帮助。我花了很多天时间学习如何使用Sencha CMD,暂时陷入困境。应用程序运行正常但下载单个javascript文件。
答案 0 :(得分:-2)
不要使用“sencha compile”开始学习Sencha CMD。而是使用“sencha app build”。
默认情况下,Sencha CMD生成的新项目将配置为生成多个构建。默认为开发,可以通过运行命令“sencha app build”来完成。然而,这并没有真正编译/缩小/连接任何东西。
您关心的两个构建如下:
“sencha app build testing” - 将编译生成的构建,其中所有Sencha文件/类和附加/外部JS(app.json中的每个配置)组合成一个文件。生成的文件app.js不会因为调试而缩小。
“sencha app build production” - 将编译与上面相同,除了所有app.js(以及样式/主题)将被缩小。