共计 568 个字符,预计需要花费 2 分钟才能阅读完成。
问题背景
公司的 npm 仓库未跟外网联通 (为什么不联通,我也好鸡儿纳闷),使用 Jenkins 构建前端时,会在下载 node-sass 的.node 时报错。默认情况下会从 github 上去下.node 文件,当然也可以通过配置.npmrc 文件指定下载路径:`sass_binary_site=https://npm.taobao.org/mirror…`
解决办法
首先,在 package.json 文件中写死 node-sass 的版本,因为版本写死后,.node 文件的版本就固定了。然后,将对应版本的.node 文件放到 git 代码库里,如:/vendor/linux-x64-57/binding.node 在 npm install 时添加 node-sass 变量:npm i –sass_binary_path=xx/yy/vendor/linux-x64-57/binding.node 注意:指定的路径要用绝对路径。这样,在下载时候,不会从 github 去下载.node 文件了,从而也不会因网络不通中断下载依赖过程。npm install 完成后,node_modules 中已有了 node-sass 了,但是对应的.node 文件还未拷贝进去,这时,你还需要做一步拷贝动作,将代码库中的 vendor 拷贝到 /node_modules/node-sass/ 下,到此就 ok 了。
正文完
发表至: javascript
2019-01-14