npm安装包错误|npm安装包错误 (bcrypt )
概述
通过npm官网下载三方安装包
偶尔会出现安装失败的情况
即便是安装完毕,且在package.json已经存在依赖项目,但是其实node_modules中也存在缺少核心文件的情况,在运行时候会报错
一般出现这个情况,可以查看下npm官网上的包信息
包的版本,是否符合环境的版本
查看:
Version Compatibility(版本兼容性)
以bcrypt为例,其版本需要node版本与之适应,如:
Node Version | Bcrypt Version |
---|---|
8 | >= 1.0.3 |
10, 11 | >= 3 |
12 | >= 3.0.6 |
gyp ERR! stack Error: "pre" versions of node cannot be installed, use the --nodedir flag instead
安装包是否有无安装必备的电脑环境变量
查看:
Dependencies (依赖项)
以bcrypt为例,依赖项如下等:
NodeJS
node-gyp
Python 2.x
报错信息:
缺少python环境
注:
有的包存在明确的版本号,如 Python 2.x ,其环境版本信息要符合要求
安装 bcrypt 失败 (典型例子) 【npm安装包错误|npm安装包错误 (bcrypt )】【 问题的原因】:
- 缺少python2.x环境引起的问题
下载:
https://www.python.org/downloads/release/python-2716/
安装:(注意勾选添加环境变量)
文章图片
添加至环境变量 默认是阻止添加到环境变量的,
如果选择默认,
后续自行添加python到系统环境变量会失败
(重启也不好使,不知道原因)- 在已经添加python环境的情况下,仍警告,且报错,添加失败
node-pre-gyp WARN Using needle for node-pre-gyp https download
node-pre-gyp WARN Tried to download(404): https://github.com/kelektiv/node.bcrypt.js/releases/download/v3.0.7/bcrypt_lib-v3.0.7-node-v64-win32-x64-unknown.tar.gz
node-pre-gyp WARN Pre-built binaries not found for bcrypt@3.0.7 and node@10.16.0 (node-v64 ABI, unknown) (falling back to source compile with node-gyp)
总是说这个404
https://github.com/kelektiv/node.bcrypt.js/releases/download/v3.0.7/bcrypt_lib-v3.0.7-node-v64-win32-x64-unknown.tar.gz
【解决方法】:
1.打开命令窗口法1(管理员身份打开cmd)
找到(C:\WINDOWS\system32\cmd.exe)文件,右键以管理员身份运行
1.2.打开命令窗口法2 (使用管理员身份打开powerShell)
文章图片
powerShell管理员运行 1.3 补充 两者区别
PowerShell是跨平台的,cmd是Windows专用的。
PowerShell有面向对象的管道。
PowerShell能够调用.NET的很多功能
2.安装node 的Python的编译
npm install -g node-gyp
3.添加window构建工具(Visual Studio Build Tools)
如果已经安装了python就不再安装了,
如果没有安装,会进行自动安装
npm install --global --production windows-build-tools
文章图片
安装VS构建工具
4.如果是上一步,自动安装的python,需要手动配置项目python环境
npm config set python Python 2.7.16
(Python 2.7.16 你安装的版本号)或
npm config set python "D:\mysoft\python\python.exe"
(python.exe 你安装的执行文件地址)- 再次尝试npm install bcrypt -S,
解决方法:
使用
cnpm install bcrypt -S
,应该可以安装成功了2.如果单纯是警告,不在报错,则可以忽略了
node-pre-gyp WARN Using needle for node-pre-gyp https download
node-pre-gyp WARN Tried to download(404): https://github.com/kelektiv/node.bcrypt.js/releases/download/v3.0.7/bcrypt_lib-v3.0.7-node-v64-win32-x64-unknown.tar.gz
node-pre-gyp WARN Pre-built binaries not found for bcrypt@3.0.7 and node@10.16.0 (node-v64 ABI, unknown) (falling back to source compile with node-gyp)+ bcrypt@3.0.7
added 57 packages from 46 contributors and audited 296 packages in 36.877s
found 0 vulnerabilities
终于安装成功了~~~!
疑问:
不太明白,为什么在npm上 bcrypt的依赖项目中 标明了Python 2.x,
在安装了 Python 2.7.16 且添加至环境变量的情况下,
使用npm安装,依然去找一个
https://github.com/kelektiv/node.bcrypt.js/releases/download/v3.0.7/bcrypt_lib-v3.0.7-node-v64-win32-x64-unknown.tar.gz
,然后给你报错在linux的centos下,安装"bcrypt": "^3.0.7" 版本错误 1.通过npm三方包 n , 将nodejs版本降低到 v10.16.0
2.通过 使用 yum update 指令更新 python版本
3.查看路径 usr/lib/下的python版本 如果为2.7
测试没问题, 而nodejs最新12+版本报错
推荐阅读
- Mac安装Chromedriver
- MongoDB,Wondows下免安装版|MongoDB,Wondows下免安装版 (简化版操作)
- MAC安装Mongo
- 【Hadoop踩雷】Mac下安装Hadoop3以及Java版本问题
- react|react 安装
- VueX--VUE核心插件
- python-安装sublime遇到异常
- typeScript入门基础介绍
- 用npm发布一个包的教程并编写一个vue的插件发布
- 监控nginx