यार्न द्वारा स्थानीय पथ के साथ पैकेज कैसे स्थापित करें? इसे पैकेज नहीं मिला


99

package.jsonमैं अपने स्थानीय my-custom-i18nपथ के द्वारा स्थानीय पैकेज की ओर संकेत कर रहा हूं :

package.json

"dependencies": {
 "core-js": "^2.4.1",
 "my-custom-i18n": "./../MyProject.Shared/myproject-i18n",
 "rxjs": "5.0.0-beta.12",
 ...
}

npm installपैकेजों को सही ढंग से स्थापित करता है, लेकिन yarnइसके साथ समस्या है और बस इस पैकेज को नहीं पा सकते हैं:

यार्न उत्पादन

$ yarn
yarn install v0.15.1
info No lockfile found.
[1/4] Resolving packages...
error Couldn't find package "myproject-i18n" on the "npm" registry.
info Visit http://yarnpkg.com/en/docs/cli/install for documentation about this command.

मैं देखता हूं कि यह npmरजिस्ट्री पर दिखता है , जहां यह पैकेज नहीं रहता है।

सवाल

क्या स्थानीय पैकेजों के साथ यार्न का उपयोग करने के लिए कोई बदलाव है? स्थानीय पैकेजों से मेरा मतलब है कि पैकेज सापेक्ष पथ द्वारा इंगित किए गए हैं my-custom-i18n

जवाबों:


195

यार्न को file:स्थानीय पैकेजों के लिए उपसर्ग की आवश्यकता होती है।

रिश्तेदार पथ के लिए:

yarn add file:./../your-project

निरपेक्ष मार्ग के लिए

yarn add file:/dev/your-project

आपके उदाहरण के लिए, निर्भरता package.jsonइस प्रकार घोषित की जाएगी:

 "my-custom-i18n": "file:./../MyProject.Shared/myproject-i18n",

यह यार्न और एनपीएम दोनों के लिए भी काम करता है।

यह एनपीएम क्लाइंट के साथ असंगतता है, यार्न टीम इस व्यवहार का समर्थन करने के लिए जागरूक और घोषित है - गीथहब मुद्दे पर संदर्भ

अपडेट करें:

V0.21.0 रिलीज के बाद से , file:उपसर्ग की आवश्यकता नहीं है। फिक्स और चैंज के साथ पुल-रिक्वेस्ट देखें ।


1
धन्यवाद, एक आकर्षण की तरह काम करता है। लेकिन अगर यह अभी के लिए npm क्लाइंट के साथ संगत नहीं है - मैं बस छोड़ दूंगा जैसा npmकि यह है :) PS मेरा विचार yarnपूरी टीम और प्रोजेक्ट को परिवर्तित किए बिना केवल स्थानीय रूप से उपयोग करना था । तो .. मुझे इसके लिए समर्थन तक इंतजार करना होगा :)
michalczukm

3
सुनिश्चित करें कि आप अपना कैश साफ़ करें। यार्न हमेशा हमेशा कैश्ड संस्करण की कोशिश करता है
बो चेन

5
अद्यतन के लिए +1! file:उपसर्ग को हटाने से हमारे पास एक समस्या का समाधान हो गया जहां yarn installविंडोज़ पर ./रिश्तेदार फ़ाइल पथों के लिए उपसर्ग जोड़ देगा , लेकिन yarn installmacOS पर इसे हटा देगा।
मैग्ने

पूर्ण पथ मेरे लिए काम नहीं किया। यह स्थापित करने के लिए काम करेगा, लेकिन फिर ट्रांसपिलिंग विफल हो जाएगा क्योंकि किसी तरह यह एक रिश्तेदार मार्ग की तलाश कर रहा था, लेकिन यार्न के पास पूर्ण पथ था।
पिक्सलआर्थ

1
यह यार्न 1.17.3के साथ लगता है कि file:उपसर्ग अभी भी निम्न स्थिति में आवश्यक है: मान लीजिए कि आपके पास barएक पैकेज है, जिसमें एक स्थानीय निर्भरता है ./dependencies/xyz। यदि कोई अन्य पैकेज पैकेज fooका उपयोग कर रहा है bar, तो यह निर्देशिका के सापेक्ष निर्देशिका के ./dependencies/xyzसापेक्ष समाधान का प्रयास करेगा । समस्या को निर्भरता बदलने के बाद हल किया गया था। foobarfile:./dependencies/xyz
डेविड कॉलनान
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.