Nodejs npm install sqlite 怎么提示'node-waf' 不是内部或外部命令,也不是可运行的程序,不是说在node9.1就没有node-waf这个命令吗

Nodejs npm install sqlite 怎么提示’node-waf’ 不是内部或外部命令,也不是可运行的程序,不是说在node9.1就没有node-waf这个命令吗

… 你应该去下载

npm install sqilte3 ..
5 回复

当您尝试使用 npm install sqlite 安装 SQLite 相关模块时,如果遇到错误信息 'node-waf' 不是内部或外部命令,也不是可运行的程序,这通常是因为某些模块依赖于 node-gyp 而非 node-wafnode-waf 在较新的 Node.js 版本中已经被弃用,并且不再被使用。

解决方案

您需要安装 sqlite3 模块而不是 sqlite,因为 sqlite3 是一个更广泛使用的、支持 Node.js 的 SQLite 库。此外,确保您已经安装了必要的构建工具和依赖库。

步骤 1: 安装 node-gyp

node-gyp 是一个用于编译 Node.js 模块的工具。您可以使用以下命令安装它:

npm install -g node-gyp

步骤 2: 安装 Visual Studio 构建工具(仅限 Windows)

对于 Windows 用户,您需要安装 Visual Studio 构建工具。可以通过运行以下命令来安装:

npm install --global --production windows-build-tools

步骤 3: 安装 sqlite3 模块

现在,您可以尝试安装 sqlite3 模块:

npm install sqlite3

示例代码

如果您正在编写一个简单的 Node.js 应用来测试 sqlite3 模块,可以参考以下代码:

const sqlite3 = require('sqlite3').verbose();
let db = new sqlite3.Database(':memory:', (err) => {
    if (err) {
        console.error(err.message);
    }
    console.log('Connected to the in-memory SQlite database.');
});
db.serialize(() => {
    db.run("CREATE TABLE lorem (info TEXT)");
    const stmt = db.prepare("INSERT INTO lorem VALUES (?)");
    for (let i = 0; i < 10; i++) {
        stmt.run("Ipsum " + i);
    }
    stmt.finalize();
    db.each("SELECT rowid AS id, info FROM lorem", (err, row) => {
        if (err) {
            console.error(err.message);
        }
        console.log(row.id + ": " + row.info);
    });
});
db.close();

这段代码创建了一个内存中的 SQLite 数据库,并向其中插入了一些数据,然后读取并打印出来。

通过遵循上述步骤,您应该能够解决 'node-waf' 不是内部或外部命令 的问题,并成功安装和使用 sqlite3 模块。


sqlite …作者早就弃了…

sqlite3 才是你的选择…非常不错的库,还做了pre-gyp 这个牛逼的功能.

话说…下载包之前…不上npm 先看一下…吗…

好久没来看了,是的我现在用sqlite3了,但是实在centos下 谢谢youxiachai 3楼

对于npm install sqlite命令中出现的'node-waf' 不是内部或外部命令,也不是可运行的程序错误,通常是因为某些依赖项需要编译C++代码。在较新的Node.js版本中,node-waf已被弃用,并且不再使用。

解决方案是安装node-gyp,这是一个用于编译Node.js扩展模块的工具。你可以通过全局安装node-gyp来解决这个问题:

npm install -g node-gyp

另外,确保你已经正确安装了Python(建议安装2.7.x版本),并且环境变量已正确配置,因为node-gyp依赖于Python进行编译。你还需要安装Microsoft Build Tools(Windows)或Xcode(macOS)等构建工具。

如果你仍然遇到问题,可以尝试以下步骤:

  1. 安装所需的构建工具:

    • Windows:
      npm install --global windows-build-tools
      
    • macOS:
      xcode-select --install
      
  2. 安装sqlite3模块,而不是sqlite:

    npm install sqlite3
    

如果按照上述步骤操作后问题依旧存在,请提供具体的错误信息,以便进一步排查。

示例代码

如果你只是想安装sqlite相关的库,推荐安装sqlite3模块:

npm install sqlite3

这将自动处理所需的依赖关系并进行必要的编译。如果在安装过程中遇到任何错误,请根据错误信息调整环境配置。

回到顶部