Test the Spartacus installation with schematics on Windows
本文介紹詳細步驟。
首先使用指令行安裝 verdaccio:
Install verdaccio $ npm i -g verdaccio@4 (only for the first time)
Verdaccio 是一個簡單的、零配置要求的本地私有 NPM 系統資料庫。 不需要整個資料庫就可以開始。 Verdaccio 開箱即用,帶有自己的小型資料庫,并且能夠代理其他系統資料庫(例如 npmjs.org),還引入了緩存下載下傳子產品的功能。 對于那些希望擴充其存儲能力的人,Verdaccio 支援各種社群制作的插件來連接配接到服務,例如 Amazon 的 S3、Google Cloud Storage 或建立自己的插件。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5CZlNTY5gTY1kTNwkTY0kTOzYjN0EGMlVmNjJmMiRGZk9CX5d2bs92Yl1iclB3bsVmdlR2LcNWaw9CXt92Yu4GZjlGbh5yYjV3Lc9CX6MHc0RHaiojIsJye.png)
使用下面的指令行添加新使用者:
npm adduser --registry http://localhost:4873
這樣,之後安裝 Spartacus 需要拖取依賴包時,可以從本地 verdaccio 資料庫裡讀取内容,而無需通過網絡讀取。
錯誤1:lsof command not found
lsof 指令用來檢查 verdaccio 是否已經正在運作了:
verdaccio 用來注冊新使用者,完成之後需要結束該程序。
上面腳本的含義是,把 lsof 指令的結果存到變量 VERDACCIO_PID 裡,然後檢查該變量是否不為空。
-n 操作檢測後面的操作數是否為空。
if [ ! -n “$1” ] 的含義是,檢查第一個參數是否為空。-n 不為空,再用感歎号加個反,表示空。
等價于:
[ -z "$1" ]
1
-z 檢測第一個輸入參數是否為空。
$1 $2 代表第一個和第二個輸入參數,例如下面的 shell 腳本:
./foo bar baz
則 $1 為 bar,$2 為 baz
An unhandled exception occurred: EPERM: operation not permitted, open 'C:\Users\I042416.angular-config.json
在管理者模式下運作還是報同樣的錯誤。
也就是說,單獨執行這個指令都會報錯:
npm i -g @angular/[email protected]
結果打臉了,單獨執行上面的指令可以。這真是怪事。
還是老問題,把這個 .angular-config.json 檔案的隐藏屬性去掉即可:
解決了這個問題之後,就開始 build 了:
成功安裝:
The installation will create two folders in the $BASE_DIR directory:
apps (generated/executable apps)
clone (cloned Spartacus repo)
FESM2015
UMD
開始建構了:
建構結果:
執行的是這些 ng build 指令:
這裡多了一個 Schematics build:
這個綠色的方框正好隻比包裹在裡面的字元串多兩個字元:
通過 printh 函數實作:
publish 到一個私有的 npm 倉庫去,然後從這個私有的倉庫下載下傳庫檔案進行 shell app 的安裝:
shell app 的安裝,在 create_apps 函數裡完成:
本地存儲的定義:
本地 library:
可以解壓檢視這些本地 library 内容:
完整的源代碼: