كيف تقوم بإعداد NPM (مدير حزمة العقدة) دون الوصول إلى الجذر؟

StackOverflow https://stackoverflow.com/questions/3718968

  •  02-10-2019
  •  | 
  •  

سؤال

إعداد NPM كمستخدم الجذر هو أمر سريع ويعمل. إلا أنه يجب عليك تشغيل أوامر NPM كجذر (غير موصى به). لذلك اعتقدت أنني سأحاول إعداده كمستخدم غير الجذر.

وفقًا لوثائق NPM ، يمكن لمستخدم غير الجذر بدون وصول الجذر إعداد NPM بواسطة:

  1. خلق شيء .npmrc ملف مع root, binroot, ، و manroot مشيرا إلى المجلدات التي يملكها المستخدم.
  2. ثم تشغيل البرنامج النصي للتثبيت.

نعم. التثبيت كان جيدا.

لكن العقدة لا تستطيع رؤية الحزم التي توفرها NPM.

إذن كيف يمكنني إطلاع العقدة على الحزم التي توفرها NPM؟ (لم يكن عليّ أن أفعل أي شيء عندما قمت بتثبيت NPM سابقًا كجذر). يمكنني ضبط require.paths داخل العقدة ، أو اضبط NODE_PATH متغير البيئة ، ولكن إلى ماذا؟

شكرًا.

هل كانت مفيدة؟

المحلول

من خلال القليل من الاستكشاف ، يبدو أنه يمكنك إما:

  1. وضع الخاص بك NODE_PATH إلى أي دليل جذر NPM ، أو
  2. أثناء وجوده في العقدة ، استدعاء require.paths.push('path_to_npm_root')

نصائح أخرى

هذا عمل بالنسبة لي:

  1. جعل ~/.node مجلد

    mkdir ~/.node
    
  2. يحرر ~/.npmrc وأضف الخط

    prefix = ~/.node
    
  3. تحرير الخاص بك ~/.profile أو ~/.bash_profile وأضف هذه الخطوط

    PATH="$HOME/.node/bin:$PATH"
    NODE_PATH="$HOME/.node/lib/node_modules:$NODE_PATH"
    

الآن يمكنني فعل أشياء مثل npm -g install http-server وسوف يتم تثبيته ل ~/.node بدون جذر. مع هذا في مكانه ، عندما أكتب بعد ذلك http-server, ، يركض.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top