拒绝安装sqlite3作为它自己的依赖

我有没有问题构build的最新版本的node.js。 我正在尝试为node.js使用一个sqlite模块。

对于由developmentseed开发的node-sqlite3,我遵循以下指示:

git clone git://github.com/developmentseed/node-sqlite3.git cd node-sqlite3 ./configure make 

我安装了npm:curl -k https://npmjs.org/install.sh | sudo sh

并使用npm:sudo npm install -g node-gyp安装了node-gyp

在node-sqlite3 configure -d和make-d好的之后,我试着用npm来安装,我得到这个:

 npm install sqlite3 npm WARN install Refusing to install sqlite3 as a dependency of itself 

当我研究这个错误,我发现这个问题: npm安装sqlite3错误,所以我试过:

  node-waf clean || true; node-waf configure build 

但得到这个错误:

 /usr/local/bin/../lib/node/wafadmin/Utils.py:136: DeprecationWarning: the md5 module is deprecated; use hashlib instead from md5 import md5 Waf: Please run waf from a directory containing a file named "wscript" or run distclean /usr/local/bin/../lib/node/wafadmin/Utils.py:136: DeprecationWarning: the md5 module is deprecated; use hashlib instead from md5 import md5 arg[0] directory does not contain a wscript file 

当我试图build立orlandov / node-sqlite时,我从git中得到了它,然后尝试:

 node-waf configure build 

但我得到这个错误:

 /usr/local/bin/../lib/node/wafadmin/Utils.py:136: DeprecationWarning: the md5 module is deprecated; use hashlib instead from md5 import md5 Checking for program g++ or c++ : /usr/bin/g++ Checking for program cpp : /usr/bin/cpp Checking for program ar : /nnmc/cvsbin/ar Checking for program ranlib : /usr/bin/ranlib Checking for g++ : ok Checking for program gcc or cc : cc Checking for gcc : ok Checking for node path : not found Checking for node prefix : ok /usr/local 'configure' finished successfully (0.070s) Waf: Entering directory `/U1/dorothyy/project_node/node-sqlite/build' /U1/dorothyy/project_node/node-sqlite/deps/mpool-2.1.0 make: Nothing to be done for `all'. Waf: Leaving directory `/U1/dorothyy/project_node/node-sqlite/build' Traceback (most recent call last): File "/usr/local/bin/node-waf", line 16, in <module> Scripting.prepare(t, os.getcwd(), VERSION, wafdir) File "/usr/local/bin/../lib/node/wafadmin/Scripting.py", line 145, in prepare prepare_impl(t, cwd, ver, wafdir) File "/usr/local/bin/../lib/node/wafadmin/Scripting.py", line 135, in prepare_impl main() File "/usr/local/bin/../lib/node/wafadmin/Scripting.py", line 188, in main fun(ctx) File "/usr/local/bin/../lib/node/wafadmin/Scripting.py", line 386, in build return build_impl(bld) File "/usr/local/bin/../lib/node/wafadmin/Scripting.py", line 405, in build_impl bld.compile() File "/usr/local/bin/../lib/node/wafadmin/Build.py", line 255, in compile self.flush() File "/usr/local/bin/../lib/node/wafadmin/Build.py", line 717, in flush tg.post() File "/usr/local/bin/../lib/node/wafadmin/TaskGen.py", line 219, in post self.apply() File "/usr/local/bin/../lib/node/wafadmin/TaskGen.py", line 206, in apply v() File "/usr/local/bin/../lib/node/wafadmin/TaskGen.py", line 464, in apply_core node = find_resource(filename) File "/usr/local/bin/../lib/node/wafadmin/Node.py", line 183, in find_resource st = Utils.h_file(path) AttributeError: 'module' object has no attribute 'h_file' 

我不能使用grumdrig / node-sqlite,因为它不支持asynchronous访问。

谢谢你的任何build议。

你不需要执行

 npm install sqlite3 

在node-sqlite3文件夹中。 通过执行这个命令你试图安装sqlite3作为依赖sqlite3(你已经有了)。

有两种方法来安装sqlite3:

第一:

在你的项目文件夹中执行

 npm install sqlite3 

你不需要在它之前克隆git项目。 不需要手动configuration和制作。 只需要在你想使用sqlite3模块的项目文件夹中执行这个命令。 npm完成后,应该在项目文件夹中看到文件夹node_modules / sqlite3。 现在你可以在你的项目中使用它:

 var sqlite3 = require('sqlite3'); 

第二:

只有在npm安装失败时才使用这种方法。 (超自然)。

  1. 转到您的项目文件夹。
  2. 如果不存在,则创build文件夹node_modules。
  3. 执行:

     git clone git://github.com/developmentseed/node-sqlite3.git cd node-sqlite3 ./configure make 
  4. 好。 现在sqlite3一半准备使用。 我们需要安装依赖关系。 执行:

     npm install 

    注意: npm安装时没有其他参数。 这个命令在sqlite3文件夹中使用package.json来安装依赖关系。

npm完成后,你可以在你的项目中使用sqlite3模块。

当我的应用程序与我(npm)安装的软件包之一具有相同的名称时,出现此错误。 我只是在做一些练习,并没有想到我需要项目的独特名称…

只需将package.jsonname更改为其他name即可。

只需保留要安装的模块的目录,然后再次尝试安装。 这对我有效。 所以:

 cd .. npm install sqlite3 

检查您的项目文件夹名称是否与您正在尝试安装的模块相同

如果您尝试在express项目文件夹名称中安装express,则会出现此错误。

重命名您的项目文件夹,您的项目文件夹名称应与npm模块名称相比是唯一的

还要更改package.json文件条目

  "name": "xxxxx", "version": "1.0.0", 

当您的软件包名称与要安装的软件包相同时,会发生此错误。
转到package.json检查名称属性init

 { name:"xxxx", ... } 

可能会有帮助。

我猜在package.json文件中,项目的名字是sqlite3。 所以当你尝试安装它时,由于某些原因被拒绝,因为它提到它变成了依赖。 所以试着改变package.json中的项目名称并尝试一下。 如需进一步参考结账: http : //thisdavej.com/node-newbie-error-npm-refusing-to-install-package-as-a-dependency-of-itself/