溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

ExtJS(6)- 用Sencha Cmd構(gòu)建打包Ext項目

發(fā)布時間:2020-07-22 10:59:01 來源:網(wǎng)絡(luò) 閱讀:13515 作者:雪飄七月 欄目:編程語言

    用ExtJS組建前端框架有一年多了,考慮到ExtJS中js過多,為提高效率,所以開始尋找打包的方法,然后就發(fā)現(xiàn)了這個Sencha Cmd。首先Sencha Cmd不僅僅是為了打包而生的,它同樣具有構(gòu)建前端框架的作用。

    以下為所需的環(huán)境:

Sencha Cmd 下載地址:http://www.sencha.com/products/sencha-cmd/download/
Ruby 下載地址:http://rubyinstaller.org/downloads

Ant下載地址:http://ant.apache.org/bindownload.cgi


Ruby是為了使用其中的gem(類似于nodejs中的NPM)去下載sass和compass,而compass在build中起到編譯打包sass文件為css文件的作用。

Ruby安裝完成后會有g(shù)em一起安裝完成,由于國內(nèi)的網(wǎng)絡(luò),用gem加載sass與compass時要注意替換gem的resources地址,參照淘寶提供的鏡像,


1、創(chuàng)建workspace:

sencha generate workspace /path/to/workspace

2、創(chuàng)建項目

sencha generate app -ext MyApp /path/to/MyApp

3、build項目

此處sencha命令需要到MyApp目錄下執(zhí)行

sencha app build

4、sencha運行

sencha web start

登陸地址:

http://localhost:1841/MyApp/


其中build中多次遇到 MyApp\.sencha\app\build-impl.xml中報錯

一下提出一種解決方案:

1、在ext\cmd下的sencha.cfg起始處添加配置skip.sass=1

2、將ext\cmd下的sencha.cfg文件拷貝到MyApp\app目錄下

3、到MyApp目錄下sencha app build打包

4、將build\temp\production\MyApp\slicer-temp下的MyApp-example.css拷貝到build\production\MyApp\resources下,并更名為MyApp-all.css

5、重新執(zhí)行步驟3

出錯步驟還是存在于sass文件的編譯打包過程中,此處將本應(yīng)該生成到目標(biāo)地址的文件用文件替換的方式讓build繼續(xù)走下去。

如果大家有相應(yīng)的解決方案,請不吝賜教!


更換主題樣式

修改./app.js的一下內(nèi)容:

"theme": "ext-theme-crisp",

修改bootstrap.css

@import '../ext/packages/ext-theme-crisp/build/resources/ext-theme-crisp-all.css';

修改完成后重新編譯


添加圖表插件

如果要調(diào)用ext-charts:(此處解決方案借鑒stackoverflow)

1、重新編譯ext-charts,這一點很關(guān)鍵,也是解決ext5中l(wèi)egend異常的方案(問題可參照我的另一篇chart博客)

cp -R ext/packages/ext-charts ./packages/ext-charts
cd ./packages/ext-charts
sencha package build

2、./app.json中添加配置

"requires": [
    "ext-charts"
],

然后

sencha app refresh

或者重新編譯app

sencha app build

重新編譯時一定要把bootstrap.css修改回編譯前的樣式css

@import '../ext/packages/ext-theme-crisp/build/resources/ext-theme-crisp-all-rtl.css';

編譯后的樣子是

@import '../build/production/MyApp2/resources/MyApp-all.css';

若以此形式重新編譯就會出現(xiàn)legend顯示異常等問題


打包測試模式

打包后的測試模式可以進(jìn)行調(diào)試,代碼未壓縮混淆,但文件已合并為production形式

sencha app build testing

testing打包后位置為 build\testing\MyApp


chart的production版本圖表異常

引用ext-charts后在workspace中調(diào)試正常,

但是build時沒有報錯,且build production后圖表顯示異常,報錯僅是

.js not found

然后我們需要采用testing模式來調(diào)試就能看到真正的報錯,發(fā)現(xiàn)是缺少 'axis.numeric','axis.category','series.column'等引用,在打包后的app.js中也找不到這些js。

那我們要在哪里添加這些模塊呢,我們需要在具體引用這些模塊的地方

requires:[
        "Ext.chart.series.Column",
        "Ext.chart.axis.Numeric",
        "Ext.chart.axis.Category"
    ],

這個問題要感謝這篇stack overflow提供的思路。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI