概述
在实际的开发工作中,项目是采用前后端分离的。前端项目使用的是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等等,在有外网环境的情况下,使用起来是非常方便的。但是如果脱离了互联网,那将是开发者的噩梦,犹如回到了远古时代。作为开发者,在用惯了打火机的年代,还是需要了解一下如何钻木取火的。