由于国内访问Amazon S3比较慢,导致通过npm下载二进制文件依赖时会中断或者直接下不动,所以需要在npm
命令后面加上--{module_name}_binary_host_mirror
,其中module_name
存在于package.json
中。每个模块名称又不一样(例如:sqlite3
的模块名为node_sqlite3
)这时可以通过npm view sqlite3 binary
或者指定版本npm view sqlite3@3.1.3 binary
查询到模块名称而不需要去仓库查看打印结果如下:
$ npm view sqlite3@3.1.3 binary
{ module_name: 'node_sqlite3',
module_path: './lib/binding/{node_abi}-{platform}-{arch}',
host: 'https://mapbox-node-binary.s3.amazonaws.com',
remote_path: './{name}/v{version}/{toolset}/',
package_name: '{node_abi}-{platform}-{arch}.tar.gz' }
找到模块名称后组成--node_sqlite3_binary_host_mirror
,再添加上淘宝 NPM 镜像组合成完整的命令npm install sqlite3 --node_sqlite3_binary_host_mirror=https://npm.taobao.org/mirrors
。需要注意的是镜像地址的路径host
、remote_path
和package_name
组合以后的地址是否正确。
如果在安装依赖时遇到node-gyp
权限的问题可以加上--unsafe-perm
配置
参考