node.js - شرح - الاعتماد المحلي في package.json




npm شرح (7)

تحديث 2014-سبتمبر

تم implemented هذه الميزة في الإصدار 2.0.0 من npm. مثال:

{
  "name": "baz",
  "dependencies": {
    "bar": "file:../foo/bar"
  }
}

أي من المسارات التالية صالحة أيضًا:

../foo/bar
~/foo/bar
./foo/bar
/foo/bar

سيتم copied الحزمة المحلية إلى prefix ( ./node-modules ).

الجواب القديم

ضع somelocallib في package.json الخاصة بك. somelocallib كالمعتاد:

"dependencies": {
  "somelocallib": "0.0.x"
}

ثم قم بتشغيل npm link ../somelocallib و npm سيقوم بتثبيت الإصدار الذي تعمل عليه كرمز .

[email protected] /private/tmp/app
└── [email protected] -> /private/tmp/somelocallib

المرجع: link(1)

أريد أن أفعل شيئًا كهذا ، لذلك npm install أيضًا package.json of ../somelocallib أو الأهم من تبعياته.

"dependencies": {
    "express": "*",
    "../somelocallib": "*"
}

إذا كنت تريد المزيد من أتمتة ذلك ، نظرًا لأنك تتحقق من الوحدة النمطية لديك في التحكم في الإصدار ، ولا ترغب في الاعتماد على devs في تذكر الارتباط npm ، يمكنك إضافة هذا إلى قسم "scripts" الخاص بك package.json:

"scripts": {
    "postinstall": "npm link ../somelocallib",
    "postupdate": "npm link ../somelocallib"
  }

هذا يبدو أبعد من الإزعاج ، ولكن يبدو أنه "يعمل". حصلت على معلومات سرية من هذه القضية: https://github.com/isaacs/npm/issues/1558#issuecomment-12444454


في الواقع ، اعتبارًا من npm 2.0 ، يوجد الآن دعم للمسارات المحلية (انظر implemented ).


من الممكن الآن تحديد مسارات تثبيت الوحدة النمطية للعقد المحلي في package.json الخاصة بك. من المستندات:

implemented

اعتبارًا من الإصدار 2.0.0 ، يمكنك توفير مسار إلى دليل محلي يحتوي على حزمة. يمكن حفظ المسارات المحلية باستخدام npm install -S أو npm install --save ، باستخدام أي من هذه النماذج:

../foo/bar
~/foo/bar
./foo/bar
/foo/bar

في هذه الحالة سيتم تطبيعهم إلى مسار نسبي وإضافته إلى package.json الخاصة بك. فمثلا:

{
  "name": "baz",
  "dependencies": {
    "bar": "file:../foo/bar"
  }
}

هذه الميزة مفيدة لتطوير دون اتصال محلي وإنشاء اختبارات تتطلب تثبيت npm في المكان الذي لا تريد فيه ضرب خادم خارجي ، ولكن لا يجب استخدامه عند نشر الحزم في السجل العام.


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

ضع ما يلي في ملف package.json الخاص بك

"scripts": {
    "preinstall": "npm install ../my-own-module/"
}

هذه هي الطريقة التي ستضيف بها تبعيات محلية:

npm install file:src/assets/js/FILE_NAME

أضفه إلى package.json من NPM:

npm install --save file:src/assets/js/FILE_NAME

إضافة مباشرة إلى package.json مثل هذا:

....
  "angular2-autosize": "1.0.1",
  "angular2-text-mask": "8.0.2", 
  "animate.css": "3.5.2",
  "LIBRARY_NAME": "file:src/assets/js/FILE_NAME"
....





npm