এনপিএম গ্লোবাল পাথ উপসর্গ


142

আমি স্বাভাবিকের চেয়ে বেশি সতর্ক থাকি কারণ npmঅতীতের আচরণে আমি বিভ্রান্ত হয়ে পড়েছি ।

আমি একটি ম্যাকে আছি এবং এর মাধ্যমে নোড.জেএস ইনস্টল করেছি brew install node

এখন যেহেতু আমি jslint.jsকমান্ড-লাইনে কমান্ড হিসাবে চালিত হতে চাই এবং jslintদেখতে পাচ্ছি যে এটি সম্পাদন করার আধ্যাত্মিক উপায়টি sudo npm install -g jslintএই আউটপুটটির সাথে সফলভাবে চলেছিল:

$ sudo npm install -g jslint
npm http GET https://registry.npmjs.org/jslint
npm http 200 https://registry.npmjs.org/jslint
npm http GET https://registry.npmjs.org/jslint/-/jslint-0.1.9.tgz
npm http 200 https://registry.npmjs.org/jslint/-/jslint-0.1.9.tgz
npm http GET https://registry.npmjs.org/nopt
npm http 200 https://registry.npmjs.org/nopt
npm http GET https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz
npm http 200 https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz
npm http GET https://registry.npmjs.org/abbrev
npm http 200 https://registry.npmjs.org/abbrev
npm http GET https://registry.npmjs.org/abbrev/-/abbrev-l.0.4.tgz
npm http 200 https://registry.npmjs.org/abbrev/-/abbrev-1.0.4.tgz
/usr/local/share/npm/bin/jslint -> /usr/local/share/npm/lib/node_modules/jslint/
bin/jslint.js
jslint@0.1.9 /usr/local/share/npm/lib/node_modules/jslint
└── nopt@1.0.10 (abbrev@1.0.4)

পরবর্তীকালে

$ jslint ply.js
zsh: command not found: jslint

/usr/local/share/npm/binআমার মধ্যে না থাকার কারণে $PATH

1) brewবিশ্বব্যাপী npm binপাথ কেন ইনস্টল করা হয়নি ? হতে পারে এটি করেছে, তবে কিছু zshএটির সাথে জড়িত। আমি এটি কোথায় খুঁজে পেতে সক্ষম হতে পারে?
2) আমার এই করা উচিত? ( আমার নীচে :/usr/local/share/npm/binরফতানি করাতে যুক্ত করুন )$PATH~/.zshrc

দেখে মনে হচ্ছে এটি এটি করার সঠিক উপায় নয় কারণ আমি পরে যদি অন্য কোনও কিছু ইনস্টল করি (হোমব্রিউ বা কিছু ব্যবহার করে) আমাকে পথটি নির্ধারণ করার জন্য এটি আমার zsh স্টার্টআপ স্ক্রিপ্টে যুক্ত করতে হবে। আমি অনুমান করি এই নির্দিষ্ট উদাহরণে এটি npm install -g"যথাযথ" স্থানে সঠিক প্রতীক তৈরি না করার বিষয়টি (যেমন: /usr/local/binসম্ভবত)।

আমি মনে করি আমি যা করব তা হ'ল ম্যানুয়ালি /usr/local/binযে কোনও প্রোগ্রামগুলির সাথে আমার ভিতরে সিমলিংক তৈরি করা হয় এবং এটি আমার উদ্দেশ্যগুলির পক্ষে যথেষ্ট ভাল হওয়া উচিত।

সম্পাদনা : আমি এটি ২০১২ সালে আপডেট করছি, কারণ এই পুরানো প্রশ্নটি জনপ্রিয় তবে এখন আমার ব্যক্তিগত কর্মপ্রবাহের দিক থেকে এবং নোড ইনস্টল করার এবং এর বিভিন্ন নির্ভরতা পরিচালনার ক্ষেত্রে কীভাবে সেরাভাবে যেতে হবে সে ক্ষেত্রে উভয়ই পুরানো।

সিস্টেমে নোড ইনস্টল করতে আমার ব্যক্তিগত কর্মপ্রবাহটি এখন নোডেজএস.আর.জি. থেকে প্রাপ্ত ইনস্টলারটি ব্যবহার করবে। আমি হোমব্রিউ প্যাকেজ নিজেই এর চেয়ে বেশি এটি বিশ্বাস করি কারণ ফাইলগুলি কীভাবে পরিচালনা করা যায় তা এটি ভাল জানেন। আপনি যদি ম্যাক বা উইন্ডোজে থাকুক না কেন, আপনি যদি আপনার সিস্টেম নোডটি 8.10 থেকে 10.15 তে পরিবর্তন করতে চান তবে কেবল আপনার ওএসের জন্য 10.15 এর জন্য নোডেজ.এস.আর.আর্গ থেকে ইনস্টলারটি ডাউনলোড করুন। হোমব্রিউয়ের মাধ্যমে ইনস্টল নোড আপগ্রেড করার চেষ্টা করা আমার অভিজ্ঞতাকে সর্বদা আরও কঠিন পদ্ধতির হিসাবে প্রমাণিত হয়েছে।

এছাড়াও, সবচেয়ে উল্লেখযোগ্য বিষয়টি উল্লেখ করা হল যে আমার উপরের jslint উদাহরণের এনপিএল ইনস্টলের মাধ্যমে সুডোর ব্যবহার অত্যন্ত নিরুৎসাহিত; আমি মোটামুটি নিশ্চিত যে হোমব্রিউ প্যাকেজগুলি কখনও কখনও সুপারভাইজার ব্যবহার করে ইনস্টল করা বা তার সাথে যোগাযোগ করা উচিত নয়। এটি প্রয়োজন হবে না, এবং ফাইল অনুমতি মাথাব্যথা বাড়ে!

তদুপরি আমি ইএসলিন্টকে jslint এর চেয়েও বেশি পরামর্শ দিচ্ছি, এবং বছরের পর বছর jslint ব্যবহার করিনি।


ধন্যবাদ, তারা এখন ঠিক হয়ে গেছে। আমি
স্টিভেন লু

@ ডেভিনিউটন আমি সাধারণত এটি করি, হ্যাঁ। এই প্রশ্নটি আসল slালু ছিল তবে এটি আমার সবচেয়ে জনপ্রিয় একটি।
স্টিভেন লু

স্ক্রিনশটের চেয়ে পাঠ্য অনুলিপি করা কি সহজ নয়? যাইহোক স্থির।

1
@ সেলেমেরাশিড 1 আরে আমি এটি করার অর্থ দিয়েছিলাম। আপনি কি সত্যিই এটি পড়েছেন এবং এটি অনুলিপি করেছেন? ধন্যবাদ।
স্টিভেন লু

3
হাঁ! আপনাকে স্বাগতম. আমি একটি গেমের সাথে কাজ করছি এবং আমি যখন এনপিএমের জন্য স্টাফ ডাউনলোড করার জন্য অপেক্ষা করছিলাম তখন আমি এটি করেছি!

উত্তর:


308

আপনার PATHসাথে প্রসারিত :

export PATH=/usr/local/share/npm/bin:$PATH

ভয়ানক ধারণা নয়। এটি বলার পরে, আপনার এটি করা উচিত নয়।

এটি চালান:

npm config get prefix

ওএস এক্স-এর ডিফল্ট হল /usr/local, যার অর্থ এনপিএম বাইনারিগুলিকে সিলেক্ট করবে /usr/local/binযা ইতিমধ্যে আপনার PATH(বিশেষত যদি আপনি হোমব্রু ব্যবহার করছেন) থাকা উচিত।

তাই:

  1. npm config set prefix /usr/local যদি এটি অন্য কিছু হয়, এবং
  2. sudoএনপিএম সহ ব্যবহার করবেন না ! Jslint ডক্স অনুসারে , আপনার এটি স্রেফ সক্ষম হওয়া উচিত npm install

যদি আপনি এনপিএমকে সুডো ( sudo brew install) হিসাবে ইনস্টল করেন তবে এটি সাধারণ পাতলা 'ও' দিয়ে পুনরায় ইনস্টল করার চেষ্টা করুন brew install। হোমব্রিউ আপনাকে sudoমুক্ত রাখতে সহায়তা করবে বলে মনে করা হচ্ছে ।


1
ধন্যবাদ! যদিও বিশ্বব্যাপী npmইনস্টল করতে অস্বীকার করে jslintnpm install -g jslintব্যর্থ। Error: EACCES, open '/Users/user/.npm/564fcf84-jslint.lock'
স্টিভেন লু

2
আমার chown /usr/localকোনও স্ক্রিপ্টের প্রয়োজন ছাড়াই এটিতে লিঙ্কগুলি লেখার দরকার থাকলে আমার কী দরকার হবে না sudo? কিভাবে নিম্নলিখিত সম্পর্কে এই সেট আপ Nom / নোড ~/.localবা কিছু?
স্টিভেন লু

2
খুব সুন্দর! আমি গিয়ে ব্যবহারকারী দ্বারা জমা বিভিন্ন dirs ফেরানো হয়েছে rootআমার মধ্যে ~/Dir (দ্বারা sudo rm -rউপর tmp/এবং .npm/) এবং পরবর্তীকালে একটি npm install -g jslintসুন্দর কাজ করেন। এটা পরিষ্কার যে এনপিএম নিজেই একটি নোড প্রোগ্রাম এবং এটি আমার জন্য জেএস কমান্ড লাইন প্রুফ-অফ-কনসেপ্টের একটি যা আমি এখন প্রশংসা করতে শুরু করি যে আমি এটি আরও ভাল বুঝতে পেরেছি।
স্টিভেন লু

2
@ স্টিভেনলু ইয়েপ, chown-িং /usr/localএবং এর মধ্যে সমস্ত কিছুই ওএস এক্সের মানসম্মত অনুশীলন the হোমব্রিউউ উইকির সমস্যা সমাধানের পৃষ্ঠাটি দেখুন ।
ট্রেভর বার্নহ্যাম

হাঁ এটা দেখে মনে হচ্ছে chownএর ING /usr/localইতিমধ্যে অন্যথায় আমার মেশিনে ঘটেছে npmএট রান ছাড়া sudoপারবেন ভাষা সংযোগগুলি জমা দিতে সক্ষম হবে /usr/local/bin/ইত্যাদি
স্টিভেন লু

8

এই ইস্যুতে কিছুক্ষণ ব্যয় করেছে, এবং PATH স্যুইচ সহায়তা করছে না। আমার সমস্যাটি হ'ল হোমব্রেউ / নোড / এনপিএম বাগ এখানে পাওয়া গেছে - https://github.com/npm/npm/issues/3794

আপনি যদি ইতিমধ্যে হোমব্রিউ ব্যবহার করে নোড ইনস্টল করেন তবে চেষ্টা করুন **** প্রতি মন্তব্য নোট যে এটি নিরাপদ নাও হতে পারে। এটি আমার পক্ষে কাজ করেছিল তবে অনিচ্ছাকৃত পরিণতি হতে পারে। এটি এছাড়াও উপস্থিত হয় যে হোমব্রাবির সর্বশেষ সংস্করণ সঠিকভাবে এনপিএম ইনস্টল করে। তাই সম্ভবত আমি চেষ্টা করবে brew update, brew doctor, brew upgrade nodeইত্যাদি চেষ্টা করার আগে ****:

npm update -gf

অথবা, আপনি যদি হোমব্রিউয়ের সাথে নোড ইনস্টল করতে চান এবং এনপিএমের কাজ করতে চান তবে ব্যবহার করুন:

brew install node --without-npm
curl -L https://npmjs.org/install.sh | sh

3
আকস্মিকভাবে সুপারিশ করা যে লোকেরা বিশ্বব্যাপী একটি আপডেট জোর করে নেওয়া ভাল ধারণা নয়।
toxaq

1
আন্তঃসম্পর্কিত ব্যক্তির পরামর্শের অন্ধভাবে অনুসরণ করা ভাল ধারণা নয়।
ভোল্ট

-Gf- এর বল পদ্ধতিটি এটি আমার জন্য তৈরি করেছিল। ধন্যবাদ.
এমএম

5

আমি মদ তৈরি করেছি এবং উপসর্গটি ইতিমধ্যে সেট হয়ে গেছে:

$ npm config get prefix
/Users/[user]/.node

আমি লক্ষ্য করেছি যে বিন এবং লিব ফোল্ডারটি মূলের মালিকানাধীন, যা সাধারণ নন সুডো ইনস্টল করতে বাধা দেয়, তাই আমি সেগুলি আবার ব্যবহারকারীর হাতে

$ cd /Users/[user]/.node
$ chown -R [user]:[group] lib
$ chown -R [user]:[group] bin

তারপরে আমি কেবলমাত্র আমার .bash_ প্রোফাইলে পথটি যুক্ত করেছি যা / ব্যবহারকারী / [ব্যবহারকারী] এ অবস্থিত

PATH=$PATH:~/.node/bin

3

ব্রি-এর জন্য এনপিএম -জি চলার সময়ও আপনাকে সুডো ব্যবহারের প্রয়োজন হবে না। এটি সম্ভবত রাস্তায় আরও সমস্যা তৈরি করতে পারে।

সাধারণত, মেশানো বা পোর্ট আপনাকে আপনার পথ আপডেট করতে দেয় যাতে এটি আপনার .zshrc, .bashrc, .cshrc, বা শেল এর যে কোনও স্বাদে ব্যবহার করেন।


প্রকৃতপক্ষে মদ তৈরি করার প্রয়োজন হয় না এবং এর বিরুদ্ধে সুপারিশ করে sudo। আমি সুডো ব্যবহার করছিলাম npm(কারণ আমি যে কিছু পড়েছি তা আমাকে বলেছিল)। পথটি কীভাবে সেট করা আছে তা কোথায় সন্ধান করব তা সম্পর্কে আমি আগ্রহী। বাস্তবে মনে হয় zshইনস্টলারটি এমন কোনও কিছু চালায় যা পথটি হার্ডকোডিংয়ের সমাপ্ত করে (ইনস্টল করার সময় zsh) .zshrcযাতে আমি এতটা পছন্দ করি না
স্টিভেন লু

যেকোনো কিছু দ্বারা ইনস্টল npm করা উচিত ইনস্টল করা /usr/local/usrপথ নামস্থান আপনার ডিস্ট্রো এর অফিসিয়াল প্যাকেজ জন্য সংরক্ষিত। /usr/local/binআপনার AT PATH বা না-তে একটি zsh সমস্যা।
ফ্লবি

ব্রিউ স্ক্রিপ্টগুলি আপনার প্রারম্ভিক স্ক্রিপ্টে কিছু যোগ করে না, এটি আপনার করা দরকার। উদাহরণস্বরূপ মেডবাইহাউন্ডস্টুট . com/blog/install-node-with-homebrew-on-os-x দেখুন ।
পাস্কেল বেলনকাল

2

আমি নিম্নলিখিতটি করে ভ্যু ক্লাইব নো কম্যান্ডের ত্রুটিটি ঠিক করতে সক্ষম হয়েছি:

  • sudo nano ~/.bash_profileআপনার বাশ প্রোফাইল সম্পাদনা করতে টার্মিনালে ।
  • যোগ export PATH=$PATH:/Users/[your username]/.npm-packages/bin
  • ফাইল সংরক্ষণ করুন এবং টার্মিনাল পুনরায় আরম্ভ করুন
  • এখন আপনার ব্যবহার vue create my-projectও সক্ষম হওয়া উচিত vue --versionetc.

আমি https://cli.vuejs.org/ থেকে সর্বশেষতম ভিউ ক্লিপ ইনস্টল করার পরে এটি করেছি

আমি সাধারণত সুতা ব্যবহার করি, তবে আমি বিশ্বজুড়ে এনপিএম দিয়ে ইনস্টল করেছি npm install -g @vue/cli। আপনি চাইলে সুতাও ব্যবহার করতে পারেনyarn global add @vue/cli

দ্রষ্টব্য: আপনি ইতিমধ্যে এটি ইনস্টল করা থাকলে আপনাকে বিশ্বব্যাপী প্রথমে আনইনস্টল করতে হতে পারে: npm uninstall -g vue-cli

আশাকরি এটা সাহায্য করবে!


1
এটি মূলত আমার পক্ষে কাজ করেছিল। আমাকে এটি PATH = $ पथ রফতানি করতে সামঞ্জস্য করতে হয়েছিল: / ব্যবহারকারী / [আপনার ব্যবহারকারী নাম] / node_modules/.bin
মাইক কার্পেন্টার

1

যে কোনও একটি একই সমস্যা পেয়েছিল এটি মদ এবং এনএমপি মধ্যে বিরোধের সাথে সম্পর্কিত দয়া করে এই সমাধানটি দেখুন https://gist.github.com/DanHerbert/9520689


0

চালানোর চেষ্টা করুন:

PATH=$PATH:~/npm/bin

এবং তারপরে expressকমান্ড লাইনে চালিয়ে একটি পরীক্ষা করুন । এটি আমার পক্ষে কাজ করেছে।


বেশ নিশ্চিত আপনি বোঝাতে চাইছেন ~/.npm/binবা এই জাতীয় কিছু। npmআপনার বাড়ির দিরে একটি দির যুক্ত হওয়া উচিত ।
স্টিভেন লু

0

আপনি যদি sudo কমান্ড ব্যবহার করে নোড প্যাকেজগুলি সংযুক্ত করেন

তারপরে নোড_মডিউলগুলি বিশ্বব্যাপী ইনস্টল করা ফোল্ডারে যান।

ইউনিক্স সিস্টেমে এগুলি সাধারণত বিশ্বব্যাপী ইনস্টল করার সময় / usr / স্থানীয় / lib / নোড বা / usr / স্থানীয় / lib / নোড_মডিউলগুলিতে স্থাপন করা হয়। আপনি যদি এই পথে NODE_PATH এনভায়রনমেন্ট ভেরিয়েবল সেট করেন তবে মডিউলগুলি নোডের সাহায্যে পাওয়া যাবে।

উইন্ডোজ এক্সপি -% ইউএসপিপ্রোফাইল% \ অ্যাপ্লিকেশন ডেটা pm এনপিএম \ নোড_মডিউলসমূহ উইন্ডোজ - -% অ্যাপডেটা% \ npm \ নোড_মডিউলগুলি

এবং তারপর কমান্ড চালান

ls -l

এটি সমস্ত গ্লোবাল নোড_মডিউলগুলির তালিকা দেবে এবং আপনি সহজেই লিঙ্কযুক্ত নোড মডিউলগুলি দেখতে পাবেন।


0

সুডো ব্রিউ আর বিকল্প নয় তাই আপনি যদি এই মুহুর্তে ব্রেউ দিয়ে ইনস্টল করেন তবে আপনি 2 টি সত্যিকারের অশোভন জিনিস পেতে যাচ্ছেন: এ: এটি ইনস্টল করতে পছন্দ করে /usr/local/optsবা এই অনুসারে, / ইউএসআর / স্থানীয় / ভাগ করে নেওয়া। এটি প্রথমে কোনও বড় বিষয় নয় তবে নোড পাথ নিয়ে আমার সমস্যা হয়েছে বিশেষত যখন আমি লিঙ্কটি ইনস্টল করেছি। বি: আপনি sudo কমান্ডগুলির সাথে একরকম আটকে রয়েছেন যতক্ষণ না আপনি এটি ইনস্টল এবং এটিকে ইনস্টল করেন বা আপনি বিটানামি থেকে স্ট্যাকটি পেতে পারেন

আমি স্ট্যাক বিকল্পের মাধ্যমে এই পদ্ধতির প্রস্তাব করছি কারণ আপনার যদি একাধিক প্রকল্প থাকে তবে তা প্রস্তুত। আপনি যদি প্রিমেড এমইএএন স্ট্যাকের সাথে যান তবে আপনাকে httpd.conf এ ভার্চুয়াল হোস্ট সেট আপ করতে হবে (এক্সএএমপিপি-র তুলনায় এই স্ট্যাকের একটি ব্যথা বেশি) প্রতিটি অতিরিক্ত জন্য আপনার অতিরিক্ত / vhosts.conf এবং / ইত্যাদি / হোস্টগুলি স্বাভাবিক আপডেট করুন প্রজেক্ট, আপনি আপডেট আপডিংয়ের কাজ শেষ করার পরে আপনার সার্ভারটি পুনরায় পোস্ট করতে এবং পুনরায় চালু করতে না চান


0

সহজ সমাধানটি হ'ল ...

কমান্ডটি কেবল নীচে রাখুন:

  1. sudo npm config get prefix

    /usr/localনীচের কমান্ড ব্যবহার করে এটি ঠিক করার চেয়ে যদি এটি এর মতো কিছু না হয় ।

  2. sudo npm config set prefix /usr/local...

এখন এটি 100% ঠিকঠাক কাজ করছে


এনপিএম সহ সুডো এড়াতে উচ্চভাবে পরামর্শ দিন। আমার সম্পাদনা দেখুন।
স্টিভেন লু
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.