firebase --version
3.18.4
Ubuntu 18.04 x64
ãã©ãŠã¶ã«æŽæ°ãããã³ã³ãã³ãã衚瀺ããã
ãã®ããŒãžã¯ãfirebaseserveã³ãã³ããåèµ·åããåŸã«ã®ã¿æŽæ°ãããŸãã libã®åºåãæŽæ°ãããŠããããšã確èªããŸããã
> firebase serve --only functions --debug [17:29:27]
[2018-05-01T00:29:30.975Z] ----------------------------------------------------------------------
[2018-05-01T00:29:30.978Z] Command: /home/shane/.nvm/versions/node/v6.11.5/bin/node /home/shane/.yarn/bin/firebase serve --only functions --debug
[2018-05-01T00:29:30.978Z] CLI Version: 3.18.4
[2018-05-01T00:29:30.979Z] Platform: linux
[2018-05-01T00:29:30.979Z] Node Version: v6.11.5
[2018-05-01T00:29:30.979Z] Time: Mon Apr 30 2018 17:29:30 GMT-0700 (PDT)
[2018-05-01T00:29:30.979Z] ----------------------------------------------------------------------
[2018-05-01T00:29:30.986Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"]
[2018-05-01T00:29:30.986Z] > authorizing via signed-in user
[2018-05-01T00:29:30.988Z] >>> HTTP REQUEST GET https://admin.firebase.com/v1/projects/nativ-dev
Mon Apr 30 2018 17:29:30 GMT-0700 (PDT)
[2018-05-01T00:29:31.433Z] <<< HTTP RESPONSE 200 server=nginx, date=Tue, 01 May 2018 00:29:31 GMT, content-type=application/json; charset=utf-8, content-length=128, connection=close, x-content-type-options=nosniff, strict-transport-security=max-age=31536000; includeSubdomains, cache-control=no-cache, no-store
[2018-05-01T00:29:31.437Z] >>> HTTP REQUEST GET https://admin.firebase.com/v1/database/nativ-dev/tokens
Mon Apr 30 2018 17:29:31 GMT-0700 (PDT)
[2018-05-01T00:29:31.926Z] <<< HTTP RESPONSE 200 server=nginx, date=Tue, 01 May 2018 00:29:31 GMT, content-type=application/json; charset=utf-8, content-length=256, connection=close, x-content-type-options=nosniff, strict-transport-security=max-age=31536000; includeSubdomains, cache-control=no-cache, no-store
[2018-05-01T00:29:31.927Z] >>> HTTP REQUEST GET https://cloudresourcemanager.googleapis.com/v1/projects/nativ-dev
Mon Apr 30 2018 17:29:31 GMT-0700 (PDT)
[2018-05-01T00:29:32.335Z] <<< HTTP RESPONSE 200 content-type=application/json; charset=UTF-8, vary=X-Origin, Referer, Origin,Accept-Encoding, date=Tue, 01 May 2018 00:29:32 GMT, server=ESF, cache-control=private, x-xss-protection=1; mode=block, x-frame-options=SAMEORIGIN, x-content-type-options=nosniff, alt-svc=hq=":443"; ma=2592000; quic=51303433; quic=51303432; quic=51303431; quic=51303339; quic=51303335,quic=":443"; ma=2592000; v="43,42,41,39,35", accept-ranges=none, connection=close
=== Serving from '/home/shane/source/firebase'...
i functions: Preparing to emulate functions.
[2018-05-01T00:29:32.733Z] Fetching environment
[2018-05-01T00:29:32.736Z] >>> HTTP REQUEST GET https://mobilesdk-pa.googleapis.com/v1/projects/766196581577:getServerAppConfig
Mon Apr 30 2018 17:29:32 GMT-0700 (PDT)
[2018-05-01T00:29:33.255Z] <<< HTTP RESPONSE 200 content-type=application/json; charset=UTF-8, vary=X-Origin, Referer, Origin,Accept-Encoding, date=Tue, 01 May 2018 00:29:33 GMT, server=ESF, cache-control=private, x-xss-protection=1; mode=block, x-frame-options=SAMEORIGIN, x-content-type-options=nosniff, alt-svc=hq=":443"; ma=2592000; quic=51303433; quic=51303432; quic=51303431; quic=51303339; quic=51303335,quic=":443"; ma=2592000; v="43,42,41,39,35", accept-ranges=none, connection=close
[2018-05-01T00:29:33.256Z] Starting @google-cloud/functions-emulator
[2018-05-01T00:29:34.318Z] Parsing function triggers
i functions: No HTTPS functions found. Use firebase functions:shell if you would like to emulate other types of functions.
i functions: No HTTPS functions found. Use firebase functions:shell if you would like to emulate other types of functions.
â functions: createCustomerOnCall: http://localhost:5000/nativ-dev/us-central1/createCustomerOnCall
â functions: createCustomerHttps: http://localhost:5000/nativ-dev/us-central1/createCustomerHttps
info: User function triggered, starting execution
info: Execution took 19 ms, user function completed successfully
info: User function triggered, starting execution
info: Execution took 1 ms, user function completed successfully
æ°ãããããžã§ã¯ãïŒfirebase initïŒã䜿çšããŠå¥ã®ãã·ã³ïŒDebian StretchïŒã§ãããè©Šãããšãããhelloworldé¢æ°ã§ãåãããšãèµ·ãããŸããã é¢æ°ã«ãªã¯ãšã¹ããéä¿¡ããåã«ãœãŒã¹ãå€æŽããããé¢æ°ãæäŸããæºåãã§ããåŸãäžåºŠããããªããŒãããŠããåã³åäœãåæ¢ããå¯èœæ§ãããããšã«æ°ã¥ããŸããã
MacãšLinuxãã·ã³ã§æ°ãããããžã§ã¯ãïŒfirebase initïŒãäœæããããšããŸããããLinuxã§ã¯ãªãMacã§åäœããŸãã
ããã€ãå®éšãè¡ã£ããšãããJavaScriptã®hello worldã®äŸãããããªããŒãã§ããŸããããTypeScriptã®äŸã¯ã§ããŸããã§ããã firebase serve
ã¯ã `firebase.jsonã§æ§æããããã£ã¬ã¯ããªå
ã®index.js
ã®ã¿ãç£èŠããŠããããã§ãã
TypeScriptçšã«ãããžã§ã¯ãããªããŒãããã«ã¯ïŒãããŠindex.js
以äžã®ããè€éãªJavaScriptã¬ã€ã¢ãŠããæ³å®ããŠããŸãïŒãWebpackã䜿çšããŠåäžã®ãã¡ã€ã«functions/lib/index.js
ãåºåããFirebaseãæ§æããŠèªåã®ãã¡ã€ã«ãæ¢ãå¿
èŠããããŸããé¢æ°ã¯functions/list
ã³ãŒãåããŸãã ããã«ããã firebase functions:shell
ãšfirebase serve
äž¡æ¹ã§ããããªããŒããæ©èœããŸãã
tsc
ã䜿çšããŠãããšãïŒ firebase init
ãã³ãã¬ãŒãã«åŸã£ãŠïŒãçµæã®index.js
ãã¡ã€ã«ãå€æŽããå Žåã«ã®ã¿ã³ãŒããåèªã¿èŸŒã¿ãããŸããã ç§ã®çŸåšã®ã¯ãŒã¯ãããŒãå®è¡ããããšã§ãwebpack --watch
ããŠäžã€ã®ç«¯æ«ã§firebase serve --only functions
å¥ã€ã³ãããããªããŒããçºçããŸããã firebase init
ããããã©ã«ãã«æ»ãããããã®ã«ãšæããŸãã
firebase.jsonãæŽæ°ããŸãã
{
"functions": {
"predeploy": "npm --prefix functions run build",
"source": "functions/list"
}
}
@safarmerããªãã®functions / package.jsonã¯ã©ã®ããã«èŠããŸããïŒ main
ãã£ãŒã«ãã¯ãããŸããïŒ
firebase init
ã«ãã£ãŠçæãããããã©ã«ãã䜿ãå§ããŸãã
{
"name": "functions",
"description": "Cloud Functions for Firebase",
"scripts": {
"lint": "tslint --project tsconfig.json",
"build": "tsc --project tsconfig.json",
"serve": "yarn run build && firebase serve --only functions",
"shell": "yarn run build && firebase functions:shell",
"start": "yarn run shell",
"deploy": "firebase deploy --only functions",
"logs": "firebase functions:log"
},
"main": "lib/index.js",
"dependencies": {
...
},
"devDependencies": {
...
},
"private": true
}
åé¡ãåçŸããæãç°¡åãªæ¹æ³ïŒ
firebase init && cd functions && yarn
mkdir src/handlers && mv src/index.ts src/handlers/helloworld.ts
echo "export * from './handlers/helloworld';" > src/index.ts
yarn build --watch
firebase serve --only functions
ãã©ãŠã¶ã§URLã«ã¢ã¯ã»ã¹ãããšãhelloworldã¡ãã»ãŒãžã衚瀺ãããŸãã handler.tsã®ãã³ãã©ãŒããè¿ãããæååãå€æŽããå Žåãçµæãå€æŽããå¯äžã®æ¹æ³ã¯ã firebase serve
ã³ãã³ããåèµ·åããããšã§ãã
"source": "functions/lib"
ãfirebase.json
è¿œå ãããšã functions/lib
äœããå€æŽããå Žåã«ã³ãŒããããããªããŒããããŸãããã¬ããŒãã£ã¬ã¯ããªãäœããšãªããŒãã¯ããªã¬ãŒãããŸããã touch lib/injex.js
ãå®è¡ããŠããªããŒããããªã¬ãŒããããšãã§ããŸãã ããšãã°ã src/index.ts
ãã³ãã©ãŒãå€æŽãããšãªããŒããããªã¬ãŒãããŸããã src/handlers/helloworld.ts
å€æŽããŠãããªã¬ãŒãããŸããã
@laurenzlongã¯ããããŸã§ã®ãšããïŒ touch lib/index.js
ãå®è¡ããå¿
èŠããããŸãã ããã«é¢ããããfirebase deploy
ã€ã®åé¡ã¯ã
firebase.json
{
"functions": {
"predeploy": [
"npm --prefix \"$RESOURCE_DIR\" run lint",
"npm --prefix \"$RESOURCE_DIR\" run build"
],
"source": "functions/lib"
}
}
é¢æ°/package.json
{
"name": "functions",
"scripts": {
"lint": "tslint --project tsconfig.json",
"build": "tsc",
"serve": "npm run build && firebase serve --only functions",
"shell": "npm run build && firebase functions:shell",
"start": "npm run shell",
"deploy": "firebase deploy --only functions",
"logs": "firebase functions:log"
},
"main": "lib/index.js",
"dependencies": {
"firebase-admin": "~5.12.0",
"firebase-functions": "^1.0.1"
},
"devDependencies": {
"tslint": "^5.8.0",
"typescript": "^2.5.3"
},
"private": true
}
@laurenzlongLinuxã§åé¡ãåçŸããããã«ã¯ããŒã³ãäœæã§ããç°¡åãªäŸããããŸãã
https://github.com/safarmer/firebase-functions
åçŸããŠãããŠããããšãïŒ æ¥é±èŠãŠã¿ãŸãã
ããã§åãåé¡:)
ç§ã«ã¯ã firebase serve
ã¯ä»ã®ãšããTypescriptããµããŒãããŠããªãããã§ã...
ç§ã¯ããªããèŠæ±ãããã¡ã€ã«ã@safarmerãéä¿¡ãããã¡ã€ã«ãšæ¯èŒããŸããããåãæ§æã«ãªã£ãŠããŸãã ããã¯TypeScriptã§äœ¿çšããå ¬åŒã®æ§æãªã®ã§ãç§ã¯é©ããªãã§ãã ãã
åé¡ã¯ã firebase serve
ãé¢æ°ã®ããœãŒã¹ããã£ã¬ã¯ããªã®å€æŽããªãã¹ã³ããŠãããã firebase.json
ã§å®çŸ©ãããŠããå±éåã®ã¹ã¯ãªãããå®è¡ããªãããšã ãšæããŸãã
ãããè¿œå ãããã°çŽ æŽãããã§ãããã ïŒD
ãããFirebase Serveçšã«ä»ã®ãããã€åã¹ã¯ãªãããå®çŸ©ã§ããã°çŽ æŽãããã®ã§ãããšãã°ãã¹ãã§tslint
ãå®è¡ããå¿
èŠã¯ãããŸãã:)
@IchordeDionysosTypeScriptã ãã§ã¯ãªããšæããŸãã JavaScriptã§ã®äŸãšåãããšãããããšããŸããããåãããšãããŠããããã«èŠããŸããã åé¡ã¯ããµãŒããŒããšã³ããªãã€ã³ãã®ã¿ã確èªããæ®ãã®ã³ãŒãã¯ç¢ºèªããªãããšã«ãããšæããŸãã ããŸãããã°ãfirebaseããŒã ã¯ãã®åé¡ã«ããã«å ãåœãŠãããšãã§ããŸãã
@laurenzlongæåã§watchmanãã€ã³ã¹ããŒã«ãããšã@tstirratã®ææ¡ã«æè¬ããŸãïŒ
詳现ãªåçŸ@safarmerãããããšããéåžžã«åœ¹ã«ç«ã¡ãŸããã åé¡ã®åå ãçªãæ¢ããããšãã§ãã ã ãã®åé¡ã«åŸã£ãŠãã ããã
@laurenzlong Windowsã§ãã®åé¡ãåçŸã§ããŸãããç¹ã«index.tsã®å€æŽãæ€åºãããŸããã æåã§tscãå®è¡ããå¿
èŠããããŸãã ãã®åŸãå€æŽãæ€åºãããé¢æ°ãåããŒããããŸãã
å¥ã®åé¡ãéãå¿
èŠããããŸããïŒ
ã¯ã€ãã¯ããŒãïŒtsã§info: Worker for helloWorld closed due to file changes.
ãæ€åºãããããšããããŸãããlibã¯æŽæ°ãããŸããã ãã以å€ã®å Žåã¯ããŸã£ããæ€åºãããŸããã tscãæåã§å®è¡ãããšãåžžã«é¢æ°ãåããŒããããŸãã
@tstirratã®æ瀺ã«åŸã£ãŠWindowsã«watchmanãã€ã³ã¹ããŒã«ããŠãæ©èœããªãããã§ã
ãŠã©ãããã³ãã€ã³ã¹ããŒã«ãããšãã«ç¹ã«ééãããšã©ãŒã¯äœã§ããïŒ
ãŠã©ãããã³ã®ã€ã³ã¹ããŒã«æã«ãšã©ãŒã¯çºçããŸããã ããããæ©èœãæäŸããããšã¯ç±ããããŸãã
ãªããŒãããŸãã å€æŽãããã³ã«ãæäŸãåæ¢ãããã«ãããŠãå床æäŸããå¿
èŠããããŸãã
1:01ã±ãã³å»ºã§æ°Žææ¥ã2018幎11æ21æ¥ã«[email protected]æžããŸããïŒ
ãŠã©ãããã³ãã€ã³ã¹ããŒã«ãããšãã«ç¹ã«ééãããšã©ãŒã¯äœã§ããïŒ
â
ããªããã³ã¡ã³ãããã®ã§ããªãã¯ãããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/firebase/firebase-tools/issues/758#issuecomment-440460196 ã
ãŸãã¯ã¹ã¬ããããã¥ãŒãããŸã
https://github.com/notifications/unsubscribe-auth/AHgHbeA_iECsIMH3V9P7NQypsmudF_IQks5uxInggaJpZM4Tta12
ã
ããããŸã Windowsã§æ©èœããŠããªããšããè€æ°ã®å ±åããããããåéããŸã
Node.jsv10.15.0ã䜿çšããUbuntu18.04ã§ã¯ãŸã æ©èœããŸãã
ç§ã®åé¡ã¯ãšãã¥ã¬ãŒã¿ãŒé¢é£ã§ããïŒ
https://github.com/GoogleCloudPlatform/cloud-functions-emulator/issues/196
ã¿ãªãããããã«ã¡ã¯ã詳现ãªã¬ããŒããããããšãããããŸãã @afugginiãã®ãªã³ã¯ãã¯ãªãã¯ãããš404ã衚瀺ãããŸããããããªãã¯ãã¥ãŒã€ã³ã°çšã«ãã®ãªããžããªã«ã¢ã¯ã»ã¹èš±å¯ãæ£ããèšå®ãããŠããŸããïŒ ããã«äŒŒãå¥ã®åé¡ããããŸãïŒ //github.com/firebase/firebase-tools/issues/1022ã ãã®åé¡ã¯ãTypescriptã䜿çšããããŒã«ã«éçºã®åé¡ç¹ãçã¿åºããŠãããšèããŠããŸãã
å éšãã©ãã«ãŒ123266946ã«ãã°ãå ±åããŸããããããåé¿ã§ããææã確çŽããããšã¯ã§ããŸããããããã远跡ãããŠããããšã¯ããã£ãŠããŸãã PRã¯å€§æè¿ã§ãïŒ
ç§ããã®ãšã©ãŒã«ééããŸããã åé¿çãäœæã§ããªãã£ããããå€æŽãããã³ã«ãµãŒããŒãåèµ·åããå¿ èŠããããŸãã ä¿¡é Œã§ããåé¿çããåç¥ã®å Žåã¯ããç¥ãããã ããã
@ondratraã¯ãçŸåšã®CLIããŒãžã§ã³ãšOSãã©ãããã©ãŒã ãæäŸãã npm
ïŒäŸïŒ yarn
ïŒã§äœæ¥ããŠããå Žåã¯ãç¥ãããã ããã
@bkendallç§ã¯DebianïŒsidïŒã䜿çšããŠããŸãã TypescriptãœãŒã¹ãã¡ã€ã«ã¯tsc -w
ãä»ããŠç£èŠããã³ã³ã³ãã€ã«ãããé¢æ°ã¯firebase --only functions serve
ä»ããŠæäŸãããŸãã package.json
ã¯ããžã®æ£ãããã¹ãå«ãŸããŠããŸã
jsåºåãã¡ã€ã«{"main": "dist/src/index.js", ...}
ã tsc-watch
ããã±ãŒãžãšæ瀺çã«touch
ã€ã³ããã¯ã¹ãã¡ã€ã«ã䜿çšããããšããŸããããæåããŸããã§ããã
$ firebase --version
6.3.1
ã¿ããªãç§ã®åã®ã³ã¡ã³ãããã§ãã¯ããŠãã ããã ãã®åé¡ã¯cloud-functions-emulator
é¢é£ããŠããŸãã Linuxã§æ¢ç¥ã®åé¡ãããfs
ãŠã©ããæ©èœã䜿çšããŠããŸãã ãããã£ãŠã firebase-tools.
ããçŽæ¥è§£æ±ºçãæåŸ
ããªãã§ãã ãã
@ribizli thxãããªããå ±æãããªã³ã¯ã¯ç¢ºãã«åé¡ã®æ§è³ªã説æããŠããŸãã ããããããã§ãåé¿çã¯èŠã€ãããŸããã§ããã ã«ã¹ã¿ã ã¹ã¯ãªãããä»ããŠãã¡ã€ã«ãç£èŠããFirebaseã«åŒ·å¶çã«ãªããŒããããå¯èœæ§ã¯ãããŸããïŒ
@ondratraãã©ãŒã¯@google-cloud/functions-emulator
ãè¿œå node-watch
ç§ã¯ç§ã®ãªã³ã¯ã®ã³ã¡ã³ãã§è¿°ã¹ãããã«ã npm link
ããã±ãŒãžãã firebase-tools
åã€ã³ã¹ããŒã«ããŸãããªãã·ã§ã³ã®äŸåé¢ä¿ãšããŠ@google-cloud/functions-emulator
ããããªã³ã¯ãããããŒãžã§ã³ã䜿çšãããŸãã
ãããŠæåŸã«ã httpsïŒ//github.com/GoogleCloudPlatform/cloud-functions-emulatorã«PRãäœæããŠãããã«åãå ¥ããŠãªãªãŒã¹ããããšãæåŸ ã§ããŸãã ïŒåé¿çãè¬ããããšãã§ããã®ã§ãè²¢ç®ããŠããŸããïŒ
é¢æ°->ãã®ãã¡ã€ã«ãä¿åããåŸã®index.jsããfirebaseserveãã®èªåå®è¡ãéå§ããæ¹æ³
https://github.com/GoogleCloudPlatform/cloud-functions-emulator/issues/196ããã®åé¿çïŒ@dirkjotã«æè¬ïŒïŒ
ããã¯ç§ã®ããã«åããŸãããããã«å®å šãªæ瀺ãš@ribizliã®å°ããªã¿ã€ããã¹ã®ä¿®æ£ããããŸãïŒ
@google-cloud
ãã£ã¬ã¯ããªããããããnode_modules
èŠã€ããŸãïŒFirebaseã«ã€ããŠã¯ä»¥äžãã芧ãã ããïŒcd functions-emulator
- ããŒããŠã©ãããè¿œå ïŒ
npm install --save node-watch
- ãã¡ã€ã«ãç·šéããŸã
src/supervisor/worker.js
- 180è¡ç®ãããã«
fs.watch(localdir, {
ãŸãã ãããrequire('node-watch')(localdir, {
眮ãæããŸããTypescriptã§Firebaseã䜿çšãããšãå¥ã®ç«¯æ«ã§
tsc -w
ãå®è¡ããã ãã§ãïŒnpm run build
ã®ãŠã©ããããªã¢ã³ãïŒã ããã§ãœãŒã¹ã³ãŒããå€æŽã§ãããšãã¥ã¬ãŒã¿ãŒãå€æŽã«æ°ä»ãã§ãããã
firebase
ã°ããŒãã«ã«ã€ã³ã¹ããŒã«ããå Žåã¯ãcd $(npm root -g)/firebase-tools/node_modules/@google-cloud
移åããŠãããã®ãã¡ã€ã«ãèŠã€ããããšãã§ããŸãã
ã¿ãªãããããã«ã¡ã¯ã
ãã®ãã°ã¯ãåŸæ¥ã®CloudFunctionsãšãã¥ã¬ãŒã¿ãŒã®ããããªããŒãæ©èœã«é¢é£ããŠããŸããã 19幎5æã®æç¹ã§ã firebase-tools
google-cloud/functions-emulator
ã䜿çšããªããªã£ãããããã°ã®æ§è³ªãå€ãããŸãïŒæ°ããæ§è³ªã¯ããã°ãååšããªãããšã ãšæããŸãïŒã
çãããäžçæžåœåããŠåé¿çãèŠã€ããŠãããããšã«æè¬ããŸããæåŸã«ãæ°ãããšãã¥ã¬ãŒã¿ãŒã§ã¯ããŠã©ããã£ãŒïŒ tsc -w
ïŒãfirebase serve
å¥ã«å®è¡ããŠããéãããã©ã³ã¹ãã€ã«ãããèšèªãããããªããŒãã§ããããã«ããå¿
èŠããããŸãã ã
æ°ãããšãã¥ã¬ãŒã¿ããã¯ãšã³ãã§ãã®åé¡ã解決ãããã®ã¹ã¬ããã®ãã¹ãŠã®åé¿çãå€ããªã£ãŠãããããæ··ä¹±ãé¿ããããã«ãã®ã¹ã¬ãããéããŸãã
ããã§ãæå³ããªãåäœãèŠãããå Žåã¯ãæ°ãããã°ãéããŠãã ããã
å床ãæè¬ããŸãïŒ
ä»ã®äººãããã«ãã©ãçããå Žåãå®éã«functions/package.json
ã§èšå®ããæ¹æ³firebase serve
次ã®ãšããã§ãããããã£ãŠã tsc -w
ã¯firebase serve
ã¯å¥ã«å®è¡ãããŸãã
{
"name": "functions",
"scripts": {
...
"serve": "tsc -w | firebase serve --only functions",
...
},
ã€ãŸãã tsc -w
ãå®è¡ããåºåãfirebase serve
ãã€ãããŸãã ãã€ããå®éã«äœããéä¿¡ãããšã¯æããªãã ãœãŒã¹ãå€æŽããããšãtscãåå®è¡ããã firebase serve
ãtsc
ã®åºåãã£ã¬ã¯ããªïŒ lib
ïŒãç£èŠããŠããã®ã§ããªããŒããããšæããŸãã ãããã£ãŠããã€ãã¯å®éã«ã¯ããã»ã¹ç®¡çã®ããã ãã«ãããŸãã
åæã«ã€ã³ã¹ããŒã«ããããšã¯ç§ã®ããã«åããïŒ
"build:watch": "tsc -w && cp src/*.json lib",
"serve": "firebase serve --only functions",
"start": "concurrently \"npm run build:watch\" \"npm run serve\"",
[email protected]
ç§ã«ãšã£ãŠãããããªããŒãã¯ç®±ããåºããŠæ©èœããŠããŸããã ç§ã¯ä¿®æ£build
ã§functions/package.json
ããtsc -w
ãšããŠ
{
"name": "functions",
"scripts": {
...
"build": "tsc -w",
...
},
ããã«ããã npm run build
ãå®è¡ããåŸã another terminal
ããfirebase emulators:start
ãå®è¡ãããšãã«ãé¢æ°ã®ãŠã©ãããã¢ã¯ãã£ãã«ãªããŸãã
@ rami-alloushããã¯ç§ã䜿çšããã¯ãŒã¯ãããŒã§ãã ãšãã¥ã¬ãŒã¿ãŒã¯ã³ãŒããåãã«ãããŸãããããã«ããããã³ãŒããããããªããŒãããŸãã
å¥ã®ããŒãžã§ã³
{
"build": "tsc -w &>/dev/null &",
"shell": "npm run build && firebase functions:shell",
}
ããã¯ããã¯ã°ã©ãŠã³ãã§éãã«tsc
ãå®è¡ãããããå¥ã®ç«¯æ«ã¯å¿
èŠãããŸããã
åçŸããŠãããŠããããšãïŒ æ¥é±èŠãŠã¿ãŸãã
ããã¯...ã§ããïŒ
typescriptã§åãåé¡ã«çŽé¢ããããããªããŒããæ©èœããŸããã
åã...ããããªããŒããæ©èœããããšãã¥ã¬ãŒã¿ã«å€æŽãèªèãããã®ã¯å°é£ã§ã...
@oluckymanã¯åé¡ã解決ããŸããã éåžžã«çŽ æŽããã
https://github.com/firebase/firebase-tools/issues/758#issuecomment -620096052
firebase-tools
=> 8.7.0
ç§ã®è§£æ±ºçïŒ
...
"scripts": {
"lint": "tslint --project tsconfig.json",
"build": "tsc -w --preserveWatchOutput",
"serve": "tsc && firebase emulators:exec --ui --only functions,firestore 'yarn build'",
"shell": "yarn run build && firebase functions:shell",
"start": "yarn run shell",
"deploy": "firebase deploy --only functions",
"logs": "firebase functions:log"
},
...
yarn serve
å®è¡ããŸã
ããã¯ãtypescriptã䜿çšããfirebase-toolsããŒãžã§ã³8.8.1
ã§ãçŸæç¹ã§ã¯å®å
šã«æ£åžžã«æ©èœããŸãã ãã³ããããããšã@ moifort @ garyo @safarmer @abeisgoat ïŒ1st_place_medal ::
"scripts": {
...
...
"serve": "yarn build | firebase emulators:start --only functions",
"build": "./node_modules/.bin/tslint --project tsconfig.json && ./node_modules/.bin/tsc --watch --preserveWatchOutput"
},
æãåèã«ãªãã³ã¡ã³ã
ä»ã®äººãããã«ãã©ãçããå Žåãå®éã«
functions/package.json
ã§èšå®ããæ¹æ³firebase serve
次ã®ãšããã§ãããããã£ãŠãtsc -w
ã¯firebase serve
ã¯å¥ã«å®è¡ãããŸããã€ãŸãã
tsc -w
ãå®è¡ããåºåãfirebase serve
ãã€ãããŸãã ãã€ããå®éã«äœããéä¿¡ãããšã¯æããªãã ãœãŒã¹ãå€æŽããããšãtscãåå®è¡ãããfirebase serve
ãtsc
ã®åºåãã£ã¬ã¯ããªïŒlib
ïŒãç£èŠããŠããã®ã§ããªããŒããããšæããŸãã ãããã£ãŠããã€ãã¯å®éã«ã¯ããã»ã¹ç®¡çã®ããã ãã«ãããŸãã