Rom*_*nov 20 web-deployment node.js mean-stack
MEAN.JS堆栈提出了为生产准备应用程序的"grunt构建"任务.不幸的是,缺乏有关后续步骤的信息.实际上,尚不清楚如何将应用程序部署到生产以及如何启动它.
问题#1 除了config/env/production.js的变化之外,项目中必须配置什么?例如,如何使用自定义字体?
问题#2 好的.代码部署到Production(通过Git,rsync等).运行它就足够了
$NODE_ENV=production node server.js&
Run Code Online (Sandbox Code Playgroud)
Rom*_*nov 35
我建议执行以下步骤以部署到生产环境:
仔细检查/config/env/production.js
配置文件并包括您手动添加的所有资产/config/env/all.js
.这是使用缩小版本进行生产的好方法.
(可选)如果你的应用程序中有自定义字体,我建议更新gruntfile.js并添加一个将字体复制到/ public/dist /文件夹的任务.我做了以下更改:
copy: {
main:{
expand: true,
flatten: true,
src: ['public/modules/core/fonts/*'],
dest: 'public/dist/',
filter: 'isFile'
}
},
...
// Build task(s).
grunt.registerTask('build', ['lint', 'loadConfig', 'ngmin', 'uglify', 'cssmin', 'copy']);
Run Code Online (Sandbox Code Playgroud)
复制任务需要安装grunt-copy模块
现在是时候制作单个application.js,application.min.js和application.min.css文件进行制作(参见/public/dist
文件夹).在app文件夹中运行
$grunt build
Run Code Online (Sandbox Code Playgroud)将文件复制到生产服务器.我更喜欢使用GIT推送部署.它仅向服务器发送增量更改.如果您使用GIT进行推送部署,则需要将`/ public/dist /'文件夹中的所有文件添加到存储库中.
因为你在项目中使用express.js就足以使用命令了
$NODE_ENV=production node server.js&
Run Code Online (Sandbox Code Playgroud)
我知道一些开发人员永远使用(node.js的模块),但我更喜欢使用UPSTART(基于事件的init守护进程),它默认在Ubuntu上可用作系统服务.我在/etc/init
文件夹中创建一个配置文件,例如/etc/init/my-app.conf
.在此之后,我可以启动,停止,重新启动我的应用程序作为服务.例如,服务my-app开始|停止|重启
如果发生故障,UPSTART将监控并重新启动您的服务(请参阅UPSTART配置中的respawn命令).您可以在此处找到有关如何制作UPSTART配置文件的详细解答:node.js的upstart脚本
(可选,但建议)安装nginx
在前面Node.js
.由于安全原因,建议在非特权用户下运行您的Web应用程序,另一方面,如果您想为您的Web应用程序使用端口80(它是http协议的默认端口)(例如http:// my-app-) domain.com/而不是http://my-app-domain.com:3000/)这样的配置可能很棘手.因此,我在我的网络应用程序前面使用Nginx(端口80),它实际上可用于非特权用户可用的端口(例如3000)
6A.而不是Nginx你可以使用Varnish
归档时间: |
|
查看次数: |
16462 次 |
最近记录: |