Catch up on everthing we announced at this year's Firebase Summit. Learn more

از TypeScript برای عملکردهای Cloud استفاده کنید

برای توسعه دهندگانی که ترجیح می دهند توابع را در TypeScript بنویسند ، Cloud Functions دو نوع پشتیبانی ارائه می دهد:

  • ایجاد و پروژه های پیکربندی تایپاسکریپت برای transpilation خودکار در مقدار دهی اولیه ( firebase init functions ).
  • Transpile منبع تایپاسکریپت موجود به جاوا اسکریپت در زمان اعزام از طریق یک قلاب predeploy .

با دنبال کردن دستورالعمل های موجود در این راهنما ، می توانید یک پروژه جاوا اسکریپت موجود را به TypeScript منتقل کرده و به کارگیری توابع با استفاده از یک قلاب پیش برنامه ریزی برای انتقال کد منبع خود ادامه دهید. TypeScript هنگام نوشتن توابع مزایای بسیاری نسبت به JavaScript وانیلی دارد:

  • TypeScript از جدیدترین ویژگی های جاوا اسکریپت مانند async/await پشتیبانی می کند و مدیریت وعده را ساده می کند
  • یک خط عملکردهای ابری مشکلات رایج را هنگام کد نویسی برجسته می کند
  • نوع ایمنی به شما کمک می کند تا از خطاهای زمان اجرا در عملکردهای استقرار شده جلوگیری کنید

اگر شما به تایپاسکریپت جدید هستید، ببینید تایپاسکریپت در 5 دقیقه .

راه اندازی پروژه جدید عملکردهای ابری با TypeScript

اجرای firebase init functions در یک دایرکتوری جدید. این ابزار گزینه هایی برای ساخت پروژه با JavaScript یا TypeScript به شما می دهد. انتخاب تایپاسکریپت به خروجی ساختار پروژه های زیر است:

myproject
 +- functions/     # Directory containing all your functions code
      |
      +- package.json  # npm package file describing your Cloud Functions code
      |
      +- tsconfig.json
      |
      +- .eslintrc.js # Optional file if you enabled ESLint
      +- tsconfig.dev.json # Optional file that references .eslintrc.js
      |
      +- src/     # Directory containing TypeScript source
      |   |
      |   +- index.ts  # main source file for your Cloud Functions code
      |
      +- lib/
          |
          +- index.js  # Built/transpiled JavaScript code
          |
          +- index.js.map # Source map for debugging

هنگامی که مقدار دهی اولیه کامل است، کامنت نمونه در index.ts و اجرا npm run serve برای دیدن یک "سلام جهان" تابع در عمل است.

استفاده از پروژه TypeScript موجود

اگر یک پروژه TypeScript موجود دارید ، می توانید یک قلاب پیش کار اضافه کنید تا مطمئن شوید پروژه شما هر بار که کد خود را در Cloud Functions for Firebase مستقر می کنید منتقل می شود. شما به درستی تشکیل نیاز tsconfig.json فایل و یک پروژه فایربیس، و شما نیاز به ایجاد تغییرات زیر به پیکربندی Firebase خود:

  1. ویرایش package.json برای اضافه کردن یک اسکریپت bash به ساخت پروژه تایپاسکریپت خود را. مثلا:

     {
       "name": "functions",
       "scripts": {
         "build": "npm run lint && tsc"
       }
     ...
    
  2. ویرایش firebase.json برای اضافه کردن یک قلاب predeploy به اجرا اسکریپت ساخت. مثلا:

     {
       "functions": {
         "predeploy": "npm --prefix functions run build",
       }
     }
    

با این پیکربندی، یک firebase deploy --only functions دستور ایجاد کد تایپاسکریپت خود را و آن اعزام به عنوان توابع.

انتقال پروژه جاوا اسکریپت موجود به TypeScript

اگر یک پروژه عملکردهای ابری موجود دارید که آن را در جاوا اسکریپت راه اندازی و توسعه داده اید ، می توانید آن را به TypeScript منتقل کنید. شما به شدت تشویق می شوید که قبل از شروع ، یک نقطه بازرسی git یا سایر نسخه های پشتیبان ایجاد کنید.

برای انتقال پروژه جاوا اسکریپت توابع ابری موجود:

  1. یک نقطه بازرسی git ایجاد کنید و کپی فایل های منبع جاوا اسکریپت موجود خود را ذخیره کنید.
  2. در دایرکتوری پروژه، اجرا firebase init functions و را انتخاب کنید TypeScript هنگامی که برای یک زبان برای نوشتن توابع را برانگیخت.
  3. وقتی از شما خواسته که آیا به بازنویسی موجود package.json فایل، بدون انتخاب مگر اینکه شما مطمئن شما نمی خواهید برای حفظ فایل های موجود.
  4. حذف index.ts در دایرکتوری functions/src ، جایگزینی آن با کد منبع موجود خود را.
  5. در tsconfig.json فایل ایجاد شده در مقدار دهی اولیه، تنظیم گزینه های کامپایلر اجازه می دهد تا جاوا اسکریپت: "allowJs": true .
  6. کپی ذخیره شده خود را package.json فایل را به functions دایرکتوری، و ویرایش آن را به مجموعه "main" به "lib/index.js" .
  7. همچنین در package.json ، اضافه کردن یک اسکریپت برای ساخت تایپاسکریپت مانند زیر:

     {
       "name": "functions",
       "scripts": {
         "build": "npm run lint && tsc"
       }
     ...
    
  8. اضافه کردن "typescript" به عنوان یک وابستگی توسعه تمدن در حال اجرا توسط npm install --save-dev typescript @typescript-eslint/eslint-plugin @typescript-eslint/parser .

  9. برای همه وابستگیها، اجرا npm install --save @types/<dependency> .

  10. کد منبع را از .js به .ts به دلخواه بازنویسی کنید.

شبیه سازی توابع TypeScript

برای توابع آزمون تایپاسکریپت به صورت محلی، شما می توانید ابزار شبیه سازی شرح داده شده در استفاده از توابع به صورت محلی اجرا . این مهم است که کامپایل کد خود را قبل از استفاده از این ابزار، بنابراین مطمئن شوید که به اجرای npm run build داخل پوشه توابع خود را قبل از اجرای firebase emulators:start و یا firebase functions:shell . روش دیگر، اجرا npm run serve و یا npm run shell به عنوان یک میانبر؛ این دستورات هم build را اجرا می کنند و هم پوسته توابع را سرویس/شروع می کنند.

گزارش عملکردها برای پروژه های TypeScript

در طول firebase deploy ، پروژه خود را index.ts به transpiled index.js ، به این معنی که توابع ابر ورود اعداد خط خروجی از index.js فایل و نه کد شما نوشته است. به آن را آسان تر برای شما برای پیدا کردن مسیرهای مربوطه و شماره خط در index.ts ، firebase deploy ایجاد functions/lib/index.js.map . شما می توانید این نقشه منبع در IDE مورد نظر خود را یا از طریق یک استفاده ماژول گره .