我的firebase项目需要先进行移植,然后才能进行部署。该代码以./app
编写,并被转换为./dist
。
当前,当我运行firebase serve --only app
时,出现错误消息:“无法理解要部署的目标。如果使用--only或--except标志,请检查是否指定了有效目标。否则,请检查Firebase。 json,以确保您的项目已针对所需功能进行了初始化。”
现在,我每次在部署时都想将应用程序切换到package.json中的dist并在开发时返回。我应该如何配置firebase.json以便可以从./app
提供服务并可以从./dist
进行部署?
//firebase.json
{
"functions": {
"predeploy": [
"npm --prefix $RESOURCE_DIR run lint"
],
"source": "app"
}
}
//package.json
{
"main": "./dist/index.js",
"name": "functions",
"description": "Cloud Functions for Firebase",
"scripts": {
"deploy": "firebase deploy --only dist",
"lint": "eslint app test",
"logs": "firebase functions:log",
"precommit": "npm run lint && npm test",
"prepare": "rm -rf dist && babel ./app/ -d ./dist && mkdir dist/private && cp app/private/conf.json dist/private/conf.json && cp package.json dist/package.json",
"serve": "firebase serve --only app",
"shell": "firebase experimental:functions:shell",
"start": "npm run shell",
"test": "jest"
},
"dependencies": {
"cors": "^2.8.4",
"cross-fetch": "^2.1.0",
"firebase-admin": "^5.12.1",
"firebase-functions": "^1.0.3",
"moment": "^2.22.1",
"uuid": "^3.2.1"
},
"devDependencies": {
"babel-cli": "^6.26.0",
"babel-plugin-transform-object-rest-spread": "^6.26.0",
"babel-plugin-transform-runtime": "^6.23.0",
"babel-preset-env": "^1.6.1",
"babel-runtime": "^6.26.0",
"eslint": "^4.12.0",
"eslint-plugin-promise": "^3.6.0",
"husky": "^0.14.3",
"jest": "^23.1.0"
},
"private": true
}
答案 0 :(得分:0)
出乎意料的是,我在工作站上遇到了同样的错误。有时,firebase cli的活动项目未正确更新。我发现要解决此问题的解决方案是将活动项目设置为另一个项目,然后通过设置我真正想用作Firebase活动项目的项目来撤消它。
firebase use antotherFirebaseProjectID
然后
firebase use myFirebaseProjectID
否则,您也可以尝试重新启动计算机,并希望它可以正确初始化firebase活动项目