我真的很高兴用Parse.com学习网页开发。我有一个云应用程序,它提供jade模板和一些我想在浏览器中从.js调用的云函数。
我正在尝试使用parse docs here设置开发和制作,但我感到困惑。我的理解是,我的开发机器上会有一个源代码树,但是我将部署两个解析应用程序作为开发和生产。
似乎使用命令行parse add <alias>
会将凭据添加到我的config / global.json文件中,但是我需要进行云调用的静态服务.js文件呢?他们开始了:
Parse.$ = jQuery;
Parse.initialize("my app id", "my app js key");
如果我只有一个代码存储库,那么在部署到生产环境之前,我将不得不触摸这些密钥。那可能不对,可以吗?如果我忘了,我会部署一个破碎的应用程序。我混淆了,还是这只是我必须处理的事情?
答案 0 :(得分:1)
对于给定的会话,您只需要初始化Parse一次。这意味着您可以在浏览器从单个位置加载时执行此操作。
您可以创建某种修改键的构建脚本。
或者,在加载时,拨打一个单独的服务来保存您的密钥,并根据您的环境返回正确的密钥。
答案 1 :(得分:0)
如果其他人有这个问题,这就是我所做的(感谢@Kenneth的建议)。该脚本首先检查git是否有任何未分阶段的更改。除非我检查了所有更改,否则它拒绝运行。
然后它用生产版本替换.js文件中的所有开发/密钥,部署到我的解析生产应用程序,最后恢复.js文件以包含它们的开发密钥......
#!/bin/bash
if git diff-index --quiet HEAD --; then
echo 'Replacing app id and js keys with production keys'
sed -i '' 's/my-development-app-id/my-production-app-id/g' ./public/*.js
sed -i '' 's/my-development-js-key/my-production-js-key/g' ./public/*.js
parse deploy production
echo 'Changing back to development keys'
git checkout *.js
else
echo 'Must commit all changes before deploying to production'
fi
答案 2 :(得分:0)
同样,为了分离我们的环境,我们为每个需要的人(例如dev,qa,prod)部署了一个Parse应用程序,并使用不同的结果URL(子域,但实际上任何不同的部分都可以)来区分并发现它们我们在代码中的环境。然后,我们将环境存储在属性中。
var APP_ID, JS_KEY;
switch(location.host.split(".")[0]){ //Figure out environment off of the url (subdomain here)
case 'myappprod': //ex: myappprod.parseapp.com
MyApp.env = 'prod'
APP_ID = 'theprodappid';
JS_KEY = 'theprodjskey';
break;
case 'myappqa':
MyApp.env = 'qa'
APP_ID = 'theqaappid';
JS_KEY = 'theqajskey';
break;
default: //otherwise dev
MyApp.env = 'dev'
APP_ID = 'thedevappid';
JS_KEY = 'thedevjskey';
break;
}
您还可以使用相同的技术提示您要在本地设置中使用的环境(app)。让您使用Web服务器的虚拟主机与所有三个本地URL匹配。例如,使用nginx:
server_name myappdev.parseapp.dev myappqa.parseapp.dev myappprod.parseapp.dev;