Angular SSR을 추가하려고하는데 다음과 같은 클라우드 기능을 만들었습니다.
import * as functions from 'firebase-functions';
import * as path from 'path';
const universal = require(path.resolve(__dirname, '../../dist/server/main')).app;
export const ssr = functions.https.onRequest(universal);
package.json
{
"engines": {
"node": "8"
},
"main": "lib/index.js",
"dependencies": {
"@types/jsdom": "^11.0.4",
"firebase-admin": "^8.10.0",
"firebase-functions": "^3.6.0",
"path": "^0.12.7",
},
"devDependencies": {
"typescript": "^3.8.3",
"firebase-functions-test": "^0.2.1"
}
}
함수를 빌드 한 다음 배포하면 오류가 발생합니다.
! functions[ssr(us-central1)]: Deployment error.
Function failed on loading user code. Error message: Code in file lib/index.js can't be loaded.
Did you list all required modules in the package.json dependencies?
Detailed stack trace: Error: Cannot find module '/dist/server/main'
at Function.Module._resolveFilename (module.js:548:15)
at Function.Module._load (module.js:475:25)
at Module.require (module.js:597:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/srv/lib/ssr.js:5:19)
at Module._compile (module.js:653:30)
at Object.Module._extensions..js (module.js:664:10)
at Module.load (module.js:566:32)
at tryModuleLoad (module.js:506:12)
at Function.Module._load (module.js:498:3)
내 폴더 구조는 다음과 같습니다.
dist
|-server
|-browser
functions
|-lib
어떻게 고칠 수 있습니까?
귀하의 코드가 "functions"폴더 외부의 파일에 액세스하려고하는 것 같습니다. 즉, "../../dist/server/main"이 해당 폴더의 경계 외부에 도달하고 있습니다. 함수 폴더의 콘텐츠 만 Firebase CLI에 의해 배포됩니다. 그 밖의 모든 것은 배포 후 함수에서 액세스 할 수 없습니다. 해당 콘텐츠를 사용하려면 거기에 복사해야합니다. 그리고 예, 프런트 엔드와 백엔드 모두에서 사용하는 경우 해당 파일을 복제해야 할 수도 있습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다