概述
在實際的開發工作中,項目是採用前後端分離的。前端項目使用的是Angular框架(不是AngularJS)。通過官方提供的 Angular Cli可以快速創建項目的腳手架。IDE也很好的集成了Angular Cli,開發組件、指令、Service等等就可以通過功能菜單,方便簡潔。
Angular使用的npm的方式對項目進行管理的。npm命令可以很方面的從npm庫中安裝依賴的類庫。實際開發時,操作是非常簡單的,因為開發電腦是連網的。但是,通過公司內部的持續集成工具,發佈Angular項目時,卻遇到了一個問題:Angular需要去github下載node-sass,npm中央庫中沒有該類庫!
此時就需要通過離線的方式去安裝node-sass,避免npm去連接github。
解決問題
1. 查看服務器的node版本
"scripts": {
"preinstall": "node -p \\"[process.platform, process.arch, process.versions.modules].join('-')\\" ",
}
配置 preinstall 查看服務器的node版本信息
可以看到版本信息為: linux-64x-57 .
2. 下載node-sass
然後去Github上下載對象的node-sass版本,下載地址:https://github.com/sass/node-sass/releases
3. 配置離線信息
將對應的node下載後,放到前端項目裡面:
- 在項目里根目錄下新建lib文件夾
- 將下載的 linux-x64-57_binding.node 複製到lib中
- 配置package.json中,sass的離線配置
"nodeSassConfig": {
"binaryPath": "./lib/linux-x64-57_binding.node"
}
此時再在服務器上進行發佈前端項目,就可以看到node-sass的安裝不再會去請求github了。
結論
現在有的項目依賴管理工具如Maven, npm等等,在有外網環境的情況下,使用起來是非常方便的。但是如果脫離了互聯網,那將是開發者的噩夢,猶如回到了遠古時代。作為開發者,在用慣了打火機的年代,還是需要了解一下如何鑽木取火的。
閱讀更多 大王TinyKing 的文章