npmAuthenticate@0 - مصادقة npm (لمشغلي المهام) v0

استخدم هذه المهمة لتوفير npm بيانات الاعتماد لملف .npmrc في المستودع الخاص بك لنطاق البناء. وهذا يمكن ، بالإضافة npm إلى مشغلي المهام مثل gulp وGreunt، من npmالمصادقة مع السجلات الخاصة.

بناء الجملة

# npm authenticate (for task runners) v0
# Don't use this task if you're also using the npm task. Provides npm credentials to an .npmrc file in your repository for the scope of the build. This enables npm task runners like gulp and Grunt to authenticate with private registries.
- task: npmAuthenticate@0
  inputs:
    workingFile: # string. Required. .npmrc file to authenticate. 
    #customEndpoint: # string. Credentials for registries outside this organization/collection.
# npm Authenticate (for task runners) v0
# Don't use this task if you're also using the npm task. Provides npm credentials to an .npmrc file in your repository for the scope of the build. This enables npm task runners like Gulp and Grunt to authenticate with private registries.
- task: npmAuthenticate@0
  inputs:
    #workingFile: # string. .npmrc file to authenticate. 
    #customEndpoint: # string. Credentials for registries outside this account/collection.

الإدخالات

workingFile - ملف .npmrc للمصادقة
string. مطلوب

المسار إلى .npmrc الملف الذي يحدد السجلات التي تريد العمل معها. حدد الملف، وليس المجلد، مثل /packages/mypackage.npmrc.


workingFile - ملف .npmrc للمصادقة
string.

المسار إلى .npmrc الملف الذي يحدد السجلات التي تريد العمل معها. حدد الملف، وليس المجلد، مثل /packages/mypackage.npmrc.


customEndpoint - بيانات الاعتماد للسجلات خارج هذه المؤسسة/المجموعة
string.

القائمة المفصولة بفاصلة لأسماء اتصال خدمة npm للسجلات خارج هذه المؤسسة أو المجموعة. يجب أن يحتوي الملف المحدد .npmrc على إدخالات السجل المقابلة لاتصالات الخدمة. إذا كنت بحاجة فقط إلى سجلات في هذه المؤسسة أو المجموعة، فاترك هذا فارغا. يتم استخدام بيانات اعتماد البنية تلقائيا.


customEndpoint - بيانات الاعتماد للسجلات خارج هذا الحساب/المجموعة
string.

القائمة المفصولة بفاصلة لأسماء اتصال خدمة npm للسجلات خارج هذه المؤسسة أو المجموعة. يجب أن يحتوي الملف المحدد .npmrc على إدخالات السجل المقابلة لاتصالات الخدمة. إذا كنت بحاجة فقط إلى سجلات في هذه المؤسسة أو المجموعة، فاترك هذا فارغا. يتم استخدام بيانات اعتماد البنية تلقائيا.


خيارات التحكم بالمهمة

تحتوي جميع المهام على خيارات التحكم بالإضافة إلى مدخلات المهام الخاصة بها. لمزيد من المعلومات، راجع خيارات التحكم وخصائص المهمة الشائعة.

متغيرات الإخراج

لا شيء

الملاحظات

استخدم هذه المهمة لتوفير npm بيانات الاعتماد لملف .npmrc في المستودع الخاص بك لنطاق البناء. وهذا يمكن ، بالإضافة npm إلى مشغلي المهام مثل gulp وGreunt، من npmالمصادقة مع السجلات الخاصة.

كيف تعمل هذه المهمة؟

تبحث هذه المهمة في الملف المحدد .npmrc عن إدخالات السجل، ثم إلحاق تفاصيل المصادقة للسجلات المكتشفة بنهاية الملف. بالنسبة لجميع السجلات في المؤسسة/المجموعة الحالية، يتم استخدام بيانات اعتماد البناء. بالنسبة للسجلات في مؤسسة مختلفة أو مستضافة من قبل جهة خارجية، ستتم مقارنة معرفات URL الخاصة بالسجل بعناوين URL لاتصالات خدمة npm المحددة بواسطة customEndpoint الإدخال، وسيتم استخدام بيانات الاعتماد المقابلة. .npmrc سيتم إرجاع الملف إلى حالته الأصلية في نهاية تنفيذ البنية الأساسية لبرنامج ربط العمليات التجارية.

متى يجب أن أقوم بتشغيل هذه المهمة في البنية الأساسية لبرنامج ربط العمليات التجارية؟

يجب تشغيل هذه المهمة قبل استخدام npm، أو npm مشغل مهمة، لتثبيت الحزم أو دفعها إلى مستودع npm مصادق عليه مثل Azure Artifacts. لا توجد متطلبات ترتيب أخرى.

لدي العديد من مشاريع npm. هل أحتاج إلى تشغيل هذه المهمة لكل ملف .npmrc؟

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

- task: npmAuthenticate@0
  inputs:
    workingFile: $(agent.tempdirectory)/.npmrc
- script: echo ##vso[task.setvariable variable=NPM_CONFIG_USERCONFIG]$(agent.tempdirectory)/.npmrc
- script: npm ci
  workingDirectory: project1
- script: npm ci
  workingDirectory: project2

وكيلي خلف وكيل ويب. هل سيتم npmAuthenticate الإعداد npm/gulp/Grunt لاستخدام الوكيل الخاص بي؟

الإجابة لا. بينما ستعمل هذه المهمة نفسها خلف وكيل ويب تم تكوين وكيلك لاستخدامه، فإنه لا يقوم بتكوين npm مشغلات المهام أو npm استخدامها لاستخدام الوكيل.

للقيام بذلك، يمكنك إما:

  • قم بتعيين متغيرات http_proxy/https_proxy البيئة واختياريا no_proxy إلى إعدادات الوكيل. راجع تكوين npm للحصول على التفاصيل. لاحظ أن هذه هي المتغيرات شائعة الاستخدام التي قد تستخدمها أيضا الأدوات الأخرى غيرnpm (مثل curl).

  • أضف إعدادات الوكيل إلى تكوين npm، إما يدويا، باستخدام مجموعة تكوين npm، أو عن طريق تعيين متغيرات البيئة مسبوقة ب NPM_CONFIG_.

    الحذر:
    npm قد لا تكون مشغلات المهام متوافقة مع جميع أساليب تكوين الوكيل التي يدعمها npm.

  • حدد الوكيل مع علامة سطر الأوامر عند استدعاء npm.

    - script: npm ci --https-proxy $(agent.proxyurl)
    

إذا كان الوكيل يتطلب مصادقة، فقد تحتاج إلى إضافة خطوة بناء إضافية لإنشاء URI وكيل مصادق عليه.

- script: node -e "let u = url.parse(`$(agent.proxyurl)`); u.auth = `$(agent.proxyusername):$(agent.proxypassword)`; console.log(`##vso[task.setvariable variable=proxyAuthUri;issecret=true]` + url.format(u))"
- script: npm publish --https-proxy $(proxyAuthUri)

يحتاج المسار الخاص بي إلى الوصول إلى موجز في مشروع مختلف

إذا كان المسار قيد التشغيل في مشروع مختلف عن المشروع الذي يستضيف الموجز، فيجب عليك إعداد المشروع الآخر لمنح حق الوصول للقراءة/الكتابة إلى خدمة الإنشاء. راجع أذونات الحزمة في Azure Pipelines لمزيد من التفاصيل.

أمثلة

استعادة npm حزم مشروعك من سجل داخل مؤسستك

إذا كانت السجلات المصادق عليها الوحيدة التي تستخدمها هي سجلات Azure Artifacts في مؤسستك، فأنت بحاجة فقط إلى تحديد المسار إلى .npmrc ملف للمهمة npmAuthenticate .

.npmrc

registry=https://pkgs.dev.azure.com/{organization}/_packaging/{feed}/npm/registry/
always-auth=true

npm

- task: npmAuthenticate@0
  inputs:
    workingFile: .npmrc
- script: npm ci
# ...
- script: npm publish

استعادة الحزم ونشرها npm خارج مؤسستك

.npmrc إذا كان يحتوي على سجلات Azure Artifacts من مؤسسة مختلفة أو استخدم مستودع حزمة مصادق عليه من جهة خارجية، فستحتاج إلى إعداد اتصالات خدمة npm وتحديدها في customEndpoint الإدخال. ستتم أيضا مصادقة السجلات داخل مؤسسة Azure Artifacts تلقائيا.

.npmrc

registry=https://pkgs.dev.azure.com/{organization}/{project}/_packaging/{feed}/npm/registry/
@{scope}:registry=https://pkgs.dev.azure.com/{otherorganization}/_packaging/{feed}/npm/registry/
@{otherscope}:registry=https://{thirdPartyRepository}/npm/registry/
always-auth=true

قد يحتوي عنوان URL للتسجيل الذي يشير إلى موجز Azure Artifacts على المشروع أو لا يحتوي عليه. يجب أن يحتوي عنوان URL لموجز نطاق المشروع على المشروع، ويجب ألا يحتوي عنوان URL لموجز نطاق المؤسسة على المشروع. تعرف على المزيد حول موجزات المشروع.

أداة npm

- task: npmAuthenticate@0
  inputs:
    workingFile: .npmrc
    customEndpoint: OtherOrganizationNpmConnection, ThirdPartyRepositoryNpmConnection
- script: npm ci
# ...
- script: npm publish -registry https://pkgs.dev.azure.com/{otherorganization}/_packaging/{feed}/npm/registry/

OtherOrganizationNpmConnection وهي ThirdPartyRepositoryNpmConnection أسماء اتصالات خدمة npm التي تم تكوينها والمخولة لاستخدامها في البنية الأساسية لبرنامج ربط العمليات التجارية الخاصة بك، ولديها عناوين URL التي تطابق تلك الموجودة في الملف المحدد .npmrc .

المتطلبات

المتطلب الوصف
أنواع البنية الأساسية لبرنامج ربط العمليات التجارية YAML، الإصدار الكلاسيكي، الإصدار الكلاسيكي
يعمل على Agent, DeploymentGroup
المطالب بلا
القدرات لا تفي هذه المهمة بأي طلبات للمهام اللاحقة في الوظيفة.
قيود الأوامر أي
متغيرات Settable أي
إصدار الوكيل 2.115.0 أو أحدث
فئة المهمة الحزمة