这个Node实例的N-API版本是1.这个模块支持N-API个版本3.这个Node实例不能运行这个模块
The N-API version of this Node instance is 1. This module supports N-API version(s) 3. This Node instance cannot run this module
我有一个简单的 nodejs 应用程序,它使用 bcrypt 作为依赖项。在我的本地机器上一切正常,但是当我尝试在 aws ec2 免费层上部署此节点应用程序时,出现此错误。看起来免费层中有一些服务器限制,但 bcrypt 是一个标准库。必须有一种方法 运行 aws 免费层上的简单节点应用程序
bcrypt@4.0.1 install /home/ubuntu/backend/node_modules/bcrypt
node-pre-gyp install --fallback-to-build
node-pre-gyp WARN Using request for node-pre-gyp https download
node-pre-gyp ERR! install error
node-pre-gyp ERR! stack Error: The N-API version of this Node instance is 1. This module supports N-API version(s) 3. This Node instance cannot run this module.
node-pre-gyp ERR! stack at Object.module.exports.validate_package_json (/home/ubuntu/backend/node_modules/node-pre-gyp/lib/util/napi.js:82:9)
node-pre-gyp ERR! stack at validate_config (/home/ubuntu/backend/node_modules/node-pre-gyp/lib/util/versioning.js:229:10)
node-pre-gyp ERR! stack at Object.module.exports.evaluate (/home/ubuntu/backend/node_modules/node-pre-gyp/lib/util/versioning.js:279:5)
node-pre-gyp ERR! stack at install (/home/ubuntu/backend/node_modules/node-pre-gyp/lib/install.js:241:31)
node-pre-gyp ERR! stack at Object.self.commands.(anonymous function) [as install] (/home/ubuntu/backend/node_modules/node-pre-gyp/lib/node-pre-gyp.js:52:37)
node-pre-gyp ERR! stack at run (/home/ubuntu/backend/node_modules/node-pre-gyp/bin/node-pre-gyp:82:30)
node-pre-gyp ERR! stack at Object.<anonymous> (/home/ubuntu/backend/node_modules/node-pre-gyp/bin/node-pre-gyp:134:1)
node-pre-gyp ERR! stack at Module._compile (module.js:652:30)
node-pre-gyp ERR! stack at Object.Module._extensions..js (module.js:663:10)
node-pre-gyp ERR! stack at Module.load (module.js:565:32)
node-pre-gyp ERR! System Linux 4.15.0-1057-aws
node-pre-gyp ERR! command "/usr/bin/node" "/home/ubuntu/backend/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build"
node-pre-gyp ERR! cwd /home/ubuntu/backend/node_modules/bcrypt
node-pre-gyp ERR! node -v v8.10.0
node-pre-gyp ERR! node-pre-gyp -v v0.14.0
node-pre-gyp ERR! not ok
The N-API version of this Node instance is 1. This module supports N-API version(s) 3. This Node instance cannot run this module.
npm WARN optional Skipping failed optional dependency /chokidar/fsevents:
npm WARN notsup Not compatible with your operating system or architecture: fsevents@2.1.2
npm ERR! Linux 4.15.0-1057-aws
npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "i" "bcrypt"
npm ERR! node v8.10.0
npm ERR! npm v3.5.2
npm ERR! code ELIFECYCLE
npm ERR! bcrypt@4.0.1 install: `node-pre-gyp install --fallback-to-build`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the bcrypt@4.0.1 install script 'node-pre-gyp install --fallback-to-build'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the bcrypt package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node-pre-gyp install --fallback-to-build
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs bcrypt
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! npm owner ls bcrypt
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! /home/ubuntu/backend/npm-debug.log
如何在 ec2 免费套餐上安装 bcrypt?
我遇到了这个问题,我的问题是使用旧版本的节点 (5.X),当时需要版本 >= 10。
因此解决方案可能与升级 node/npm 一样简单。您可以轻松地做到这一点 using nvm,“节点版本管理器”
NVM 安装
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash
Output
=> Close and reopen your terminal to start using nvm or run the following to use it now:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
如上面的输出所示,您应该关闭并重新打开终端或 运行 命令将 nvm 脚本的路径添加到当前 shell 会话。你可以做任何对你来说更容易的事情。
安装nvm
后,只需运行执行此命令即可安装和使用特定版本的节点:
nvm install <version>
例如:
$ nvm install v10.16.3 // Thanks @Joe for your help :)
$ node --version
v10.16.3
升级node到版本>10后,可以安装bcrypt
$ npm install bcrypt
收到此错误消息或类似消息:
$ npm install -g sqlite3
npm WARN prefer global node-gyp@3.8.0 should be installed with -g
> sqlite3@5.0.0 install /root/.nvm/node_modules/sqlite3
> node-pre-gyp install --fallback-to-build
node-pre-gyp WARN Using request for node-pre-gyp https download
node-pre-gyp ERR! install error
node-pre-gyp ERR! stack Error: The N-API version of this Node instance is 1. This module supports N-API version(s) 3. This Node instance cannot run this module.
- 下载最新节点:(我有 ubuntu,所以 url 可能不同)
curl -sL <a href="https://deb.nodesource.com/setup_current.x" rel="nofollow noreferrer">https://deb.nodesource.com/setup_current.x</a> | sudo -E bash -
- 安装它:
sudo apt-get install -y nodejs
再次尝试安装sqlite:
$ npm install -g sqlite3
added 120 packages, and audited 120 packages in 6s
2 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
我有一个简单的 nodejs 应用程序,它使用 bcrypt 作为依赖项。在我的本地机器上一切正常,但是当我尝试在 aws ec2 免费层上部署此节点应用程序时,出现此错误。看起来免费层中有一些服务器限制,但 bcrypt 是一个标准库。必须有一种方法 运行 aws 免费层上的简单节点应用程序
bcrypt@4.0.1 install /home/ubuntu/backend/node_modules/bcrypt
node-pre-gyp install --fallback-to-build
node-pre-gyp WARN Using request for node-pre-gyp https download
node-pre-gyp ERR! install error
node-pre-gyp ERR! stack Error: The N-API version of this Node instance is 1. This module supports N-API version(s) 3. This Node instance cannot run this module.
node-pre-gyp ERR! stack at Object.module.exports.validate_package_json (/home/ubuntu/backend/node_modules/node-pre-gyp/lib/util/napi.js:82:9)
node-pre-gyp ERR! stack at validate_config (/home/ubuntu/backend/node_modules/node-pre-gyp/lib/util/versioning.js:229:10)
node-pre-gyp ERR! stack at Object.module.exports.evaluate (/home/ubuntu/backend/node_modules/node-pre-gyp/lib/util/versioning.js:279:5)
node-pre-gyp ERR! stack at install (/home/ubuntu/backend/node_modules/node-pre-gyp/lib/install.js:241:31)
node-pre-gyp ERR! stack at Object.self.commands.(anonymous function) [as install] (/home/ubuntu/backend/node_modules/node-pre-gyp/lib/node-pre-gyp.js:52:37)
node-pre-gyp ERR! stack at run (/home/ubuntu/backend/node_modules/node-pre-gyp/bin/node-pre-gyp:82:30)
node-pre-gyp ERR! stack at Object.<anonymous> (/home/ubuntu/backend/node_modules/node-pre-gyp/bin/node-pre-gyp:134:1)
node-pre-gyp ERR! stack at Module._compile (module.js:652:30)
node-pre-gyp ERR! stack at Object.Module._extensions..js (module.js:663:10)
node-pre-gyp ERR! stack at Module.load (module.js:565:32)
node-pre-gyp ERR! System Linux 4.15.0-1057-aws
node-pre-gyp ERR! command "/usr/bin/node" "/home/ubuntu/backend/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build"
node-pre-gyp ERR! cwd /home/ubuntu/backend/node_modules/bcrypt
node-pre-gyp ERR! node -v v8.10.0
node-pre-gyp ERR! node-pre-gyp -v v0.14.0
node-pre-gyp ERR! not ok
The N-API version of this Node instance is 1. This module supports N-API version(s) 3. This Node instance cannot run this module.
npm WARN optional Skipping failed optional dependency /chokidar/fsevents:
npm WARN notsup Not compatible with your operating system or architecture: fsevents@2.1.2
npm ERR! Linux 4.15.0-1057-aws
npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "i" "bcrypt"
npm ERR! node v8.10.0
npm ERR! npm v3.5.2
npm ERR! code ELIFECYCLE
npm ERR! bcrypt@4.0.1 install: `node-pre-gyp install --fallback-to-build`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the bcrypt@4.0.1 install script 'node-pre-gyp install --fallback-to-build'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the bcrypt package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node-pre-gyp install --fallback-to-build
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs bcrypt
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! npm owner ls bcrypt
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! /home/ubuntu/backend/npm-debug.log
如何在 ec2 免费套餐上安装 bcrypt?
我遇到了这个问题,我的问题是使用旧版本的节点 (5.X),当时需要版本 >= 10。
因此解决方案可能与升级 node/npm 一样简单。您可以轻松地做到这一点 using nvm,“节点版本管理器”
NVM 安装
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash
Output
=> Close and reopen your terminal to start using nvm or run the following to use it now:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
如上面的输出所示,您应该关闭并重新打开终端或 运行 命令将 nvm 脚本的路径添加到当前 shell 会话。你可以做任何对你来说更容易的事情。
安装nvm
后,只需运行执行此命令即可安装和使用特定版本的节点:
nvm install <version>
例如:
$ nvm install v10.16.3 // Thanks @Joe for your help :)
$ node --version
v10.16.3
升级node到版本>10后,可以安装bcrypt
$ npm install bcrypt
收到此错误消息或类似消息:
$ npm install -g sqlite3
npm WARN prefer global node-gyp@3.8.0 should be installed with -g
> sqlite3@5.0.0 install /root/.nvm/node_modules/sqlite3
> node-pre-gyp install --fallback-to-build
node-pre-gyp WARN Using request for node-pre-gyp https download
node-pre-gyp ERR! install error
node-pre-gyp ERR! stack Error: The N-API version of this Node instance is 1. This module supports N-API version(s) 3. This Node instance cannot run this module.
- 下载最新节点:(我有 ubuntu,所以 url 可能不同)
curl -sL <a href="https://deb.nodesource.com/setup_current.x" rel="nofollow noreferrer">https://deb.nodesource.com/setup_current.x</a> | sudo -E bash -
- 安装它:
sudo apt-get install -y nodejs
再次尝试安装sqlite:
$ npm install -g sqlite3
added 120 packages, and audited 120 packages in 6s
2 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities