探索与创新:MEAN.JS全栈JavaScript开发框架

探索与创新:MEAN.JS全栈JavaScript开发框架

MEAN.JS Logo

MEAN.JS是一个强大的全栈JavaScript开源解决方案,它为基于MongoDBNode.jsExpressAngularJS的应用提供了一个坚实的起点。该框架的目标是解决这些流行框架间的连接问题,构建一个稳健的基础以支持日常的开发需求,并帮助开发者在使用JavaScript组件时遵循最佳实践。

开始之前

在您开始之前,建议您了解MEAN.JS的基础构成:

必要条件

确保您的开发环境已安装以下先决条件:

$ npm install -g bower

获取MEAN.JS

有多种方法可以获取MEAN.JS:

使用GitHub克隆仓库

推荐的方式是从GitHub直接克隆MEAN.JS仓库:

$ git clone https://github.com/meanjs/mean.git meanjs

这将把最新的MEAN.JS仓库克隆到名为meanjs的文件夹中。

下载ZIP归档

另一种方式是从GitHub master分支下载ZIP文件。也可以用wget命令:

$ wget https://github.com/meanjs/mean/archive/master.zip -O meanjs.zip; unzip meanjs.zip; rm meanjs.zip

别忘了将mean-master重命名为您的项目名。

使用Yo生成器

利用官方Yo生成器,您可以快速创建MEAN.JS的初始版本,还附带一个应用程序生成器,以简化日常开发流程。

快速安装

当您下载了模板并安装所有必需项后,只需几个步骤就可以启动您的应用。

模板中预装了package.jsonbower.json文件,列出了启动应用所需的模块。

在应用目录中运行以下命令来安装依赖:

$ npm install

这一命令会执行以下操作:

  1. 安装应用程序运行所必需的依赖包。
  2. 如果是在开发环境中,也会安装测试和运行应用所需的开发依赖包。
  3. 当npm包安装完成后,npm会触发Bower安装前端所需的所有模块。
  4. 要更新这些包,只需运行npm update

运行你的应用

使用npm运行你的应用:

$ npm start

应用将在开发环境下运行,监听3000端口,因此只需要在浏览器中访问http://localhost:3000即可。

一切就绪!现在你的应用正在运行。继续阅读文档,开启你的开发之旅。

探索config/env/development.js以了解开发环境配置选项。

生产环境运行

要在生产环境中运行应用:

$ npm run start:prod

查看config/env/production.js以了解生产环境配置选项。

用户种子运行

在运行时创建默认账号:

开发环境:

MONGO_SEED=true npm start

若用户'"user"'或'admin"已存在,控制台会显示错误信息。只需从控制台复制密码即可。

生产环境:

MONGO_SEED=true npm start:prod

仅在'admin'用户不存在的情况下,一次性为其创建。请记下控制台给出的密码。

使用TLS(SSL)运行

应用默认会在安全模式下运行,即启用SSL,监听8443端口。 为了以安全的方式运行应用,你需要使用OpenSSL生成一套自签名证书。在类Unix系统上,可以使用以下命令:

$ npm run generate-ssl-certs

Windows用户请参照此处的说明。 生成密钥和证书后,将其放入config/sslcerts目录。

最后,执行prod任务npm run start:prod

  • 在生产环境中,通过更改config/env/production.js中的secure选项启用/禁用SSL模式。

应用测试

运行完整的测试套件,使用test任务:

$ npm test

这会运行服务器端(位于app/tests/目录)和客户端(位于public/modules/*/tests/)的测试。

只运行服务器端测试,使用test:server任务:

$ npm run test:server

如果只想重新运行修改过的服务器端测试,使用test:server:watch任务:

$ npm run test:server:watch

而只运行客户端测试,则使用test:client任务:

$ npm run test:client

使用Gulp运行应用

MEAN.JS集成了Gulp作为构建工具和任务自动化工具。

我们使用npm脚本包装了Gulp任务,因此无论使用哪个构建工具,对项目的运行都保持透明。

首先全局安装Gulp:

$ npm install gulp -g

然后以开发环境运行:

$ gulp

直接使用Gulp运行,你可以使用npm run gulp <task>,如npm run gulp eslint来运行指定的任务。

使用Docker开发和部署

使用Compose进行本地开发和测试:

$ docker-compose up

直接用Docker进行本地开发和测试:

$ docker build -t mean .
$ docker run -p 27017:27017 -d --name db mongo
$ docker run -p 3000:3000 --link db:db_1 mean

若要启用实时重载,转发端口35729并挂载/app和/public作为卷:

$ docker run -p 3000:3000 -p 35729:35729 -v /your/path/to/mean-stack/mean/public:/home/mean/public -v /your/path/to/mean-stack/mean/app:/home/mean/app --link db:db_1 mean

使用Docker进行生产部署:

  • 通过Compose进行生产部署:
$ docker-compose -f docker-compose-production.yml up -d
  • 仅使用Docker进行生产部署:
$ docker build -t mean -f Dockerfile-production .
$ docker run -p 27017:27017 -d --name db mongo
$ docker run -p 3000:3000 --link db:db_1 mean

使用MEAN.JS开始

你已经有了应用运行起来,但还有很多东西需要理解。我们推荐你浏览官方文档。 在文档中,我们将尝试解释MEAN组件的通用概念,并为你提供一些指南,帮助你改进开发流程。我们试图涵盖尽可能多的方面,并根据你的要求持续更新。你也可以帮助我们开发和改善文档,通过检查这个项目的gh-pages分支。

社区

深度参与

  • 点击按钮部署至Heroku,注册Heroku账号并将工作副本部署至云端,无需经过上述步骤。
  • 设置Amazon S3以存储用户头像,设置以下环境变量:UPLOADS_STORAGE设为s3S3_BUCKET设为桶名称,S3_ACCESS_KEY_ID设为S3访问键,S3_SECRET_ACCESS_KEY设为S3访问秘钥。

开源贡献

我们欢迎社区的pull请求!请务必阅读贡献指南开始贡献。

致谢

Madhusudhan Srinivasa的伟大工作启发,MEAN名字由Valeri Karpov创造。

许可证

MIT许可证

  • 12
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乌昱有Melanie

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值