Skip to main content

Tedshd's Dev note

在 cloud functions 或是 firebase functions 處理 nodejs 使用 import 的方式

Table of Contents

# Intro

現在在使用 nodejs 時可以使用副檔名 .mjs 的方式和 package.js 添加 "type": "module" 來使用 import 來取代 require

關於這件事也是因為有許多歷史因素無法完全取代掉 require

但是如果我們想要在 cloud functions 或是 firebase functions 使用時就沒那麼順利

因為光是要使用 .mjs 就是個問題

但是參考下面的文章後發現有取巧的方式

refer - ES6+ in Cloud Functions for Firebase #2

# Solution

先說結論

其實就是先用 babel build 完 code

最後把 build 完的 code 部署到 functions 上面

以 firebase functions 專案的例子

我自己的做法是 多建立一個 src 的目錄來當成再開發的 code

在部署前 build 到 functions 的目錄

package.json

添加

"scripts": {
  "build": "babel src --out-dir functions"
}

npm run build

就會把 src 目錄的檔案編譯到 functions 目錄