این دستور npm-install است که می تواند در ارائه دهنده هاست رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان ما مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.
برنامه:
نام
npm-نصب کنید - یک بسته را نصب کنید
خلاصه
نصب npm (بدون آرگ، در بسته dir)
npm نصب [<@scope>/]
npm نصب [<@scope>/] @
npm نصب [<@scope>/] @
npm نصب [<@scope>/] @
npm نصب کنید
npm نصب کنید
npm نصب کنید
نام مستعار: npm i
گزینه های رایج: [-S|--save|-D|--save-dev|-O|--save-optional] [-E|--save-exact] [--dry-run]
شرح
این دستور یک بسته و هر بسته ای که به آن بستگی دارد را نصب می کند. اگر بسته دارای یک
فایل shrinkwrap، نصب وابستگی ها توسط آن هدایت می شود. به کمک npm مراجعه کنید
بسته بندی.
A بسته است:
· الف) پوشه ای حاوی یک برنامه توصیف شده توسط npm help 5 pack.json پرونده
ب) تربال زیپ دار حاوی (الف)
· ج) آدرس اینترنتی که به (ب) حل می شود
· د) الف @ که در رجیستری منتشر شده است (به کمک npm 7 مراجعه کنید npm-رجیستری)
با (ج)
· ه) الف @ که به (د) اشاره می کند
· و) الف که دارای یک برچسب "آخرین" رضایت بخش (e) است
· GA <git دور url> که حل می کند به (الف)
حتی اگر هرگز بسته خود را منتشر نکنید، باز هم می توانید از مزایای استفاده از npm بهره مند شوید
اگر فقط می خواهید یک برنامه گره (a) بنویسید، و شاید اگر می خواهید بتوانید
پس از بسته بندی آن در تاربال (b) به راحتی آن را در جای دیگری نصب کنید.
· npm نصب (در پوشه بسته ، هیچ استدلالی وجود ندارد):
وابستگی ها را در پوشه node_modules محلی نصب کنید.
در حالت جهانی (یعنی با -g or -- جهانی به فرمان اضافه شده است)، آن را نصب می کند
زمینه بسته فعلی (یعنی دایرکتوری کاری فعلی) به عنوان یک بسته جهانی.
به طور پیش فرض، npm نصب تمام ماژول های فهرست شده به عنوان وابستگی در npm help 5 را نصب می کند
pack.json.
با --تولید پرچم (یا زمانی که NODE_ENV متغیر محیطی تنظیم شده است
تولید)، npm ماژول های فهرست شده در را نصب نمی کند وابستگی به dev.
· npm نصب :
بسته ای را نصب کنید که در پوشه ای در سیستم فایل قرار دارد.
· npm نصب <tarball فایل>:
بسته ای را نصب کنید که روی سیستم فایل قرار دارد. توجه: اگر فقط می خواهید یک را پیوند دهید
دایرکتوری dev در ریشه npm خود، می توانید با استفاده از آن راحت تر این کار را انجام دهید npm پیوند.
مثال:
npm نصب کنید./package.tgz
· npm نصب <tarball url>:
url tarball را واکشی کنید و سپس آن را نصب کنید. به منظور تمایز بین این و
گزینه های دیگر، آرگومان باید با "http://" یا "https://" شروع شود.
مثال:
npm نصب https://github.com/indexzero/forever/tarball/v0.5.6
· npm نصب [<@scope>/] [-S|--save|-D|--save-dev|-O|--save-optional]:
انجام دهید @ نصب، کجا پیکربندی "برچسب" است. (به کمک npm 7 مراجعه کنید
npm-config.)
در بیشتر موارد، با این کار آخرین نسخه ماژول منتشر شده در npm نصب می شود.
مثال:
npm نصب sax
npm نصب 3 پرچم انحصاری و اختیاری را می گیرد که نسخه بسته را در آن ذخیره یا به روز می کند
Package.json اصلی شما:
· -S، --صرفه جویی: بسته در شما ظاهر می شود وابستگی.
· -دی، --save-dev: بسته در شما ظاهر می شود وابستگی به dev.
· -اوه --ذخیره-اختیاری: بسته در شما ظاهر می شود وابستگی های اختیاری.
هنگام استفاده از هر یک از گزینه های بالا برای ذخیره وابستگی ها در package.json خود، یک مورد وجود دارد
پرچم اضافی، اختیاری:
· -E، --ذخیره-دقیق: وابستگی های ذخیره شده با یک نسخه دقیق پیکربندی می شوند
نسبت به استفاده از عملگر پیش فرض محدوده semver npm.
علاوه بر این، اگر شما یک npm-shrinkwrap.json سپس آن را نیز به روز خواهد شد.
اختیاری است بسته از رجیستری مرتبط با دانلود دانلود خواهد شد
محدوده مشخص شده اگر هیچ رجیستری با محدوده داده شده مرتبط نباشد، رجیستری پیش فرض است
فرض. به کمک npm 7 مراجعه کنید npm-scope.
توجه: اگر علامت @ را در نام دامنه خود وارد نکنید، npm این را به عنوان یک
در عوض مخزن GitHub را در زیر ببینید. نام دامنه ها نیز باید با یک اسلش دنبال شود.
مثال:
npm نصب sax --save
npm githubname/reponame را نصب کنید
npm @myorg/privatepackage را نصب کنید
npm نصب node-tap --save-dev
npm نصب dtrace-provider --save-optional
npm نصب readable-stream --save --save-exact
توجه داشته باشید:: اگر فایل یا پوشه ای به نام وجود دارد در فهرست کاری فعلی، سپس آن را
سعی خواهد کرد آن را نصب کند، و فقط سعی می کند بسته را با نام واکشی کند اگر معتبر نیست.
· npm نصب [<@scope>/] @:
نسخه بسته را که توسط تگ مشخص شده ارجاع داده شده است را نصب کنید. اگر برچسب
در داده های رجیستری آن بسته وجود ندارد، در این صورت این کار با شکست مواجه خواهد شد.
مثال:
npm sax@latest را نصب کنید
npm @myorg/mypackage@latest را نصب کنید
· npm نصب [<@scope>/] @:
نسخه مشخص شده بسته را نصب کنید. اگر نسخه نداشته باشد، این کار با شکست مواجه خواهد شد
به رجیستری منتشر شد.
مثال:
نصب npm [ایمیل محافظت شده]
npm نصب @myorg/[ایمیل محافظت شده]
· npm نصب [<@scope>/] @ محدوده>:
نسخه ای از بسته مطابق با محدوده نسخه مشخص شده را نصب کنید. این اراده
قوانین مشابهی را برای حل وابستگی ها که در npm help 5 توضیح داده شده است، دنبال کنید pack.json.
توجه داشته باشید که اکثر محدوده های نسخه باید در گیومه قرار داده شوند تا پوسته شما آن را درمان کند
به عنوان یک استدلال واحد
مثال:
npm نصب sax@">=0.1.0 <0.2.0"
npm install @myorg/privatepackage@">=0.1.0 <0.2.0"
· npm نصب <git دور url>:
بسته را از ارائه دهنده git میزبانی شده نصب می کند و آن را با شبیه سازی می کند دستگاه گوارش. ابتدا تلاش می کند
از طریق https (git با github) و اگر موفق نشد از طریق ssh.
://[ [: ]@] [: ][:][/] [# ]
یکی از دستگاه گوارش, git+ssh, git+http، یا git+https. اگر نه is
مشخص شد، پس استاد استفاده می شود.
متغیرهای محیط git زیر توسط npm شناسایی شده و به آن اضافه خواهند شد
محیط هنگام اجرای git:
· GIT_ASKPASS
· GIT_PROXY_COMMAND
· GIT_SSH
· GIT_SSH_COMMAND
· GIT_SSL_CAINFO
· GIT_SSL_NO_VERIFY
برای جزئیات بیشتر به صفحه git man مراجعه کنید.
مثال:
npm نصب git+ssh://[ایمیل محافظت شده]:npm/npm.git#v1.0.27
npm نصب git+https://[ایمیل محافظت شده]/npm/npm.git
npm نصب git://github.com/npm/npm.git#v1.0.27
GIT_SSH_COMMAND=´ssh -i ~/.ssh/custom_identnpm نصب git+ssh://[ایمیل محافظت شده]:npm/npm.git
· npm نصب / [# ]:
· npm نصب github: / [# ]:
بسته را در https://github.com/githubname/githubrepo با تلاش برای شبیه سازی
آن را با استفاده از دستگاه گوارش.
اگر الف را مشخص نکنید متعهد سپس استاد استفاده خواهد شد.
مثال:
npm mygithubuser/myproject را نصب کنید
npm نصب github:mygithubuser/myproject
· npm نصب اصل مطلب:[ /] [# ]:
بسته را در https://gist.github.com/gistID با تلاش برای شبیه سازی آن با استفاده از
دستگاه گوارش. نام کاربری GitHub مرتبط با gist اختیاری است و در آن ذخیره نخواهد شد
pack.json if -S or --صرفه جویی استفاده می شود.
اگر الف را مشخص نکنید متعهد سپس استاد استفاده خواهد شد.
مثال:
npm نصب gist:101a11beef
· npm نصب بیت باکت: / [# ]:
بسته را در https://bitbucket.org/bitbucketname/bitbucketrepo با تلاش
برای شبیه سازی آن با استفاده از دستگاه گوارش.
اگر الف را مشخص نکنید متعهد سپس استاد استفاده خواهد شد.
مثال:
npm نصب bitbucket:mybitbucketuser/myproject
· npm نصب gitlab: / [# ]:
بسته را در https://gitlab.com/gitlabname/gitlabrepo با تلاش برای شبیه سازی
آن را با استفاده از دستگاه گوارش.
اگر الف را مشخص نکنید متعهد سپس استاد استفاده خواهد شد.
مثال:
npm gitlab:mygitlabuser/myproject را نصب کنید
می توانید چندین آرگومان و حتی چندین نوع آرگومان را با هم ترکیب کنید. مثلا:
npm نصب sax@">=0.1.0 <0.2.0" ناظر نیمکت
La -- برچسب آرگومان برای همه اهداف نصب مشخص شده اعمال خواهد شد. اگر یک برچسب با
نام داده شده وجود دارد، نسخه برچسب گذاری شده بر نسخه های جدیدتر ترجیح داده می شود.
La -- خشک اجرا شود آرگومان به روش معمول آنچه را که نصب انجام می داد گزارش می دهد
بدون اینکه در واقع چیزی نصب کنید.
La -f or --زور آرگومان npm را مجبور می کند تا منابع راه دور را حتی اگر یک کپی محلی باشد، واکشی کند
روی دیسک وجود دارد
npm نصب sax --force
La -g or -- جهانی آرگومان باعث می شود که npm بسته را به جای نصب سراسری نصب کند
به صورت محلی به کمک npm 5 مراجعه کنید پوشه های npm.
La - به سبک جهانی آرگومان باعث می شود npm بسته را در محلی شما نصب کند
node_modules پوشه ای با همان طرحی که با global استفاده می کند node_modules پوشه فقط
وابستگی های مستقیم شما نشان داده می شود node_modules و هر چیزی که به آن وابسته هستند خواهد بود
در آنها مسطح شده است node_modules پوشه ها این بدیهی است که برخی از فریبکاری ها را از بین می برد.
La - بستهبندی میراث آرگومان باعث می شود npm بسته را طوری نصب کند که نسخه های
npm قبل از 1.4، مانند موردی که با گره 0.8 ارائه شده است، می تواند بسته را نصب کند. این
تمام حذف های خودکار را حذف می کند.
La --ارتباط دادن آرگومان باعث می شود npm نصب های جهانی را به فضای محلی در برخی از آنها پیوند دهد
موارد.
La -- no-bin-links آرگومان از ایجاد پیوندهای نمادین برای هر باینری توسط npm جلوگیری می کند
بسته ممکن است حاوی
La -- بدون اختیاری آرگومان از نصب وابستگی های اختیاری جلوگیری می کند.
La --بدون جمع شدن آرگومان، که یک فایل shrinkwrap موجود را نادیده می گیرد و از آن استفاده می کند
در عوض package.json.
La --nodedir=/path/to/node/source آرگومان به npm اجازه می دهد تا کد منبع گره را پیدا کند
که npm می تواند ماژول های بومی را کامپایل کند.
La --only={prod[uction]|توسعه[توسعه]} استدلال تنها باعث هر دو خواهد شد وابستگی به dev or
فقط غیروابستگی به dev بدون توجه به نصب شدن NODE_ENV.
به کمک npm 7 مراجعه کنید npm-config. بسیاری از پارامترهای پیکربندی تا حدودی روی آن تأثیر می گذارند
نصب، زیرا این بیشتر کاری است که npm انجام می دهد.
الگوریتم
برای نصب یک بسته، npm از الگوریتم زیر استفاده می کند:
درخت node_modules موجود را از دیسک بارگیری کنید
درخت را شبیه سازی کنید
بسته.json و متادیتای مختلف را واکشی کرده و به کلون اضافه کنید
کلون را طی کنید و وابستگی های گمشده را اضافه کنید
وابستگی ها تا حد امکان به بالا اضافه می شوند
بدون شکستن هیچ ماژول دیگری
درخت اصلی را با درخت شبیه سازی شده مقایسه کنید و لیستی از آن تهیه کنید
اقدامات لازم برای تبدیل یکی به دیگری
تمام اقدامات را، ابتدا عمیق ترین، اجرا کنید
انواع اقدامات نصب، به روز رسانی، حذف و انتقال است
برای این بسته{dep} ساختار: A{B،C}، قبل از میلاد مسیح}، C{D}، این الگوریتم تولید می کند:
A
+-- ب
+-- C
+-- D
یعنی وابستگی از B به C با این واقعیت ارضا می شود که A قبلا باعث C شده است
در سطح بالاتر نصب شده است. D هنوز در سطح بالا نصب شده است زیرا هیچ چیز وجود ندارد
با آن در تضاد است.
برای A{B،C}، B{C,D@1}، C{D@2}، این الگوریتم تولید می کند:
A
+-- ب
+-- C
`-- D@2
+-- D@1
از آنجایی که B´s D@1 در سطح بالایی نصب خواهد شد، C اکنون باید D@2 را به صورت خصوصی برای آن نصب کند
خود.
برای توضیحات بیشتر در مورد ساختارهای پوشه خاص، به npm help 5 folders مراجعه کنید
که npm ایجاد می کند.
محدودیت ها of npm ها نصب الگوریتم
برخی موارد لبه بسیار نادر و پاتولوژیک وجود دارد که یک چرخه می تواند باعث تلاش npm شود
یک درخت بی پایان از بسته ها را نصب کنید. در اینجا ساده ترین مورد است:
A -> B -> A´ -> B´ -> A -> B -> A´ -> B´ -> A -> ...
جایی که A برخی از نسخه های یک بسته است، و آ نسخه متفاوتی از همان بسته است.
زیرا B بستگی به نسخه متفاوتی دارد A از آن که قبلاً در درخت است، آن را
باید یک نسخه جداگانه نصب کنید. در مورد هم همینطور است آ، که باید نصب شود ب. زیرا ب
بستگی به نسخه اصلی دارد A، که نادیده گرفته شده است، چرخه در آن قرار می گیرد
پسرفت بی نهایت
برای جلوگیری از این وضعیت، npm flat-out از نصب هر کدام خودداری می کند name@ نسخه که در حال حاضر است
موجود در هر نقطه از درخت اجداد پوشه بسته. درست تر، اما بیشتر
پیچیده، راه حل این است که نسخه موجود را به مکان جدید پیوند کنید. اگر این
زمانی که روی یک مورد استفاده واقعی تأثیر بگذارد، مورد بررسی قرار خواهد گرفت.
از npm-install آنلاین با استفاده از خدمات onworks.net استفاده کنید