2012-08-13 13 views
21

मेरे पास कोई समस्या नहीं है node.js का नवीनतम संस्करण है। मैं node.js. के लिए एक एसक्लाइट मॉड्यूल का उपयोग करने की कोशिश कर रहा हूँsqlite3 को खुद की निर्भरता के रूप में स्थापित करने से इंकार कर रहा है

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

मैं साथ NPM स्थापित:

नोड sqlite3 developmentseed द्वारा के लिए, मैं निर्देशों का पालन किया कर्ल -k https://npmjs.org/install.sh | sudo श

और स्थापित NPM साथ नोड ढकोसला: sudo NPM स्थापित जी नोड ढकोसला

बाद नोड sqlite3 कॉन्फ़िगर-डी और मेक-घ ठीक है, मैं NPM के साथ स्थापित करने की कोशिश की, मैं इस मिल : npm install sqlite3 error तो मैं करने की कोशिश की:

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

जब मैं इस त्रुटि छानबीन की, मैं इस सवाल पाया

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 

जब मैं/नोड SQLite orlandov का निर्माण करने की कोशिश की, मैं इसे 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 क्योंकि यह एसिंक्रोनस पहुंच का समर्थन नहीं करता है।

किसी भी सुझाव के लिए धन्यवाद।

उत्तर

17

आप नोड sqlite3 फ़ोल्डर में

npm install sqlite3 

पर अमल करने की जरूरत नहीं है। इस कमांड को निष्पादित करके आप sqlite3 को sqlite3 की निर्भरता के रूप में स्थापित करने का प्रयास कर रहे हैं (आपके पास पहले से ही है)।

npm install sqlite3 

आपने पहले भी यह Git परियोजना क्लोन करने की आवश्यकता नहीं है पर अमल अपनी परियोजना फ़ोल्डर में

:

पहले:

वहाँ sqlite3 स्थापित करने के लिए दो तरीके हैं। इसे मैन्युअल रूप से कॉन्फ़िगर करने और बनाने की आवश्यकता नहीं है। बस अपने प्रोजेक्ट फ़ोल्डर में इस कमांड को निष्पादित करें जहां आप sqlite3 मॉड्यूल का उपयोग करना चाहते हैं। आपको एनपीएम खत्म होने के बाद अपने प्रोजेक्ट फ़ोल्डर में फ़ोल्डर node_modules/sqlite3 देखना चाहिए। अब आप की आवश्यकता द्वारा अपनी परियोजना में इसका इस्तेमाल कर सकते हैं:

var sqlite3 = require('sqlite3'); 

दूसरा: इस तरह से

उपयोग NPM स्थापित ही अगर विफल रहता है। (असाधारण)।

  1. अपने प्रोजेक्ट फ़ोल्डर पर जाएं।
  2. यदि मौजूद नहीं है तो फ़ोल्डर 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 का उपयोग करें।

एनपीएम खत्म करने के बाद आप अपनी परियोजना में sqlite3 मॉड्यूल का उपयोग कर सकते हैं।

+0

मेरे पास एक फ़ोल्डर project_node है और अंदर नोड-एसक्लाइट 3 और नोड-वी 0.8.5 (नोड.जेएस का नवीनतम संस्करण) है। क्या नोड-एसक्लाइट 3 को नोड-वी 0.8.5 में जाना है? यदि मैं node_project में node_project में या node-v0.8.5 में nqlite3 स्थापित करने का प्रयास करता हूं, तो मुझे यह त्रुटि मिलती है: -bash: npm: कमांड नहीं मिला क्या आप कृपया मेरे प्रोजेक्ट फ़ोल्डर से क्या मतलब समझ सकते हैं? धन्यवाद। – Dorothyy

+0

आपके प्रश्न में आपने लिखा है कि आप पहले से ही एनपीएम स्थापित करते हैं और इसे नोड-जीईपी स्थापित करने के लिए उपयोग करते हैं। अब आप कहते हैं कि एनपीएम नहीं मिला। बहुत अजीब। आप किस ऑपरेटिंग सिस्टम का उपयोग करते हैं? –

+0

हां, यह बहुत अजीब है, यहां तक ​​कि जब मैं/node-sqlite3 में जाता हूं, जहां मैंने इसे पहले इस्तेमाल किया था और एनपीएम का उपयोग करने का प्रयास किया था, तो यह कहता है कि आदेश नहीं मिला। मैं विंडोज पर पुट्टी का उपयोग कर रहा हूँ। – Dorothyy

7

बस उस मॉड्यूल की निर्देशिका छोड़ दें जिसे आप इंस्टॉल करना चाहते हैं और इसे फिर से स्थापित करने का प्रयास करें। यह मेरे लिए काम किया। तो:

cd .. 
npm install sqlite3 
48

मैं यह त्रुटि आई जब मेरे एप्लिकेशन संकुल मैं (NPM) की स्थापना था से एक के रूप में एक ही नाम था। मैं बस कुछ अभ्यास कर रहा था और नहीं सोचा था कि मुझे परियोजना के लिए एक अनोखा नाम चाहिए ...

बस name को अपने package.json में किसी और चीज़ में बदलें और इसे काम करना चाहिए।

+1

इसे उत्तर के रूप में चिह्नित किया जाना चाहिए :) –

1

जांच करें कि अपनी परियोजना फ़ोल्डर का नाम मॉड्यूल के रूप में ही आप,

स्थापित करने के लिए आप एक परियोजना फ़ोल्डर नाम एक्सप्रेस के अंदर एक्सप्रेस स्थापित करने का प्रयास करते हैं कोशिश कर रहे हैं, तो आप इस त्रुटि मिल जाएगा।

अपने प्रोजेक्ट फ़ोल्डर, आपका परियोजना फ़ोल्डर का नाम NPM मॉड्यूल नाम

इसके अलावा package.json फ़ाइल प्रविष्टि

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

यह त्रुटि आती बदलने की तुलना में अद्वितीय होना चाहिए जब अपने पैकेज का नाम का नाम बदलें पैकेज के समान है जिसे आप इंस्टॉल करने जा रहे हैं।
जाओ package.json जाँच नाम संपत्ति init को

{ 
name:"xxxx", 
... 
} 

हो सकता है यह मदद मिलेगी।

0

मुझे लगता है कि पैकेज.जेसन फ़ाइल में, प्रोजेक्ट का नाम sqlite3 है। तो जब आप यह स्थापित करने का प्रयास करते हैं कि यह कुछ कारणों से अस्वीकार करता है जैसा कि उल्लेख किया गया है कि यह निर्भरता बन जाता है। तो पैकेज.जेसन में प्रोजेक्ट का नाम बदलने की कोशिश करें और कोशिश करें। आगे के संदर्भ के लिए चेकआउट: http://thisdavej.com/node-newbie-error-npm-refusing-to-install-package-as-a-dependency-of-itself/