Подтвердить что ты не робот

Отказ установить sqlite3 как зависимость от себя

У меня самая последняя версия node.js, созданная без проблем. Я пытаюсь использовать модуль sqlite для node.js.

Для 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

и установлен node -gyp с npm:   sudo npm install -g 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 error, поэтому я попробовал:

 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

Когда я попытался построить 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, потому что он не поддерживает асинхронный доступ.

Спасибо за любые предложения.

4b9b3361

Ответ 1

Вам не нужно выполнять

npm install sqlite3

в папке node -sqlite3. Выполняя эту команду, вы пытаетесь установить sqlite3 как зависимость sqlite3 (у вас уже есть).

Существует два способа установки sqlite3:

Во-первых:

В папке проекта выполните

npm install sqlite3

Вам не нужно клонировать проект git перед этим. Не нужно настраивать и делать это вручную. Просто выполните эту команду в папке проекта, где вы хотите использовать модуль sqlite3. Вы должны увидеть папку node_modules/sqlite3 в папке проекта после завершения npm. Теперь вы можете использовать его в своем проекте, требуя:

var sqlite3 = require('sqlite3');

Второе:

Используйте этот способ только в случае сбоя установки npm. (Паранормальные).

  • Перейдите в папку проекта.
  • Создать папку node_modules, если она не существует.
  • Execute:

    git clone git://github.com/developmentseed/node-sqlite3.git
    cd node-sqlite3
    ./configure
    make
    
  • Ok. Теперь sqlite3 готов к использованию. Нам нужно установить зависимости. Выполнение:

    npm install
    

    Внимание: npm установить без других параметров. Эта команда использует package.json в вашей папке sqlite3 для установки зависимостей.

После завершения npm вы можете использовать модуль sqlite3 в своем проекте.

Ответ 2

Я получил эту ошибку, когда мое приложение имело то же имя, что и один из пакетов, которые я установил (npm). Я просто занимался практикой и не думал, что мне нужно уникальное имя для проекта...

Просто измените name в package.json на что-то еще, и оно должно работать.

Ответ 3

Просто оставьте каталог модуля, который хотите установить, и попробуйте установить его снова. Это сработало для меня. Итак:

cd ..
npm install sqlite3

Ответ 4

Проверьте, совпадает ли имя папки проекта с модулем, который вы пытаетесь установить,

Если вы попытаетесь установить express внутри имени папки проекта express, вы получите эту ошибку.

Переименуйте папку проекта, название вашего проекта. Имя папки должно быть уникальным по сравнению с именами модулей npm

Также измените запись файла package.json

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

Ответ 5

Эта ошибка возникает, когда ваше имя пакета совпадает с тем пакетом, который вы собираетесь установить.
Перейдите к package.json проверить имя свойства init

{
name:"xxxx",
...
}

Может быть, это поможет.

Ответ 6

Я предполагаю, что в файле package.json название проекта - sqlite3. Поэтому, когда вы пытаетесь установить, что он отклоняет по некоторым причинам, как упоминалось, это становится зависимостью. Поэтому попробуйте изменить название проекта в package.json и попробовать. Для дополнительной справки: http://thisdavej.com/node-newbie-error-npm-refusing-to-install-package-as-a-dependency-of-itself/