از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
به نظر من، راهنمای نهایی برای پیکربندی NPM، Node Package Manager یا npm یکی از بهترین بخشهای Node است. مدیریت بسته واقعاً می تواند یک زبان را بسازد یا آن را خراب کند، بنابراین اطمینان از اینکه استفاده از آن آسان و انعطاف پذیر است بسیار مهم است. در طول استفاده من از Node، من فقط اصول اولیه را می دانستم …
سرفصلهای مطلب
معرفی
Node Package Manager یا npm، به نظر من یکی از بهترین قسمت های Node است. مدیریت بسته واقعاً می تواند یک زبان را بسازد یا آن را خراب کند، بنابراین اطمینان از اینکه استفاده از آن آسان و انعطاف پذیر است بسیار مهم است.
در طول استفادهام از Node، فقط دستورات اصلی npm را میشناختم save
، install
، و publish
، و حتی در آن زمان من واقعاً پارامترهای اختیاری همراه با آنها را نمی دانستم. پس از خواندن برخی از اسناد راهنما اخیراً، فکر کردم نوشتن جزئیات مفید خواهد بود روی تا آنجا که ممکن است از تنظیمات npm استفاده کنید. نه تنها فکر میکنم این میتواند برای خوانندگان مفید باشد، بلکه برای من بسیار مفید بود که تمام پرچمها/پارامترهای مختلف را بررسی کنم و واقعاً آنها را آزمایش کنم. من در نهایت در مورد npm چیزهای زیادی یاد گرفتم که در آینده به من کمک می کند.
در بیشتر موارد، من سعی کردم برای هر پارامتر یک توضیح منحصر به فرد بنویسم (متفاوت از اسناد راهنما). امیدواریم به این ترتیب اگر اسناد کمکی شما را گیج کنند (یا اطلاعات کافی نداشته باشند)، توضیحات من بینش بیشتری را در مورد هر چیزی که به دنبال آن هستید ارائه می دهد. من همچنین نمونه هایی از برخی از پارامترهای گیج کننده تر را اضافه خواهم کرد، بنابراین اگر می دانید چگونه از برخی از گزینه های غیرمستندتر استفاده کنید، مانند searchopts
، من دوست دارم یک نمونه ببینم!
تنظیم پارامترها
مگر اینکه غیر از این ذکر شده باشد، تمام پارامترهای زیر را می توان از طریق چند روش مختلف تنظیم کرد، که در اینجا به اختصار هر کدام را توضیح خواهم داد. بسته به روی مورد استفاده خود، از اهداف مختلف برای مواردی مانند آزمایش، پیکربندی خاص پروژه، پیکربندی جهانی و غیره استفاده کنید.
npmrc
فایل ها
npm به شما اجازه می دهد تا از چند مورد مختلف استفاده کنید فایل های rc، بسیار شبیه به ~/.bashrc
، برای تنظیم تنظیمات خود. چهار مکانی که ممکن است فایل ها در آن قرار گیرند عبارتند از:
- فایل پیکربندی هر پروژه:
/path/to/my/project/.npmrc
- فایل پیکربندی هر کاربر:
~/.npmrc
- فایل پیکربندی جهانی:
$PREFIX/etc/npmrc
- فایل پیکربندی داخلی npm:
/path/to/npm/npmrc
https-proxy=proxy.example.com
init-license=MIT
init-author-url=http://rasanegar.com
color=true
فایلی که استفاده می کنید باید بستگی داشته باشد روی پارامتر و محدوده ای که می خواهید تنظیم کنید. بنابراین، برای مثال، احتمالاً می خواهید تنظیم کنید https-proxy
در سطح جهانی npmrc
فایل بر خلاف سطح پروژه npmrc
فایل از آنجایی که همه پروژه ها روی سیستم به تنظیمات پروکسی نیاز دارد.
متغیر محیطی
چند متغیر محیطی وجود دارد که npm روی پارامترهای تنظیم شده به صورت محلی (یا در an npmrc
فایل). چند نمونه هستند NODE_ENV
و HTTPS_PROXY
. شما همچنین می توانید تنظیم کنید هر پارامتر npm با پیشوند یک متغیر محیطی با npm_config_
. بنابراین شما می توانید کارهایی مانند این را انجام دهید export npm_config_registry=localhost:1234
.
بسیاری از مردم به استفاده از متغیرهای محیطی برای پیکربندی عادت دارند، بنابراین این باید برای آنها آشنا باشد. به عنوان مثال، یک راه عالی برای پیکربندی a داکر به عنوان مثال تنظیم متغیرهای محیطی از dockerfile
.
پرچم ها روی خط فرمان
لازم نیست همه پارامترها به طور دائم در یک فایل یا متغیر محیطی تنظیم شوند. بسیاری از آنها را می توان در یک دستور npm به عنوان یک پرچم، با پیشوند استفاده کرد --
.
به عنوان مثال، اگر در حال نصب یک بسته جدید از رجیستری هستید و می خواهید آن را در خود ذخیره کنید package.json
فایل، شما می خواهید از آن استفاده کنید --save
پرچم، اما ممکن است همیشه اینطور نباشد. در برخی موارد ممکن است بخواهید از آن استفاده کنید --save-dev
یا حتی --save-optional
، بنابراین استفاده از آن منطقی نخواهد بود npmrc
.
package.json
فایل
در درون شما package.json
فایل پروژه شما می توانید پارامترها را نیز تنظیم کنید. در این مورد، config
نقشه باید به صورت زیر استفاده شود:
{
"name": "module-name",
"version": "10.3.1",
"config": {
"foo": "bar",
"test-param": 12
},
"dependencies": {
"express": "4.2.x",
}
}
سپس از داخل کد خود می توانید به این پارامترها با استفاده از process
متغیر جهانی، مانند این: process.env.npm_package_config_foo
. به پیشوند توجه کنید npm_package_config_
، که به Node می گوید که متغیر را از کجا دریافت کند.
توجه داشته باشید: این فقط زمانی کار می کند که پروژه خود را از طریق یک اسکریپت npm اجرا کنید (به عنوان مثال، نه فقط با استفاده از node index.js
).
تنظیم پیکربندی npm
و در آخر، همیشه امکان تنظیم پارامترها از طریق وجود دارد npm config set
. این اولویت بر package.json
پیکربندی. بنابراین، برای مثال، اگر دویدید npm config set module-name:foo baz
از خط فرمان (و داشت package.json
فایل از بالا)، سپس شما foo
پارامتر خواهد بود baz
بجای bar
. را module-name
scoping اطمینان حاصل می کند که این متغیر برای هیچ پروژه دیگری تنظیم نشده است.
مانند روش بالا، برای اینکه این کار به شما کمک کند باید برنامه را از طریق یک اسکریپت npm اجرا کنید، مانند npm run
.
لیست پارامترهای ممکن
من سعی کردم هر پارامتر را به بهترین شکل ممکن دسته بندی کنم، اما بسیاری از آنها در دسته های دیگر نیز به خوبی کار می کنند. بنابراین، پس از مدتی تامل، من فقط هر پارامتر را در دستهای قرار دادم که بیشترین معنا را برای زمینه داشت.
امیدوارم من به اندازه کافی خوب این را سازماندهی کرده باشم تا بتوانید از آن به عنوان یک مرجع استفاده کنید. در صورت وجود هرگونه اشتباه یا حذفیات، به من اطلاع دهید!
کنترل دسترسی / مجوز
دسترسی داشته باشید
این سطح دسترسی به محدوده یک بسته را تنظیم می کند که به طور پیش فرض روی آن تنظیم می شود restricted
. تنظیم این پارامتر روی public
آن را برای عموم قابل مشاهده و نصب می کند. اگر پروژه شما بدون محدوده است، پس عمومی است.
- پیش فرض: محدود
- نوع: دسترسی (رشته)
همیشه معتبر
اگر میخواهید به احراز هویت نیاز داشته باشید، آن را روی true تنظیم کنید هر زمانی که به رجیستری دسترسی پیدا می کنید، حتی برای درخواست های GET.
- پیش فرض: نادرست
- نوع: بولی
حدود
این گواهی امضای Certificate Authority است که برای اعتماد به یک اتصال SSL با رجیستری بسته استفاده می شود. برای مشخص کردن گواهی، از قالب PEM استفاده کنید و تمام خطوط جدید را جایگزین کنید \n
شخصیت. بنابراین، برای مثال، تنظیم CA ممکن است به صورت زیر باشد:
ca="-----BEGIN CERTIFICATE-----\nXXXX\nXXXX\n-----END CERTIFICATE-----"
همچنین میتوانید با تعیین آرایهای از گواهیها، یکی برای هر خط، به چندین CA اعتماد کنید:
ca()="..."
ca()="..."
یا، تنظیم ca
به null، ثبت کننده های پیش فرض شناخته شده را مشخص می کند.
- پیش فرض: گواهی npm CA
- نوع: رشته، آرایه یا تهی
کافه
شبیه به ca
پارامتر، cafile
به شما اجازه می دهد تا گواهی مورد اعتماد را برای اتصال به رجیستری تنظیم کنید. تفاوت در اینجا این است که شما می توانید یک مسیر فایل برای گواهی تعیین کنید که می تواند حاوی یک یا چند گواهی باشد.
- پیش فرض: null
- نوع: مسیر
گواهی
را cert
پارامتر گواهی مشتری را برای احراز هویت با رجیستری مشخص می کند. این با قبلی مخالف است ca
و cafile
گواهیها به این صورت که به جای احراز هویت رجیستری، برای احراز هویت مشتری است. اگر شما host رجیستری خودتان، این می تواند راه خوبی برای خصوصی سازی آن بدون نیاز به احراز هویت با نام کاربری و رمز عبور باشد.
- پیش فرض: null
- نوع: رشته
ذخیره سازی
حافظه پنهان
این محل دایرکتوری کش npm است.
- پیش فرض: ویندوز:
%AppData%\npm-cache
، پوزیکس:~/.npm
- نوع: مسیر
cache-lock-steale
تعداد میلیثانیههای قبل از فایلهای قفل پوشه حافظه نهان کهنه در نظر گرفته میشوند.
- پیش فرض: 60000 (1 دقیقه)
- نوع: شماره
کش-قفل-دوباره تلاش می کند
تعداد دفعات تلاش مجدد برای به دست آوردن قفل روی فایل های قفل پوشه کش
- پیش فرض: 10
- نوع: شماره
cache-lock-wait
تعداد میلیثانیهای که باید منتظر بمانید تا فایلهای قفل کش منقضی شوند.
- پیشفرض: 10000 (10 ثانیه)
- نوع: شماره
cache-max
این حداکثر زمان (بر حسب ثانیه) است که در آن یک مورد قبل از بهروزرسانی با رجیستری در حافظه پنهان ذخیره میشود. بنابراین اگر پیشبینی میکنید که بستهای نسبتاً اغلب تغییر کند، باید آن را روی عدد کمتری تنظیم کنید.
تنها زمانی که بستههای کش پاک میشوند زمانی است که npm cache clean
از دستور استفاده می شود (یا، به طور متناوب، می توانید بسته ها را به صورت دستی پاک کنید و بسته هایی را که پاک می شوند انتخاب کنید).
- پیش فرض: بی نهایت
- نوع: شماره
حافظه پنهان
در مقابل cache-max
پارامتر، cache-min
پارامتر حداقل زمان (بر حسب ثانیه) را برای نگهداری موارد در حافظه پنهان قبل از بررسی مجدد رجیستری تنظیم می کند.
- پیش فرض: 10
- نوع: شماره
عمومی
رنگ
را color
پارامتر تعیین می کند که آیا رنگ در خروجی npm استفاده می شود یا خیر. اگر روی true تنظیم شود، npm فقط رنگ ها را برای توصیفگرهای فایل tty چاپ می کند. یا می توانید آن را تنظیم کنید always
همیشه از رنگ ها استفاده کنید
- پیش فرض: درست است روی پوزیکس، نادرست روی پنجره ها
- نوع: بولی یا “همیشه”
شرح
تعیین می کند که آیا توضیحات بسته هنگام استفاده نشان داده می شود npm search
.
- پیش فرض: درست است
- نوع: بولی
زور
استفاده کردن force
دستورات مختلف را قوی تر خواهد کرد. تقریباً می توانید آن را به عنوان استفاده از آن در نظر بگیرید sudo
، جایی که می توانید محدودیت های خاصی را دور بزنید. بنابراین، برای نام بردن چند مثال، استفاده از این به این معنی است که خرابی اسکریپت چرخه حیات، پیشرفت را مسدود نمیکند، انتشار نسخههای منتشر شده قبلی را بازنویسی میکند، npm هنگام درخواست از رجیستری از حافظه پنهان عبور میکند، یا از بررسی بازنویسی فایلهای غیرnpm جلوگیری میکند.
- پیش فرض: نادرست
- نوع: بولی
جهانی است
global
باعث می شود دستور داده شده در حالت “جهانی” عمل کند. بسته های نصب شده در این پوشه برای همه کاربران و پروژه ها قابل دسترسی است روی سیستم. این بدان معناست که بستهها در پوشه «پیشوند» نصب میشوند، که معمولاً در این پوشه است node نصب شد. به طور خاص، بسته های جهانی در واقع در {prefix}/lib/node_modules
، فایل های bin به پیوند داده می شوند {prefix}/bin
، و صفحات man هستند به آنها پیوند داده می شود {prefix}/share/man
.
- پیش فرض: نادرست
- نوع: بولی
globalconfig
محل فایل پیکربندی برای خواندن گزینه های پیکربندی جهانی.
- پیش فرض: {prefix}/etc/npmrc
- نوع: مسیر
گروه
این پارامتر به npm می گوید که هنگام اجرای اسکریپت های بسته در حالت جهانی به عنوان گروه سیستم از کدام گروه استفاده کند root کاربر.
- پیش فرض: شناسه گروه جریان process
- نوع: رشته یا عدد
طولانی
آیا هنگام اجرا اطلاعات دقیق نشان داده شود یا خیر npm ls
و npm search
.
- پیش فرض: نادرست
- نوع: بولی
پیشوند
این محل نصب آیتم های سراسری است که به طور پیش فرض محل نصب خود npm است. اگر prefix
تنظیم شده است روی خط فرمان، سپس دستورات غیر جهانی مجبور می شوند در پوشه داده شده اجرا شوند.
- پیش فرض: ببینید
npm help 5 folders
- نوع: مسیر
چرخش
را spin
پارامتر تعیین می کند که آیا یک اسپینر ASCII در حالی که npm منتظر است یا چیزی را پردازش می کند نمایش داده شود یا خیر (با فرض اینکه process.stderr
یک TTY است). این را می توان روی false تنظیم کرد تا اسپینر کاملاً متوقف شود، یا برای خروجی اسپینر حتی برای خروجی های غیر TTY روی ‘همیشه’ تنظیم شود.
- پیش فرض: درست است
- نوع: بولی یا “همیشه”
tmp
دایرکتوری که در آن فایل ها و دایرکتوری های موقت ذخیره می شوند. یک بار npm process با موفقیت انجام شد، همه فایل ها و دایرکتوری ها حذف شدند. اگر process با شکست مواجه می شود، با این حال، فایل ها و دایرکتوری ها هستند نه حذف شده تا بتوانید آنها را بررسی کرده و مشکل را رفع کنید.
- پیش فرض: متغیر محیطی TMPDIR یا “/tmp”
- نوع: مسیر
یونیکد
را unicode
پارامتر به npm می گوید که آیا از کاراکترهای یونیکد در خروجی درخت استفاده شود یا خیر. اگر false
، فقط از کاراکترهای ASCII برای ترسیم درخت ها استفاده می شود.
- پیش فرض: درست است
- نوع: بولی
unsafe-perm
چه زمانی unsafe-perm
تنظیم شده است true
، هنگامی که یک اسکریپت بسته اجرا می شود، تغییر شناسه کاربر/گروه سرکوب می شود. اگر false
، غیر-root کاربران قادر به نصب بسته ها نخواهند بود.
- پیش فرض: نادرست در صورت اجرا به عنوان root، در غیر این صورت درست است
- نوع: بولی
استفاده
با استفاده از usage
هنگام دریافت کمک برای یک فرمان، flag مقدار خروجی را کاهش می دهد. به جای نشان دادن هر پرچم/ورودی ممکن برای یک فرمان، مانند دستور -H
پرچم خواهد بود، این فقط خلاصه مستندات راهنما را به شما می دهد. بنابراین، برای مثال، اجرا npm --usage search
خروجی خواهد داشت npm search (some search terms ...)
.
- پیش فرض: نادرست
- نوع: بولی
کاربر
این UID برای استفاده زمانی که یک اسکریپت بسته به عنوان اجرا می شود root. بنابراین اگر نمی خواهید فیلمنامه داشته باشد root مجوزها، این را روی UID کاربری تنظیم کنید که سطح مجوز و دسترسی صحیح را برای برنامه دارد. اجرای یک اسکریپت بسته به عنوان root میتواند خطرناک باشد!
- پیش فرض: “هیچ کس”
- نوع: رشته یا عدد
userconfig
این محل یک فایل پیکربندی در سطح کاربر است. هر کاربر روی یک سیستم می تواند تنظیمات مختلفی برای نصب npm داشته باشد و فایل باید در مسیری که در آن داده شده است قرار گیرد userconfig
.
- پیش فرض: ~/.npmrc
- نوع: مسیر
umask
این مقدار ماسکی است که هنگام تنظیم حالت ایجاد فایل برای فایل ها و دایرکتوری ها استفاده می شود. نوع فایل/دایرکتوری ایجاد شده بستگی دارد روی مقدار ماسک استفاده شده اگر یک دایرکتوری یا یک فایل اجرایی است، پس umask
ارزش در برابر پوشانده شده است 0777
. برای همه فایل های دیگر، umask
ارزش در برابر پوشانده شده است 0666
. پیش فرض ها هستند 0755
و 0644
به ترتیب، که یک ماسک نسبتا محافظه کارانه برای هر نوع فایل است.
- پیش فرض: 022
- نوع: رشته عددی هشتگانه در محدوده 0000..0777 (0..511)
نسخه
با استفاده از این پرچم، نسخه npm نصب شده را خروجی می گیرید. این فقط در صورت استفاده کار می کند روی خط فرمان به عنوان یک پرچم پسندیدن npm --version
.
- پیش فرض: نادرست
- نوع: بولی
نسخه ها
استفاده از این پرچم مشابه است version
، اما جزئیات نسخه را خروجی می دهد (به عنوان JSON) روی چند بسته مختلف، از جمله پروژه در فهرست فعلی (در صورت وجود)، V8، npm، و جزئیات از process.versions
. این فقط در صورت استفاده کار می کند روی خط فرمان به عنوان یک پرچم پسندیدن npm --versions
.
یک نمونه خروجی ممکن است به این صورت باشد:
{ 'my-project': '0.0.1',
npm: '2.14.2',
http_parser: '2.3',
modules: '14',
node: '0.12.2',
openssl: '1.0.1m',
uv: '1.4.2-node1',
v8: '3.28.73',
zlib: '1.2.8' }
- پیش فرض: نادرست
- نوع: بولی
بیننده
این برنامه ای است که هنگام مشاهده محتوای راهنما استفاده می شود. اگر تنظیم شود browser
، مرورگر وب پیش فرض باز می شود و محتوای راهنما را در HTML نشان می دهد.
- پیش فرض:
man
روی پوزیکس،browser
روی پنجره ها - نوع:
path
،man
، یاbrowser
توسعه
توسعه دهنده
استفاده از این پرچم هنگام نصب بسته ها نیز باعث نصب آن می شود dev-dependencies
بسته ها نیز این تقریباً همیشه باید زمانی که یک پروژه در حال تولید نیست استفاده شود.
این شبیه به npat
پرچم.
- پیش فرض: نادرست
- نوع: بولی
ویرایشگر
این دستور (یا مسیر یک فایل اجرایی) است که باید هنگام باز کردن یک ویرایشگر اجرا شود.
- پیش فرض: متغیر محیط EDITOR در صورت تنظیم یا “vi” روی پوزیکس یا “نوت پد” روی پنجره ها.
- نوع: مسیر
سختگیرانه موتور
این پارامتر به npm می گوید که آیا باید از مشخصات موتور در a پیروی کند package.json
به شدت فایل کنید اگر تنظیم شود true
، اگر نسخه فعلی Node.js با نسخه مشخص شده مطابقت نداشته باشد، نصب بسته با شکست مواجه خواهد شد.
این برای زمانی مفید است که یک بسته به یک نسخه Node.js خاص یا حتی نیاز دارد io.js
(احتمالاً به این دلیل که بسته از ویژگی های ES6 استفاده می کند).
- پیش فرض: نادرست
- نوع: بولی
git
این باید دستوری باشد که برای اجرای دستورات git استفاده می شود. این می تواند برای زمانی که git نصب شده است مفید باشد، اما اینطور نیست روی PATH، در این صورت شما مسیر نصب git را مشخص می کنید.
- پیش فرض: “git”
- نوع: رشته
نسخه git-tag
این به npm می گوید که آیا هنگام اجرای آن باید commit را برچسب گذاری کند npm version
دستور (که نسخه بسته را نمایش می دهد و در آن ذخیره می کند package.json
). این ممکن است به کاهش اشتباهات کمک کند (فراموش کردن برچسب گذاری git commit، برچسب گذاری آن به عنوان نسخه اشتباه، و غیره)، اما همچنین کنترل کمتری به شما می دهد، بنابراین باید معاوضه ها را بسنجید.
- پیش فرض: درست است
- نوع: بولی
عنوان
رشته ای که باید هنگام خروجی اطلاعات اشکال زدایی چاپ شود.
- پیش فرض: “npm”
- نوع: رشته
در صورت وجود
هنگام استفاده از npm run-script
دستور، اگر اسکریپت در آن تعریف نشده باشد package.json
فایل، سپس npm با یک کد خطا خارج می شود. اگر if-present
تنظیم شده است true
، سپس کد خطا برگردانده نمی شود. این برای زمانی مفید است که به صورت اختیاری می خواهید یک اسکریپت را اجرا کنید، اما اهمیتی نمی دهید که وجود نداشته باشد. بنابراین، برای مثال، شاید شما یک اسکریپت (اسکریپت A
) که در برخی از پروژه های شما وجود دارد، اما نه همه آنها، و شما از یک اسکریپت عمومی دیگر (اسکریپت B
) برای اجرای آن. به این ترتیب اگر اسکریپت A
وجود ندارد، پس اسکریپت B
خطایی دریافت نمی کند و می تواند با خیال راحت به اجرا ادامه دهد.
- پیش فرض: نادرست
- نوع: بولی
نادیده گرفتن اسکریپت ها
این پرچم را طوری تنظیم کنید که هیچ اسکریپت تعریف شده در آن اجرا نشود package.json
فایل یک پروژه
- پیش فرض: نادرست
- نوع: بولی
init-module
این مسیر یک فایل جاوا اسکریپت است که به مقداردهی اولیه یک پروژه کمک می کند. بنابراین اگر یک پیکربندی سفارشی دارید که میخواهید همه پروژههای جدیدتان داشته باشند (مثلاً یک وابستگی روی پرنده ابی یا یک موتور پیشفرض)، سپس میتوانید یک فایل در مکان مشخص شده ایجاد کنید تا مقداردهی اولیه را برای شما انجام دهد.
- پیش فرض: ~/.npm-init.js
- نوع: مسیر
init-author-name
نام پیش فرض استفاده شده توسط npm init
هنگام ایجاد یک پروژه جدید
- پیش فرض: “”
- نوع: رشته
init-author-email
ایمیل نویسنده پیش فرض استفاده شده توسط npm init
هنگام ایجاد یک پروژه جدید
- پیش فرض: “”
- نوع: رشته
init-author-url
URL پیش فرض نویسنده استفاده شده توسط npm init
هنگام ایجاد یک پروژه جدید
- پیش فرض: “”
- نوع: رشته
مجوز اولیه
مجوز پیش فرض استفاده شده توسط npm init
هنگام ایجاد یک پروژه جدید
- پیش فرض: “ISC”
- نوع: رشته
نسخه اولیه
نسخه پیش فرض استفاده شده توسط npm init
هنگام ایجاد یک پروژه جدید
- پیش فرض: “1.0.0”
- نوع: رشته
JSON
این پارامتر تعیین می کند که آیا npm خروجی خود را به صورت JSON یا متن معمولی بنویسد یا خیر.
توجه داشته باشید: npm ادعا می کند که این ویژگی آزمایشی است و ساختار اشیاء JSON در معرض تغییر است.
- پیش فرض: نادرست
- نوع: بولی
ارتباط دادن
اگر link
روی true تنظیم میشود، سپس نصبهای محلی به نصبهای بسته جهانی مرتبط میشوند (در صورت وجود بسته منطبق). یکی از محصولات جانبی مهم این ویژگی ها این است که با پیوند دادن به بسته های جهانی، نصب های محلی می توانند باعث نصب موارد دیگر در فضای جهانی شوند.
پیوندها در صورتی ایجاد می شوند که حداقل یکی از این دو شرط وجود داشته باشد:
-
بسته قبلاً به صورت جهانی نصب نشده است
-
نسخه نصب شده سراسری با نسخه ای که به صورت محلی نصب می شود یکسان است
-
پیش فرض: نادرست
-
نوع: بولی
آدرس محلی
این آدرس IP رابط شبکه محلی سیستم است که هنگام اتصال به رجیستری npm استفاده می شود.
توجه داشته باشید: این باید یک آدرس IPv4 در Node نسخه 0.12 و قبل از آن باشد.
- پیش فرض: تعریف نشده
- نوع: آدرس IP
loglevel
این سطح گزارش پیش فرض برای اجرای برنامه شما است. اگر یک رویداد گزارش بالاتر (یا مساوی) از آنچه در اینجا داده شده است وجود داشته باشد، برای کاربر خروجی می شود. وقتی/اگر برنامه با شکست مواجه شود، همه سیاهههای مربوط به نوشته شده است npm-debug.log
در فهرست کاری فعلی
- پیش فرض: “اخطار”
- نوع: رشته
logstream
جریان استفاده شده توسط npmlog
بسته در زمان اجرا
توجه داشته باشید: این را نمی توان تنظیم کرد روی خط فرمان برای پیکربندی باید از روش دیگری مانند فایل یا متغیر محیطی استفاده کنید.
- پیش فرض:
process.stderr
- نوع: استریم
پیام
این پیام commit است که باید توسط npm version
فرمان نویسه قالببندی «%s» با شماره نسخه جایگزین میشود.
- پیشفرض: “%s”
- نوع: رشته
node-نسخه
نسخه Node هنگام بررسی بسته ها استفاده می شود engines
اعلامیه در package.json
فایل.
- پیش فرض: processنسخه
- نوع:
semver
یا نادرست
npat
اینکه آیا تست های یک بسته را اجرا کنیم یا نه روی نصب و راه اندازی.
- پیش فرض: نادرست
- نوع: بولی
onload-script
این محل یک بسته به است require()
یک بار npm بارگیری می شود. این برای استفاده برنامهای از npm توصیه میشود.
- پیش فرض: نادرست
- نوع: مسیر یا “نادرست”
اختیاری
این به npm می گوید که بسته ها را از روی نصب کند optionalDependencies
نقشه در package.json
فایل. از آنجایی که اینها هستند اختیاری وابستگی ها، اگر یکی نتواند نصب کند، npm نصب خواهد شد نه سقط کردن process.
- پیش فرض: درست است
- نوع: بولی
قابل تجزیه
را parseable
پارامتر به npm می گوید که هنگام نوشتن روی خروجی استاندارد، خروجی خود را به یک قالب قابل تجزیه فرمت کند.
- پیش فرض: نادرست
- نوع: بولی
تولید
وقتی روی true
، npm در حالت تولید اجرا می شود که بیشتر به این معنی است devDependencies
نصب نمی شوند. توجه داشته باشید که باید استفاده کنید NODE_ENV="production"
در عوض هنگام استفاده از اسکریپت های چرخه حیات، متغیر محیطی.
- پیش فرض: نادرست
- نوع: بولی
عقب نشینی
استفاده از این پرچم با npm، بستههایی را که نصب نشدند (مثلاً ممکن است به دلیل خطای کامپایل/وابستگی) حذف شوند.
- پیش فرض: درست است
- نوع: بولی
صرفه جویی
استفاده از این پرچم با npm بسته داده شده را در محلی ذخیره می کند package.json
فایل زیر dependencies
. روش دیگر، استفاده از این پرچم با npm rm
دستور یک وابستگی را از dependencies
بخش از package.json
فایل.
توجه داشته باشید که این فقط زمانی کار می کند که a package.json
فایل در فهرست فعلی موجود است.
- پیش فرض: نادرست
- نوع: بولی
ذخیره-بسته
اگر بسته ای در زمان نصب با استفاده از --save
، --save-dev
، یا --save-optional
پرچم، سپس آن را نیز در bundleDependencies
فهرست هنگام استفاده با npm rm
دستور، آن را از bundledDependencies
فهرست
- پیش فرض: نادرست
- نوع: بولی
save-dev
استفاده از این پرچم بسته ها را در devDependencies
لیست در package.json
فایل. برعکس در هنگام استفاده با npm rm
، به این معنی که بسته از آن حذف خواهد شد devDependencies
. مانند save
پرچم، این فقط در صورتی کار می کند که وجود داشته باشد package.json
فایل موجود
- پیش فرض: نادرست
- نوع: بولی
صرفه جویی – دقیق
هنگامی که یک وابستگی در ذخیره می شود package.json
فایل با استفاده از یکی از --save
، --save-dev
یا --save-optional
پرچم گذاری می شود، سپس با استفاده از شماره نسخه دقیق به جای پیش فرض npm پیکربندی می شود semver
اپراتور محدوده
- پیش فرض: نادرست
- نوع: بولی
ذخیره – اختیاری
استفاده از این پرچم بسته ها را در optionalDependencies
لیست در package.json
فایل. عکس آن در هنگام استفاده با npm rm
، یعنی بسته از آن حذف خواهد شد optionalDependencies
. مانند save
پرچم، این فقط در صورتی کار می کند که وجود داشته باشد package.json
فایل موجود
- پیش فرض: نادرست
- نوع: بولی
ذخیره-پیشوند
این پارامتر روش ذخیره بسته ها را تعیین می کند package.json
در صورت استفاده با --save
یا --save-dev
پرچم ها با استفاده از مقدار پیش فرض به عنوان مثال، اگر بسته ای را با نسخه ذخیره کنیم 1.2.3
، سپس در واقع در آن ذخیره می شود package.json
مانند ^1.2.3
.
- پیش فرض: ‘^’
- نوع: رشته
محدوده
استفاده کردن scope
به npm می گوید که از چه محدوده ای برای یک رجیستری با محدوده استفاده کند. این می تواند هنگام استفاده از یک رجیستری خصوصی برای اولین بار مفید باشد. مثال:
npm login --scope=@organization --registry=registry.example.com
این باعث می شود @organization
به این رجیستری برای نصب بسته های مشخص شده بر اساس الگوی آینده نگاشت شود @organization/package
.
- پیش فرض: “”
- نوع: رشته
بسته بندی
چه زمانی false
، npm-shrinkwrap.json
فایل در حین نصب نادیده گرفته می شود.
- پیش فرض: درست است
- نوع: بولی
علامت-گیت-تگ
هنگام اجرای npm version
فرمان و با استفاده از این پرچم، -s
از پرچم در هنگام برچسب گذاری برای افزودن امضا استفاده می شود. برای اینکه این کار انجام شود، باید از قبل کلیدهای GPG را در تنظیمات git خود تنظیم کرده باشید.
- پیش فرض: نادرست
- نوع: بولی
برچسب زدن
هنگام نصب یک بسته از npm و عدم تعیین نسخه، به جای آن از این تگ استفاده می شود.
- پیش فرض: آخرین
- نوع: رشته
برچسب-نسخه-پیشوند
این کاراکتری است که هنگام استفاده از آن به نسخه بسته اضافه می شود npmversion
. این برای زمانی مفید است که سایر برنامهها برای نسخههایشان یک سبک طراحی دارند.
- پیش فرض: “v”
- نوع: رشته
شبکه سازی
https-proxy
پراکسی مورد استفاده برای اتصالات HTTPS خروجی. اگر هر یک از متغیرهای محیطی زیر تنظیم شده باشد، در عوض از آنها استفاده می شود: HTTPS_PROXY
، https_proxy
، HTTP_PROXY
، http_proxy
.
- پیش فرض: null
- نوع: URL
پروکسی
پراکسی مورد استفاده برای اتصالات HTTP خروجی. اگر هر یک از متغیرهای محیطی زیر تنظیم شده باشد، در عوض از آنها استفاده می شود: HTTP_PROXY
، http_proxy
.
- پیش فرض: null
- نوع: URL
strict-ssl
این به npm می گوید که آیا از SSL برای اتصال با رجیستری از طریق HTTPS استفاده کند یا خیر.
- پیش فرض: درست است
- نوع: بولی
عامل کاربر
هدر درخواست User-Agent را برای درخواست های HTTP(S) تنظیم می کند.
- پیش فرض: node/{process.نسخه} {process.سکو} {process.arch}
- نوع: رشته
ثبت
واکشی مجدد
تعداد دفعاتی که npm سعی می کند با رجیستری تماس بگیرد تا بسته را دریافت کند.
- پیش فرض: 2
- نوع: شماره
فاکتور واکشی مجدد
پیکربندی “factor” برای ماژول سعی مجدد برای استفاده در هنگام واکشی بسته ها.
- پیش فرض: 10
- نوع: شماره
fetch-retry-mintimeout
حداقل زمان برای انتظار قبل از اتمام زمان در هنگام واکشی بسته ها از رجیستری.
- پیشفرض: 10000 (10 ثانیه)
- نوع: عدد (میلی ثانیه)
fetch-retry-maxtimeout
حداکثر زمان انتظار قبل از اتمام زمان در هنگام واکشی بستهها از رجیستری.
- پیشفرض: 10000 (10 ثانیه)
- نوع: عدد (میلی ثانیه)
کلید
این کلید مشتری است که هنگام احراز هویت با رجیستری استفاده می شود.
- پیش فرض: null
- نوع: رشته
ثبت
URL رجیستری برای استفاده برای واکشی و انتشار بسته ها.
- پیش فرض: https://registry.npmjs.org/
- نوع: URL
جستجو می کند
فهرستی از گزینه های جدا شده با فاصله که همیشه برای جستجوی رجیستری استفاده می شود.
- پیش فرض: “”
- نوع: رشته
جستجو حذف
فهرستی از محدودیتهایی که همیشه برای جستجوی رجیستری استفاده میشوند.
- پیش فرض: “”
- نوع: رشته
مرتب سازی جستجو
این نشان می دهد که کدام فیلد در نتایج باید مرتب شود روی. برای معکوس کردن ترتیب مرتب سازی، کافیست آن را با a پیشوند قرار دهید -
.
- پیش فرض: “نام”
- نوع: رشته
- مقادیر: “name”، “-name”، “date”، “-date”، “description”، “-description”، “keywords”، “-keywords”
منتشر شده در 1403-01-29 23:10:09