আমি ভালো কিছু কাজ করতে চান, তাই npm installএছাড়াও ইনস্টল package.jsonএর ../somelocallibবা আরো গুরুত্বপূর্ণ তার নির্ভরতা।
"dependencies": {
"express": "*",
"../somelocallib": "*"
}
আমি ভালো কিছু কাজ করতে চান, তাই npm installএছাড়াও ইনস্টল package.jsonএর ../somelocallibবা আরো গুরুত্বপূর্ণ তার নির্ভরতা।
"dependencies": {
"express": "*",
"../somelocallib": "*"
}
উত্তর:
এই বৈশিষ্ট্যটি এনপিএমের ২.০.০ সংস্করণে প্রয়োগ করা হয়েছিল। উদাহরণ:
{
"name": "baz",
"dependencies": {
"bar": "file:../foo/bar"
}
}
নিম্নলিখিত পাথগুলির যে কোনওটি বৈধ:
../foo/bar
~/foo/bar
./foo/bar
/foo/bar
স্থানীয় প্যাকেজটি উপসর্গ ( ) এ অনুলিপি করা হবে ।./node-modules
somelocallibআপনার package.jsonস্বাভাবিক হিসাবে নির্ভরতা হিসাবে রাখুন :
"dependencies": {
"somelocallib": "0.0.x"
}
তারপরে রান করুন npm link ../somelocallibএবং এনএমপি আপনি যে সংস্করণটি সিমলিংক হিসাবে কাজ করছেন তা ইনস্টল করবে ।
app@0.0.1 /private/tmp/app
└── somelocallib@0.0.1 -> /private/tmp/somelocallib
তথ্যসূত্র: লিঙ্ক (1)
npm dedupএই সমস্যাটি সমাধান করতে ব্যবহার করতে পারেন । npmjs.org/doc/cli/npm-dedupe.html
npm install <folder> বিবরণে বলা হয়েছে যে বর্তমান প্রকল্পের একটি
আপনার package.jsonসরাসরি স্থানীয় নোড মডিউল ইনস্টলেশন পাথ নির্দিষ্ট করা সম্ভব । ডক্স থেকে:
স্থানীয় পাথ
সংস্করণ ২.০.০ হিসাবে আপনি একটি স্থানীয় ডিরেক্টরিতে একটি প্যাকেজ ধারণ করে এমন একটি পথ সরবরাহ করতে পারেন। স্থানীয় পাথগুলি এই যে কোনও ফর্ম ব্যবহার করে
npm install -Sবা সংরক্ষণ করা যেতে পারেnpm install --save:../foo/bar ~/foo/bar ./foo/bar /foo/barসেই ক্ষেত্রে এগুলি আপেক্ষিক পথে স্বাভাবিক করা হবে এবং আপনার সাথে যুক্ত করা হবে
package.json। উদাহরণ স্বরূপ:{ "name": "baz", "dependencies": { "bar": "file:../foo/bar" } }এই বৈশিষ্ট্যটি স্থানীয় অফলাইন বিকাশ এবং পরীক্ষার জন্য সহায়ক যেখানে এনপিএম ইনস্টল প্রয়োজন যেখানে আপনি কোনও বাহ্যিক সার্ভার হিট করতে চান না, তবে পাবলিক রেজিস্ট্রিতে প্যাকেজ প্রকাশ করার সময় ব্যবহার করা উচিত নয়।
"bar": "file:///home/user/src/foo/bar"
node:onbuildচিত্রগুলি শুধুমাত্র বর্তমান ডিরেক্টরী কপি কিছু ছেড়ে, এবং এইভাবে ../foo।
npm installসেখান থেকে ল্যানটিতে অন্য গিট সংগ্রহস্থল রয়েছে? আমি যখন উপরের এবং এনএমপি গিট + এসএসএস থেকে ইনস্টল করার চেষ্টা করি তখন এটি নোড_মডিউল ডিরেক্টরিতে দেখা যায় এবং গিট + এসএসএসের উপরে যাওয়ার চেষ্টা না করা সত্ত্বেও এটিই আমি শীর্ষ স্তরের প্যাকেজটি ইনস্টল করছি।
এটি আমার পক্ষে কাজ করে।
আপনার প্যাকেজ.জসন ফাইলে নিম্নলিখিতটি রাখুন
"scripts": {
"preinstall": "npm install ../my-own-module/"
}
.gitignoreমডিউল ফোল্ডারে সরিয়ে ফেলা হয়েছে, তৈরি হয়েছে .npmignoreএবং প্রথমবার এটি চালানোর পরে বাদে সমস্ত ফোল্ডারে urs 777 পুনরাবৃত্তভাবে প্রয়োগ করা হয়েছে node_modules। তবে হ্যাঁ, এটি নির্ভরতা ইনস্টল করে। এনপিএম সংস্করণ 1.4.14 ব্যবহার করে।
"dependencies": { "my-own-module": "file:../my-own-module" }?
npm linkহ'ল npm installআপনার নির্ভরতা আপ টু ডেট করার জন্য আপনাকে প্রতিবার করার দরকার নেই ।
আপনি যদি এটিকে আরও স্বয়ংক্রিয় করতে চান, কারণ আপনি সংস্করণ নিয়ন্ত্রণে আপনার মডিউলটি পরীক্ষা করে দেখছেন, এবং এনপিএম লিঙ্কটি মনে রেখে ডিভসের উপর নির্ভর করতে চান না, আপনি এটি আপনার প্যাকেজ.জসন "স্ক্রিপ্টস" বিভাগে যুক্ত করতে পারেন:
"scripts": {
"postinstall": "npm link ../somelocallib",
"postupdate": "npm link ../somelocallib"
}
এটি হ্যাকির বাইরে অনুভব করে তবে এটি "কাজ" বলে মনে হচ্ছে। এই এনপিএম ইস্যুটি থেকে টিপস পেয়েছেন: https://github.com/npm/npm/issues/1558#issuecomment-12444454
postinstallএবং এর postupdateপরিবর্তে preinstallএবং preupdate?
এভাবে আপনি স্থানীয় নির্ভরতা যুক্ত করবেন:
npm install file:src/assets/js/FILE_NAME
এটি এনপিএম থেকে প্যাকেজ.জসনে যুক্ত করুন:
npm install --save file:src/assets/js/FILE_NAME
সরাসরি এইভাবে প্যাকেজ.জসনে যুক্ত করুন:
....
"angular2-autosize": "1.0.1",
"angular2-text-mask": "8.0.2",
"animate.css": "3.5.2",
"LIBRARY_NAME": "file:src/assets/js/FILE_NAME"
....
এখানে প্যাকেজ.জেসন আপনি মাস্টার প্রকল্পের জন্য ব্যবহার করবেন:
"dependencies": {
"express": "*",
"somelocallib": "file:./somelocallib"
}
এখন পর্যন্ত, ./somelocallibগ্রন্থাগার ফোল্ডারে রেফারেন্স মাস্টার প্রকল্পের package.json আপেক্ষিক যেমন ।
তথ্যসূত্র: https://docs.npmjs.com/files/package.json#local-paths
আপনার গ্রন্থাগারের নির্ভরতাগুলি পরিচালনা করুন।
দৌড়ানোর পাশাপাশি npm install, আপনাকে দৌড়াতে হবে(cd node_modules/somelocallib && npm install) ।
এটি এনপিএম সহ একটি পরিচিত বাগ।
তথ্যসূত্র: https://github.com/npm/npm/issues/1341 (আরও একটি আপ-টু-ডেট রেফারেন্স চাইছেন)
আপনার মাস্টার package.lockএবং আপনার পরীক্ষা করুনsomelocallib/package.lock আপনার উৎস কোডের ব্যবস্থাপক মধ্যে।
তারপরে আপনার ডকফাইফাইল ব্যবহারে:
FROM node:10
WORKDIR /app
# ...
COPY ./package.json ./package-lock.json ./
COPY somelocallib somelocallib
RUN npm ci
RUN (cd node_modules/zkp-utils/ && npm ci)
# ...
(cd A && B)অপারেশনকে আদর্শবান করে তুলতে আমি আমার নির্মাণগুলিতে প্রথম বন্ধনী ব্যবহার করি ।
আমি জানি যে npm install ../somelocallibকাজ করে।
তবে, আপনি প্রশ্নের মধ্যে যে সিনট্যাক্সটি দেখান তা থেকে কাজ করবে কিনা তা আমি জানি না package.json...
দুর্ভাগ্যক্রমে, ডক মনে হয় কেবলমাত্র নির্ভরতা হিসাবে ইউআরএল উল্লেখ করেছে।
file:///.../...tar.gzএকটি জিপড স্থানীয় লিবকে নির্দেশ করে চেষ্টা করুন ... এবং এটি কাজ করে কিনা তা আমাদের জানান us
এটি আমার জন্য কাজ করেছে: প্রথমে, নিশ্চিত হয়ে নিন যে এনপিএম ডিরেক্টরিতে সঠিক ব্যবহারকারী রয়েছে
sudo chown -R myuser ~/.npm
sudo chown -R myuser /usr/local/lib/node_modules
তারপরে আপনার প্যাকেজ.জসনে ডিরেক্টরিটি লিঙ্ক করুন
"scripts": {
"preinstall": "npm ln mylib ../../path/to/mylib"
},
"dependencies": {
"mylib" : "*"
}
npm install।
প্রকৃতপক্ষে, এনএমপি ২.০ হিসাবে, এখন স্থানীয় পাথ সমর্থন রয়েছে ( এখানে দেখুন )।
কৌতূহলী ..... কমপক্ষে উইন্ডোজে (আমার এনপিএমটি কিছু 3. কিছু) আমার যা করা দরকার তা ছিল:
"dependencies": {
"body-parser": "^1.17.1",
"module1": "../module1",
"module2": "../module2",
যখন আমি npm install ../module1 --saveএটি করি তখন ডকুমেন্টেশন অনুযায়ী আপেক্ষিক নয় এবং পরম পাথের ফলাফল হয়।
আমি আরও কিছুটা গোলমাল করেছি এবং দৃ determined়সংকল্পবদ্ধ যে ../xxxযথেষ্ট ছিল।
বিশেষত, আমার কাছে স্থানীয় নোড মডিউলগুলি পরীক্ষা করার জন্য ড: \ বিল্ড \ মডিউল 1, ডি: \ বিল্ড \ মডিউল 2 এবং আমার নোড প্রকল্প (অ্যাপ্লিকেশন) d: \ বিল্ড \ নোড অ্যাপে রয়েছে।
ইনস্টল করতে, আমি:
d:\build\module1> rmdir "./node_modules" /q /s && npm install
d:\build\module2> rmdir "./node_modules" /q /s && npm install
d:\build\nodeApp> rmdir "./node_modules" /q /s && npm install
মডিউল 1 এর প্যাকেজ.জসনের "মডিউল 2": "../module2" এর নির্ভরতা রয়েছে; মডিউল 2 এর কোনও স্থানীয় নির্ভরতা নেই; নোড অ্যাপের নির্ভরতা "মডিউল 1": "../module1" এবং "মডিউল 2": "../module2"।
নিশ্চিত না যে এটি কেবলমাত্র 3 টি ফোল্ডার (মডিউল 1, মডিউল 2 এবং নোড অ্যাপ) একই স্তরে বসে থেকে এটি আমার জন্য কাজ করে কিনা .......
সম্পূর্ণ স্থানীয় উন্নয়নের জন্য দুটি পদক্ষেপ: