日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

搭建远程仓库(源)来托管 Sencha 包(Package)

發布時間:2024/1/8 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 搭建远程仓库(源)来托管 Sencha 包(Package) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文鏈接:https://blog.csdn.net/lovelyelfpop/article/details/78702191

在 之前的文章 中,我已經展示了如何使用本地 package。在本文中,我將向您展示如何在自己的服務器上創建和托管遠程 package。

要求

對于這篇文章,你需要 Sencha CMD 和 一個網站空間,用來托管你的 package。這可以托管在您的企業內部服務器上或互聯網上。如果您在www.your-company.com下有一個可用的網站空間,您可以創建一個子域“sencha”或“cdn”,來為您的包提供服務。
只要托管可以訪問靜態資源,即滿足 GET 請求即可。

網站空間的配置

在您的web空間(我們假設cdn.your-company.com)您創建以下文件夾結構:cmd/packages。
這將指向URL:cdn.your-company.com/cmd/packages。

添加遠程倉庫

使用Sencha CMD,我們可以通過以下命令來查看當前遠程倉庫的列表:

sencha repository list

它會顯示當前遠程倉庫的列表。默認情況下會顯示

Sencha Cmd v6.5.2.15 [INF] Remote repository connections (1): [INF] [INF] sencha - http://cdn.sencha.com/cmd/packages/

現在我們創建一個新的遠程倉庫,鏈接到 cdn.your-company.com/cmd/packages。我們打算把這個庫稱為“demo”。我們通過以下命令來完成此操作:

sencha package repo add "demo" http://cdn.your-company.com/cmd/packages

這將添加對遠程倉庫的引用。

然后執行:

sencha package repo init -name "demo" -email "email@your-company.com"

將用 name 和 email 指定的身份來初始化您的本地倉庫。

這樣,你的遠程倉庫列表(sencha倉庫列表)應該如下所示:

Sencha Cmd v6.5.2.15 [INF] Remote repository connections (2): [INF] [INF] sencha - http://cdn.sencha.com/cmd/packages/ [INF] demo - http://cdn.your-company.com/cmd/packages/

創建你的 Ext JS 包

使用Sencha CMD,您可以在 workspace/應用程序 中執行以下命令:

sencha generate package MyPackage

現在, 你的 workspace/應用程序 的 packages/local 文件夾中就多了一個 MyPackage。

package.json

我們必須修改 packages/loca/MyPackage 文件夾中的 package.json 文件。它可能是這樣的

{"name": "MyPackage","namespace": "MyPackage","type": "code","framework": "ext","toolkit": "classic","creator": "demo","summary": "For demo purpose","detailedDescription": "Demo use only","version": "1.0.0","compatVersion": "1.0.0","format": "1","slicer": {"js": [{"path": "${package.dir}/sass/example/custom.js","isWidgetManifest": true}]},"output": "${package.dir}/build","local": true,"sass": {"namespace": "Factory","etc": "${package.dir}/sass/etc/all.scss,${package.dir}/${toolkit.name}/sass/etc/all.scss","var": "${package.dir}/sass/var,${package.dir}/${toolkit.name}/sass/var","src": "${package.dir}/sass/src,${package.dir}/${toolkit.name}/sass/src"},"classpath": "${package.dir}/src,${package.dir}/${toolkit.name}/src","overrides": "${package.dir}/overrides,${package.dir}/${toolkit.name}/overrides","example": {"path": ["${package.dir}/examples"]},"requires": [] }

重要的是這個文件中的 creator 鍵。它應該匹配我們之前創建的遠程倉庫的名稱。無論您為倉庫起的什么名稱,應該僅使用1個單詞,因為 Windows 不能很好地處理帶空格的多個單詞,比如“Demo Repo”。

指定清楚這個 package 被哪個 framework 使用也很重要。

"framework": "ext", "toolkit": "classic",

你可以刪除你不需要的鍵,比如 example,sass,overrides,slicer。然后,您也可以刪除相應的文件夾來清理包的結構。

構建 package 用于遠程托管

在我們準備好了第一個版本并維護了我們的代碼后,就可以發布這個 package 了。首先,我們必須 build(構建)一下 package。

在我們的 package 的根目錄下,執行命令:

sencha package build

完成此操作后,package 目錄下將出現一個 build 文件夾,它是構建后的輸出目錄。然后進入應用程序根目錄下的build 目錄,您將注意到一個名為 MyPackage(或你自己取名的 package 的名稱)的文件夾。在這個文件夾中,有一個名為 MyPackage.pkg 的文件。

這個文件是剛構建的 package 的壓縮版本。現在我們把這個文件添加到本地倉庫“demo”中。

我們在應用程序根目錄下的 build/MyPackage 文件夾下執行下面的命令:

sencha package add MyPackage.pkg

完成后,它會把該包放入 Sencha CMD 安裝路徑的 cmd 文件夾中。

如果是Windows系統,你可以在 C:\Users\用戶名\bin\Sencha\Cmd\repo\pkgs 文件夾中找到。

如果是Linux,可以在 /root/bin/Sencha/Cmd/repo/pkgs 文件夾中找到它。

在這個文件夾中,就多了一個名為 MyPackage 的文件夾。

托管你的 package

剩下的事情就是復制 bin/Sencha/Cmd/repo/pkgs 目錄下的 MyPackage 文件夾到我們的網站空間。您可以使用 FTP 軟件來執行此操作。

你把 MyPackage 文件夾放到 你的網站空間的 packages 文件夾下!還要確保 catalog.json 更新到最新的版本!

它應該是這樣的:

該目錄只有一個名為 Factory 的包。它包含4個版本:

你的遠程倉庫現在可以被 Sencha CMD 發現了:
cdn.your-company.com/cmd/packages/MyPackage。

每次您 使用Sencha CMD 進行 sencha app watch 或 sencha app refresh 或 sencha app build 時,它都會檢查遠程倉庫以獲取最新版本的 package。

package 的版本管理

如果修改了 package 的源代碼,則應該也要更新到遠程倉庫。這只需要幾個步驟即可更新 package 的版本。

  • 改變你的 package.json 文件并修改 version 鍵
  • build(構建)你的 package: sencha package build
  • 將構建后的 package 添加到你的本地倉庫:sencha package add MyPackage.pkg(在 build 目錄下執行改命令)
  • 把 bin/Sencha/Cmd/repo/pkgs 中的文件夾上傳到您的網站空間下

完成之后,文件夾可能看起來像這樣

如何在您的應用程序中使用該 package

要在您的應用程序中使用該 package,您必須修改應用程序根文件夾中的 app.json 文件。您必須按以下方式更改 requires 鍵:

"requires": ["font-awesome","jarvus-hotfixes","MyPackage" //這里 ],

或者根據所使用的具體 toolkit 修改 requires 鍵:

"classic": {"js": [{"path": "${framework.dir}/build/ext-all-rtl-debug.js"}],"requires": ["ext-locale","MyPackage" //這里],"locale": "de" },

一些常用的倉庫和 package 命令

  • 在你的應用程序的根目錄下執行:
    sencha app refresh -packages
    這個命令會刷新你的應用程序使用到的 package,如果你的遠程倉庫的包更新了,就執行這個命令

  • sencha repository list, 列出可用的遠程倉庫

  • sencha package list, 列出所有可用的 package

  • sencha repo sync -name "demo" 可以刷新本地的緩存
    如果遇到遠端發布了新版本 package,但用 sencha app refresh -packages 硬是更新不到本地,就可以執行上面這個命令刷新緩存

同步遠程 package 的問題(重要)

有時候會發生這樣的情況:在將 package 上傳到遠程倉庫,并用 sencha app refresh 命令刷新后,還是沒有更新(下載)到最新版本。
這種情況,您可能需要執行以下命令來清除本地緩存:

sencha repo sync

完成之后,執行以下命令:

sencha package get <name_of_package>

將從遠程倉庫下載完整的 package。

如何刪除 package 的最新版本

如果您的 workspace/應用程序 需要回退到舊版本的 package,可以執行:

sencha remove package <name_of_package>

這個命令不會從您的遠程倉庫服務器或者本地倉庫中刪除 package,但會從 workspace/應用程序 中刪除最新版本的 package。如果您有多個版本需要回退,則可以多次輸入此命令。

參考

Creating Sencha Cmd Packages

翻譯自

https://www.enovision.net/use-and-host-your-own-ext-js-remote-packages/

總結

以上是生活随笔為你收集整理的搭建远程仓库(源)来托管 Sencha 包(Package)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。