تحذير، لا تستخدم package.json
لاسم المجلد إذا كنت تريد استنساخ هذا المشروع على جهازك - فسيؤدي ذلك إلى قطع yarn
( An unexpected error occurred: "EISDIR: illegal operation on a directory, read".
).
النسخة الأصلية من هذه الوثيقة منسوخة من Yarnpkg.
راجع أيضًا وثائق npm، وstd-pkg، وclean-publish، وpackage-json-validator، وcosmiconfig، وrc (باعتباره نهجًا معارضًا لـ cosmiconfig).
name
version
description
keywords
license
homepage
bugs
repository
author
contributors
files
main
bin
man
directories
scripts
scripts
محددة لـ npmconfig
dependencies
devDependencies
peerDependencies
optionalDependencies
bundledDependencies
engines
os
cpu
libc
private
publishConfig
flat
resolutions
workspaces
bolt
unpkg
types
flow:main
browserslist
module
browser
esnext
es2015
esm
module-browser
modules.root
jsnext:main
react-native
sideEffects
source
: umd:main
source
@std/esm
jspm
ignore
format
registry
shim
map
browserify.transform
proxy
homepage
babel
eslintConfig
jest
stylelint
size-limit
pwmetrics
ava
nyc
preferGlobal
style
less
standard
الحقلان الأكثر أهمية في package.json
الخاص بك هما name
version
، وبدونهما لن تتمكن الحزمة الخاصة بك من التثبيت. يتم استخدام حقلي name
version
معًا لإنشاء معرف فريد.
name
{
"name" : " my-awesome-package "
}
هذا هو اسم الحزمة الخاصة بك. يتم استخدامه في عناوين URL، كوسيطة في سطر الأوامر، وكاسم الدليل داخل node_modules
.
yarn add [name]
node_modules/[name]
https://registry.npmjs.org/[name]/-/[name]-[version].tgz
قواعد
@scope/
للحزم المحددة النطاق)..
) أو الشرطة السفلية ( _
).نصائح
js
أو node
في الاسم.require()
.version
{
"version" : " 1.0.0 "
}
الإصدار الحالي من الحزمة الخاصة بك.
description
{
"description" : " My short description of my awesome package "
}
الوصف هو مجرد سلسلة تساعد الأشخاص على فهم الغرض من الحزمة. ويمكن استخدامه عند البحث عن الحزم في مدير الحزم أيضًا.
keywords
{
"keywords" : [ " short " , " relevant " , " keywords " , " for " , " searching " ]
}
الكلمات الأساسية هي مجموعة من السلاسل المفيدة عند البحث عن الحزم في مدير الحزم.
license
{
"license" : " MIT " ,
"license" : " (MIT or GPL-3.0) " ,
"license" : " SEE LICENSE IN LICENSE_FILENAME.txt " ,
"license" : " UNLICENSED "
}
يجب أن تحدد جميع الحزم ترخيصًا حتى يعرف المستخدمون كيف يُسمح لهم باستخدامه وأي قيود تضعها عليه.
ننصحك باستخدام ترخيص مفتوح المصدر (معتمد من OSI) ما لم يكن لديك سبب محدد لعدم القيام بذلك. إذا قمت ببناء الحزمة الخاصة بك كجزء من وظيفتك فمن الأفضل مراجعة شركتك قبل اتخاذ قرار بشأن الترخيص.
يجب أن يكون واحدًا مما يلي:
SEE LICENSE IN <filename>
التي تشير إلى <filename>
في المستوى الأعلى من الحزمة الخاصة بك إذا كنت تستخدم ترخيصًا غير قياسي.UNLICENSED
إذا كنت لا ترغب في منح الآخرين الحق في استخدام حزمة خاصة أو غير منشورة تحت أي شروط. روابط مختلفة للوثائق وأماكن تقديم المشكلات والمكان الذي يوجد فيه رمز الحزمة الخاص بك فعليًا.
homepage
{
"homepage" : " https://your-package.org "
}
الصفحة الرئيسية هي عنوان URL للصفحة المقصودة أو الوثائق الخاصة بحزمتك.
يستخدم أيضًا بواسطة إنشاء تطبيق React
bugs
{
"bugs" : " https://github.com/user/repo/issues "
}
عنوان URL لمتتبع المشكلات الخاص بمشروعك. يمكن أن يكون هذا أيضًا شيئًا مثل عنوان البريد الإلكتروني أيضًا. فهو يوفر للمستخدمين طريقة لمعرفة مكان إرسال المشكلات المتعلقة بحزمتك.
repository
{
"repository" : { "type" : " git " , "url" : " https://github.com/user/repo.git " },
"repository" : " github:user/repo " ,
"repository" : " gitlab:user/repo " ,
"repository" : " bitbucket:user/repo " ,
"repository" : " gist:a1b2c3d4e5f "
}
المستودع هو الموقع الذي يوجد به الرمز الفعلي لحزمتك.
القائمين على مشروعك.
author
{
"author" : { "name" : " Your Name " , "email" : " [email protected] " , "url" : " http://your-website.com " },
"author" : " Your Name <[email protected]> (http://your-website.com) "
}
معلومات مؤلف الحزمة. المؤلف هو شخص واحد.
contributors
{
"contributors" : [
{ "name" : " Your Friend " , "email" : " [email protected] " , "url" : " http://friends-website.com " }
{ "name" : " Other Friend " , "email" : " [email protected] " , "url" : " http://other-website.com " }
],
"contributors" : [
" Your Friend <[email protected]> (http://friends-website.com) " ,
" Other Friend <[email protected]> (http://other-website.com) "
]
}
أولئك الذين ساهموا في الحزمة الخاصة بك. المساهمون هم مجموعة من الناس.
يمكنك تحديد الملفات التي سيتم تضمينها في مشروعك، بالإضافة إلى نقطة الدخول الرئيسية لمشروعك.
files
{
"files" : [
" filename.js " ,
" directory/ " ,
" glob/*.{js,json} "
]
}
هذه هي الملفات المضمنة في مشروعك. يمكنك تحديد ملفات فردية أو أدلة كاملة أو استخدام أحرف البدل لتضمين الملفات التي تستوفي معايير معينة.
main
{
"main" : " filename.js "
}
هذه هي نقطة الدخول الأساسية لوظيفة مشروعك.
bin
{
"bin" : " bin.js " ,
"bin" : {
"command-name" : " bin/command-name.js " ,
"other-command" : " bin/other-command "
}
}
الملفات القابلة للتنفيذ المضمنة في مشروعك والتي سيتم تثبيتها.
man
{
"man" : " ./man/doc.1 " ,
"man" : [ " ./man/doc.1 " , " ./man/doc.2 " ]
}
إذا كانت لديك صفحات دليلية مرتبطة بمشروعك، فأضفها هنا.
directories
{
"directories" : {
"lib" : " path/to/lib/ " ,
"bin" : " path/to/bin/ " ,
"man" : " path/to/man/ " ,
"doc" : " path/to/doc/ " ,
"example" : " path/to/example/ "
}
}
عند تثبيت الحزمة الخاصة بك، يمكنك تحديد المواقع الدقيقة لوضع الملفات الثنائية وصفحات الدليل والوثائق والأمثلة وما إلى ذلك.
يمكن أن تتضمن الحزمة الخاصة بك برامج نصية قابلة للتشغيل أو تكوينات أخرى.
scripts
{
"scripts" : {
"build-project" : " node build-project.js "
}
}
تعد البرامج النصية طريقة رائعة لأتمتة المهام المتعلقة بحزمتك، مثل عمليات البناء البسيطة أو أدوات التطوير. باستخدام حقل "scripts"
، يمكنك تحديد نصوص برمجية متنوعة ليتم تشغيلها yarn run <script>
. على سبيل المثال، يمكن استدعاء البرنامج النصي build-project
أعلاه باستخدام yarn run build-project
وسيقوم بتشغيل node build-project.js
.
بعض أسماء البرامج النصية خاصة. إذا تم تعريفه، فسيتم استدعاء البرنامج النصي preinstall
بواسطة الغزل قبل تثبيت الحزمة الخاصة بك. لأسباب تتعلق بالتوافق، سيتم استدعاء البرامج النصية المسماة install
و postinstall
و prepublish
بعد انتهاء تثبيت الحزمة الخاصة بك.
قيمة البرنامج النصي start
هي node server.js
افتراضيًا.
"scripts": {"start": "node server.js"}
. إذا كان هناك ملف server.js في جذر الحزمة الخاصة بك، فسيقوم npm بتعيين أمر البدء افتراضيًا على العقدة server.js.
"scripts":{"preinstall": "node-gyp rebuild"}
. إذا كان هناك ملف Binding.gyp في جذر الحزمة الخاصة بك، فسيقوم npm بتجميع أمر التثبيت المسبق افتراضيًا باستخدام Node-gyp.- مستندات npm
scripts
محددة لـ npm يدعم npm خاصية scripts
لملف package.json
، للبرامج النصية التالية:
prepublish
: يتم التشغيل قبل تعبئة الحزمة ونشرها، وكذلك عند تثبيت npm المحلي دون أي وسائط. (انظر أدناه)prepare
: قم بتشغيل كليهما قبل تعبئة الحزمة ونشرها، وعلى تثبيت npm المحلي دون أي وسيطات (انظر أدناه). يتم تشغيل هذا بعد النشر المسبق، ولكن قبل النشر المسبق فقط.prepublishOnly
: يتم تشغيله قبل إعداد الحزمة وتعبئتها، فقط عند نشر npm. (انظر أدناه.)prepack
: يتم تشغيله قبل تعبئة كرة القطران (في حزمة npm، ونشر npm، وعند تثبيت تبعيات git)postpack
: قم بالتشغيل بعد إنشاء كرة القطران ونقلها إلى وجهتها النهائية.publish
، postpublish
: يتم التشغيل بعد نشر الحزمة.preinstall
: قم بالتشغيل قبل تثبيت الحزمةinstall
، postinstall
: يتم التشغيل بعد تثبيت الحزمة.preuninstall
، uninstall
: قم بالتشغيل قبل إلغاء تثبيت الحزمة.postuninstall
: يتم تشغيله بعد إلغاء تثبيت الحزمة.preversion
: قم بالتشغيل قبل رفع إصدار الحزمة.version
: قم بالتشغيل بعد رفع إصدار الحزمة، ولكن قبل الالتزام.postversion
: يتم التشغيل بعد رفع إصدار الحزمة، وبعد الالتزام.pretest
test
posttest
: يتم تشغيله بواسطة أمر اختبار npm.prestop
، stop
، poststop
: يتم تشغيله بواسطة أمر npm stop.prestart
، start
، poststart
: يتم تشغيله بواسطة أمر npm start.prerestart
restart
postrestart
: يتم تشغيلها بواسطة أمر إعادة التشغيل npm. ملاحظة: ستؤدي إعادة تشغيل npm إلى تشغيل البرامج النصية للإيقاف والبدء في حالة عدم توفير برنامج نصي لإعادة التشغيل.preshrinkwrap
، shrinkwrap
، postshrinkwrap
: يتم تشغيلهما بواسطة الأمر npmتقلص.المصدر: مستندات npm.
config
{
"config" : {
"port" : " 8080 "
}
}
خيارات التكوين أو المعلمات المستخدمة في البرامج النصية الخاصة بك.
من المحتمل جدًا أن تعتمد الحزمة الخاصة بك على الحزم الأخرى. يمكنك تحديد تلك التبعيات في ملف package.json
الخاص بك.
dependencies
{
"dependencies" : {
"package-1" : " ^3.1.4 "
}
}
هذه هي التبعيات المطلوبة في كل من التطوير والإنتاج لحزمتك.
يمكنك تحديد إصدار محدد، أو إصدار أدنى (على سبيل المثال،
>=
) أو نطاق من الإصدارات (على سبيل المثال>= ... <
).
devDependencies
{
"devDependencies" : {
"package-2" : " ^0.4.2 "
}
}
هذه هي الحزم المطلوبة فقط عند تطوير الحزمة الخاصة بك ولكن لن يتم تثبيتها في الإنتاج.
peerDependencies
{
"peerDependencies" : {
"package-3" : " ^2.7.18 "
}
}
تتيح لك تبعيات الأقران تحديد مدى توافق الحزمة الخاصة بك مع إصدارات الحزم الأخرى.
optionalDependencies
{
"optionalDependencies" : {
"package-5" : " ^1.6.1 "
}
}
يمكن استخدام التبعيات الاختيارية مع الحزمة الخاصة بك، ولكنها ليست مطلوبة. إذا لم يتم العثور على الحزمة الاختيارية، فسيستمر التثبيت.
bundledDependencies
{
"bundledDependencies" : [
" package-4 "
]
}
التبعيات المجمعة هي مجموعة من أسماء الحزم التي سيتم تجميعها معًا عند نشر الحزمة الخاصة بك.
يمكنك توفير معلومات على مستوى النظام مرتبطة بحزمتك، مثل توافق نظام التشغيل، وما إلى ذلك.
engines
{
"engines" : {
"node" : " >=4.4.7 <7.0.0 " ,
"zlib" : " ^1.2.8 " ,
"yarn" : " ^0.14.0 "
}
}
تحدد المحركات إصدارات العملاء التي يجب استخدامها مع الحزمة الخاصة بك. يقوم هذا بالتحقق من process.versions
بالإضافة إلى الإصدار الحالي من الغزل.
os
{
"os" : [ " darwin " , " linux " ],
"os" : [ " !win32 " ]
}
يحدد هذا توافق نظام التشغيل لحزمتك. إنه يتحقق من process.platform
.
cpu
{
"cpu" : [ " x64 " , " ia32 " ],
"cpu" : [ " !arm " , " !mips " ]
}
استخدم هذا لتحديد أن الحزمة الخاصة بك سوف تعمل فقط على بنيات معينة لوحدة المعالجة المركزية. هذا يتحقق ضد process.arch
.
libc
{
"libc" : [ " glibc " ],
"libc" : [ " musl " ]
}
استخدم هذا لتحديد أن الحزمة الخاصة بك تعمل فقط على نكهة معينة من libc. يقوم هذا بالتحقق من النتيجة من detect-libc
.
private
{
"private" : true
}
إذا كنت لا تريد نشر الحزمة الخاصة بك في مدير الحزم، فاضبط هذا على true
.
publishConfig
{
"publishConfig" : {
...
}
}
سيتم استخدام قيم التكوين هذه عند نشر الحزمة الخاصة بك. يمكنك وضع علامة على الحزمة الخاصة بك، على سبيل المثال.
flat
{
"flat" : true
}
إذا كانت الحزمة الخاصة بك تسمح فقط بإصدار واحد من تبعية معينة، وكنت ترغب في فرض نفس السلوك مثل yarn install --flat
في سطر الأوامر، فاضبط هذا على true
.
لاحظ أنه إذا كانت package.json
تحتوي على "flat": true
وتعتمد الحزم الأخرى على حزمتك (على سبيل المثال، إذا كنت تقوم بإنشاء مكتبة بدلاً من تطبيق)، فستحتاج هذه الحزم الأخرى أيضًا إلى "flat": true
في package.json
الخاصة بها أو تكون تم تثبيته باستخدام yarn install --flat
في سطر الأوامر.
resolutions
{
"resolutions" : {
"transitive-package-1" : " 0.0.29 " ,
"transitive-package-2" : " file:./local-forks/transitive-package-2 " ,
"dependencies-package-1/transitive-package-3" : " ^2.1.1 "
}
}
يسمح لك بتجاوز إصدار تبعية متداخلة معينة. راجع قرارات RFC للإصدارات الانتقائية للحصول على المواصفات الكاملة.
لاحظ أن تثبيت التبعيات عبر [ yarn install --flat
] سيضيف تلقائيًا كتلة resolutions
إلى ملف package.json
الخاص بك.
workspaces
إذا كان --use-workspaces
صحيحًا، فسيتم تجاوز packages
بالقيمة من package.json/workspaces
.
المصدر: --use-workspaces.
bolt
انظر التكوين
{
"bolt" : {
"workspaces" : [
" utils/* " ,
" apps/* "
]
}
}
unpkg
إذا قمت بحذف مسار الملف (على سبيل المثال، استخدم عنوان URL "عاريًا")، فسيقوم unpkg بعرض الملف المحدد بواسطة حقل unpkg
في package.json
، أو سيعود إلى main
(المصدر).
types
إذا كانت الحزمة الخاصة بك تحتوي على ملف .js
رئيسي، فستحتاج إلى الإشارة إلى ملف التصريح الرئيسي في ملف package.json
الخاص بك أيضًا. قم بتعيين خاصية types
للإشارة إلى ملف الإقرار المجمع الخاص بك. على سبيل المثال:
{
"main" : " ./lib/main.js " ,
"types" : " ./lib/main.d.ts "
}
لاحظ أن حقل typings
مرادف types
، ويمكن استخدامه أيضًا.
لاحظ أيضًا أنه إذا كان ملف التصريح الرئيسي الخاص بك يسمى index.d.ts
ويتواجد في جذر الحزمة (بجانب index.js
) فلن تحتاج إلى وضع علامة على خاصية types
، على الرغم من أنه من المستحسن القيام بذلك.
المصدر: وثائق TypeScript
ملاحظة: في التدفق يستخدمون نهجًا مختلفًا
flow:main
غير معتمد رسميًا. الاقتراح هنا.
browserslist
؟ مكتبة لمشاركة المتصفحات المستهدفة بين أدوات الواجهة الأمامية المختلفة. يتم استخدامه في:
package.json
أو browserslist
المدعومة في الإصدار 2.0) جميع الأدوات التي تعتمد على Browserslist ستجد تكوينها تلقائيًا، عند إضافة ما يلي إلى package.json
:
{
"browserslist" : [
" > 1% " ,
" last 2 versions "
]
}
المصدر: قائمة المتصفحات.
راجع أيضًا: إنشاء دعم تطبيق React.
راجع "إعداد حزم npm متعددة المنصات" للحصول على مقدمة.
module
سيشير pkg.module
إلى وحدة نمطية تحتوي على بناء جملة الوحدة النمطية ES2015، ولكن بخلاف ذلك فقط ميزات بناء الجملة التي تدعمها البيئات المستهدفة. الوصف الكامل هنا.
بدعم من: التراكمية، حزمة الويب
browser
يتم توفير حقل browser
بواسطة مؤلف الوحدة النمطية كتلميح لمحزمات جافا سكريبت أو أدوات المكونات عند تعبئة الوحدات النمطية للاستخدام من جانب العميل. الاقتراح هنا.
مدعوم من: التراكمي، حزمة الويب، المتصفح
الدعم المطلوب: babel-plugin-module-resolver
esnext
الاقتراح الكامل هنا. شرح مختصر:
esnext
: الكود المصدري الذي يستخدم ميزات المرحلة 4 (أو الأقدم)، غير منقول، في وحدات ES.main
: يشير إلى وحدة CommonJS (أو وحدة UMD) مع JavaScript الحديثة التي يمكن لـ Node.js التعامل معها حاليًا.module
قابلة للتعامل معها عبر esnext
.browser
عبر نسخة موسعة من esnext
{
"main" : " main.js " ,
"esnext" : {
"main" : " main-esnext.js " ,
"browser" : " browser-specific-main-esnext.js "
}
}
راجع أيضًا: تسليم كود المصدر غير المترجم عبر npm
es2015
رمز ES6 غير المترجم. المصدر: تنسيق الحزمة الزاوي (APF) v5.0
esm
الاقتراح موجود هنا: الاقتراح المعدل: وحدة ES "esm": علامة package.json الحقيقية
أنظر أيضا:
module-browser
انظر هذه المسألة
يُشار إليه أيضًا باسم moduleBrowser
، jsnext:browser
.
modules.root
مذكور في الدفاع عن .js.
هناك أيضًا modules.resolver
.
jsnext:main
موقوف
تم استبدال jsnext:main
بـ pkg.module
، الذي يشير إلى موقع الملف الذي يحتوي على إعلانات الاستيراد/التصدير. الاقتراح الأصلي هنا.
بدعم من: التراكمية.
react-native
يعمل بشكل مشابه browser
، ولكن مع وحدات تفاعلية محددة. مصدر.
sideEffects
يشير إلى أن وحدات الحزمة ليس لها أي آثار جانبية (عند التقييم) وتكشف فقط عن الصادرات. وهذا يسمح لأدوات مثل webpack بتحسين عمليات إعادة التصدير.
راجع أيضًا: مثال sideEffects
، اقتراح لوضع علامة على الوظائف على أنها نقية، وeslint-plugin-tree-shaking.
source
: umd:main
راجع تحديد الإصدارات في package.json.
source
راجع مجمع الطرود/الطرد رقم 1652.
@std/esm
لدى المطورين آراء قوية حول كل شيء تقريبًا. لاستيعاب ذلك، يسمح @std/esm
بفتح ميزات إضافية باستخدام الحقل "@std/esm"
أو "@std":{"esm":{}}
في package.json
الخاص بك.
المصدر: @std/esm Unlockables
jspm
يمكنك كتابة جميع خصائص الحزمة في قاعدة package.json، أو إذا كنت لا ترغب في تغيير الخصائص الحالية التي ترغب في استخدامها خصيصًا لـ npm
، فيمكنك كتابة التكوين الخاص بـ jspm داخل خاصية jspm
لـ سوف يستخدم package.json وjspm هذه الخيارات عبر خيارات التكوين على مستوى الجذر.
على سبيل المثال:
{
"name" : " my-package " ,
"jspm" : {
"main" : " jspm-main "
}
}
انظر المواصفات الكاملة.
ignore
إذا كانت هناك ملفات أو مجلدات معينة يجب تجاهلها، فيمكن إدراجها في مصفوفة.
format
الخيارات هي esm
و amd
و cjs
global
.
عند تحميل الوحدات من
npm
، يتم التعامل مع تنسيق الوحدة على أنهcjs
افتراضيًا ولا يتم تشغيل الكشف التلقائي. لتحميل وحدات بتنسيق آخر، ستحتاج إلى تجاوز هذه الخاصية يدويًا.
تنسيق الوحدة النمطية
esm
(وحدة ECMAScript) غير مستخدم حاليًا في package.json.
registry
يفهم jspm التبعيات في سياق التسجيل.
عند تحميل الحزم من npm، سيقوم jspm بتعيين السجل الافتراضي على npm
، ويتعامل مع التبعيات وفقًا لذلك.
عند تحميل الحزم من GitHub، يتم تجاهل خاصية التبعيات دون وجود خاصية التسجيل، حيث لا يوجد لدى jspm طريقة لمعرفة ما تعنيه التبعيات لمستودعات GitHub الحالية.
يحدد تعيين خاصية التسجيل أيضًا كيفية تفسير jspm للحزمة. على سبيل المثال، حزمة GitHub مع registry: "npm"
، إلى جانب الحصول على تبعياتها من npm، سيتم تفسيرها على أنها CommonJS وتتطلب ميزات الدعم مثل الدليل وJSON، تمامًا كما لو تم تثبيتها من نقطة نهاية npm للبدء بها.
حزمة على GitHub مع تعيين خاصية التسجيل الخاصة بها على registry: "jspm"
على أنها تبعيات على نمط jspm.
shim
تحتاج الحزم المكتوبة كحزم عالمية إلى تكوين الرقائق لتعمل بشكل صحيح في بيئة معيارية. لدمج ملف some/global.js
داخل الحزمة، يمكننا كتابة:
{
"shim" : {
"some/global" : {
"deps" : [ " jquery " ],
"exports" : " globalExportName "
}
}
}
كل من deps
exports
اختيارية.
يتم اكتشاف exports
تلقائيًا بواسطة أداة تحميل SystemJS مثل أي عمليات عمومية مكتوبة بواسطة البرنامج النصي. في معظم الحالات، سيعمل هذا الكشف بشكل صحيح.
نموذج الاختصار "some/global": ["jquery"]
مدعوم أيضًا في حالة عدم وجود exports
.
map
سيعيد تكوين الخريطة كتابة المتطلبات الداخلية للإشارة إلى وحدات محلية أو خارجية مختلفة.
خذ بعين الاعتبار الحزمة التي تتضمن تبعيتها الخاصة، dep
الموجود في third_party/dep
. يمكن أن تحتوي على عبارة تتطلب داخليًا مثل:
require ( 'dep' ) ;
من أجل استخدام النسخة المحلية، يمكننا أن نكتب:
{
"map" : {
"dep" : " ./third_party/dep "
}
}
قد يكون من المفيد أيضًا الإشارة إلى الحزمة باسمها ضمن الوحدات الفرعية:
{
"map" : {
"thispackage" : " . "
}
}
يمكننا بعد ذلك الحصول على حل داخلي يتطلب import 'thispackage/module'
بشكل صحيح.
يمكن أن يشير تكوين الخريطة أيضًا إلى الوحدات الفرعية التابعة.
يمكننا أيضًا استبعاد الوحدات بالكامل عن طريق ربطها بالوحدة الفارغة:
{
"map" : {
"jquery" : " @empty "
}
}
ستكون القيمة التي تم إرجاعها عبارة عن كائن وحدة نمطية بدون عمليات تصدير.
browserify.transform
التوثيق هنا
proxy
غالبًا ما يخدم الأشخاص تطبيق React للواجهة الأمامية من نفس المضيف والمنفذ مثل تنفيذ الواجهة الخلفية الخاصة بهم.
المصدر: طلبات واجهة برمجة التطبيقات (Proxying API) في التطوير
homepage
المصدر: بناء المسارات النسبية
babel
انظر هذه المسألة.
eslintConfig
jest
{
"jest" : {
"verbose" : true
}
}
المصدر: مستندات jest
stylelint
انظر: محمل التكوين الجديد
size-limit
إذا كنت تستخدم هذه المكتبة، فيمكنك تحديد إعداداتها في package.json
:
{
"size-limit" : [
{
"limit" : " 9 KB " ,
"path" : " index.js "
}
]
}
المصدر: الحد الأقصى للحجم
pwmetrics
يمكنك تحديد الخيارات في package.json
:
{
"pwmetrics" : {
"url" : " http://example.com/ " ,
"expectations" : {
"ttfcp" : {
"warn" : " >=1500 " ,
"error" : " >=2000 "
}
}
}
}
جميع الخيارات المتاحة هنا
المصدر: بمتريكس
ava
مثال:
"ava" : {
"require" : [ " @std/esm " ]
}
المصدر: افا
nyc
مثال:
"nyc" : {
"extension" : [ " .js " , " .mjs " ],
"require" : [ " @std/esm " ]
}
المصدر: مدينة نيويورك
preferGlobal
موقوف
يُستخدم هذا الخيار لإطلاق تحذير npm، لكنه لن يحذر بعد الآن. إنه هناك لأغراض إعلامية بحتة. يوصى الآن بتثبيت أي ثنائيات باعتبارها تبعيات تطوير محلية حيثما أمكن ذلك.
style
تعتبر سمة style
في package.json
مفيدة لاستيراد حزم CSS. الاقتراح هنا.
مدعوم من: لا يتجزأ، npm-less، إعادة صياغة npm، npm-css.
أنظر أيضا: istf-spec.
less
نفس style
ولكن بسعر أقل.
بدعم من: npm-less.
الحقول التالية محجوزة للتوسع المستقبلي: build
، default
، email
، external
، files
، imports
، maintainer
، paths
، platform
، require
، summary
، test
، using
، downloads
، uid
.
الحقول التالية محجوزة لسجلات الحزم لاستخدامها وفقًا لتقديرها: id
، type
.
جميع الخصائص التي تبدأ بـ _
أو $
محجوزة أيضًا لسجلات الحزم لاستخدام تقديرها.
المصدر: ويكي CommonJS
standard
Standard JS هو دليل لأسلوب جافا سكريبت، وinter، ومنسق، ويمكنك إضافة بعض الخصائص إلى package.json، مثل parser
، و ignore
، و globals
، و plugins
.
مثال:
"standard" : {
"parser" : " babel-eslint " ,
"ignore" : [
" **/out/ " ,
" /lib/select2/ " ,
" /lib/ckeditor/ " ,
" tmp.js "
]
}
أنظر أيضا: معيار JS