जवाबों:
से NPM-लिंक प्रलेखन :
स्थानीय मॉड्यूल निर्देशिका में:
$ cd ./package-dir
$ npm link
मॉड्यूल का उपयोग करने के लिए परियोजना की निर्देशिका में:
$ cd ./project-dir
$ npm link package-name
या रिश्तेदार रास्तों का उपयोग करते हुए:
$ cd ./project-dir
$ npm link ../package-dir
यह हुड के नीचे दो आदेशों का उपयोग करने के बराबर है।
npm linkबाहरी निर्भरता का एक दूसरा उदाहरण पैदा करेगा। इसलिए यदि आपके पास एक पैकेज है A B और C की आवश्यकता है, B को C की आवश्यकता है। B को जोड़ने से A के C के दो उदाहरण होंगे
आप केवल एक <folder>तर्क प्रदान करते हैं npm install, तर्क को पैकेज के नाम के बजाय स्थानीय फ़ोल्डर की ओर इंगित करना चाहिए:
npm install /path
rm -rf node_modulesपहले और npm installबाद में यह अच्छा है ।
चूँकि उसी व्यक्ति द्वारा पूछा और उत्तर दिया गया था, इसलिए मैं एक विकल्प के रूप में एक npm लिंक जोड़ूँगा ।
डॉक्स से:
यह अपने स्वयं के सामान को स्थापित करने के लिए आसान है, ताकि आप इस पर काम कर सकें और लगातार पुन: निर्माण किए बिना इसे पुन: परीक्षण कर सकें।
cd ~/projects/node-bloggy # go into the dir of your main project
npm link ../node-redis # link the dir of your dependency
[संपादित करें] NPM 2.0 के रूप में, आप package.json में स्थानीय निर्भरता की घोषणा कर सकते हैं
"dependencies": {
"bar": "file:../foo/bar"
}
npm linkएक बार फ़ोल्डर के विरुद्ध (एक वैश्विक सिम्कलिन बनाने के लिए) चलाने की आवश्यकता है और फिर npm link package-nameप्रोजेक्ट के फ़ोल्डर में (अपनी परियोजना में वैश्विक सिम्लिंक का उपयोग करने के लिए ) चलाने की आवश्यकता है । नीचे दिया गया उत्तर सही उत्तर है।
file:दृष्टिकोण का उपयोग करके ) ने मेरे ऐप और स्थानीय मॉड्यूल के लिए एक निर्भरता साझा करने की अनुमति दी। npm linkडुप्लिकेट निर्भरता के परिणामस्वरूप मेरा परीक्षण , जो चीजों को तोड़ता है अगर निर्भरता को एक सिंगलटन के रूप में उपयोग करने की आवश्यकता होती है।
npm pack + package.jsonइसी से मेरा काम बना है:
module project, निष्पादित करें npm pack:यह एक निर्माण होगा <package-name>-<version>.tar.gz फ़ाइल का ।
consumer projectआदर्श रूप में आप ऐसी सभी फाइलों tmpको अपने consumer-projectरूट में एक फ़ोल्डर में रख सकते हैं :
package.json:"dependencies": {
"my-package": "file:/./tmp/my-package-1.3.3.tar.gz"
}
Installपैकेज:npm installया npm iयाyarn
consumer-project's node_modulesफ़ोल्डर में उपलब्ध होना चाहिए ।शुभ लाभ...
यदि स्थानीय मॉड्यूल में सहकर्मी निर्भरता है जो आप केवल अपनी परियोजना के दायरे में स्थापित करना चाहते हैं, तो इनमें से कोई भी ( npm linkया package.jsonफ़ाइल निर्भरता) कार्य नहीं करता है।
उदाहरण के लिए:
/local/mymodule/package.json:
"name": "mymodule",
"peerDependencies":
{
"foo": "^2.5"
}
/dev/myproject/package.json:
"dependencies":
{
"mymodule": "file:/local/mymodule",
"foo": "^2.5"
}
इस परिदृश्य में, NPM सेट myproject's node_modules/इस तरह:
/dev/myproject/node_modules/
foo/
mymodule -> /local/mymodule
जब नोड लोड होता है mymoduleऔर यह होता है require('foo'), नोड सिम्लिंक को हल करता है mymodule, और उसके बाद केवल /local/mymodule/node_modules/(और उसके पूर्वजों) के लिए दिखता है foo, जो इसे नहीं मिला है। इसके बजाय, हम नोड को देखना चाहते हैं /local/myproject/node_modules/, क्योंकि यह हमारी परियोजना कहां से चल रही है, और कहां हैfoo स्थापित है।
इसलिए, हमें या तो नोड को यह बताने के लिए कि इस सीमलिंक को हल नहीं करना है foo, को खोजने के लिए एक तरीका चाहिए, या हमें फ़ाइल निर्भरता सिंटैक्स में उपयोग किए जाने पर कॉपी की स्थापना के लिए npm को बताने के लिए एक तरीके की आवश्यकता mymoduleहै package.json। मुझे ऐसा करने का कोई तरीका नहीं मिला, दुर्भाग्य से :(
NODE_PATHकि node_modules/जहां fooस्थापित है , वहां इंगित करने के लिए सेट है । तो उपरोक्त मामले के लिए, यह यह होगा: NODE_PATH=/dev/myproject/node_modules/ जो mymoduleखोजने की अनुमति देता है foo।
जैसा कि पिछले लोगों ने उत्तर दिया है npm --save ../location-of-your-packages-root-directory। ../location-of-your-packages-root-directoryलेकिन आदेश में यह काम करने के लिए दो बातें होनी चाहिए।
1) package.jsonउस निर्देशिका में ओर इशारा किया
2) mainप्रॉपर्टी को package.jsonसेट किया जाना चाहिए और काम करना चाहिए "main": "src/index.js",यदि प्रविष्टि फ़ाइल ../location-of-your-packages-root-directoryहै../location-of-your-packages-root-directory/src/index.js