云上持续交付实践系列4 --- node 篇

简介: 本文会演示如何在CRP上编译并部署一个Node应用。

本文会演示如何在CRP上编译并部署一个Node应用。

相关的技术和网站

  1. 阿里云持续交付平台 https://crp.aliyun.com
  2. 阿里云Code https://code.aliyun.com

crp提供的编译能力

现在crp平台已经支持node0.12,node4.4.x, node5.9.x 版本的项目编译/测试

常用的node编译指令和环境

1.常用的node相关的指令

    npm install //安装依赖
    npm list   //列举已经安装的依赖
    npm test   //执行测试

2.配置npm的源为淘宝的npm镜像源

通过config命令

npm config set registry https://registry.npm.taobao.org 
npm info node (显示有镜像源)

命令行指定

npm --registry https://registry.npm.taobao.org info underscore 

编辑 ~/.npmrc 加入下面内容

echo 'registry = https://registry.npm.taobao.org' >> ~/.npmrc

准备node代码库

选择最新github获得星较多的npm-check项目,该项目用于检测本地的node modules的状态,提供更新,debug等功能。
代码库地址:https://code.aliyun.com/qingyang1015/npm-check.git
有兴趣的同学可以先把这个代码下载下来按照README.md现在本地跑起来。

CRP上关联代码库

打开项目->项目设置->代码管理

1_1

输入代码库名称
1_2

点击添加,关联代码库
1_3

CRP上配置工作流

只配置代码更新和编译/测试任务

创建nodeBuild工作流,配置触发器

2_1

点击“开始节点”

2_2

配置编译/测试任务

点击“任务列表”,添加任务
2_3

选择语言的类型
2_4

输入编译的指令,自带有默认的指令
2_5

配置好的工作流

2_6

编译/测试的指令为:

npm -d install
npm test

试运行工作流

生效工作流

4_1

触发工作流

5_1

工作流运行的状态

6_1
6_2

运行的日志和结果:

6_3

配置带有部署的工作流

配置部署任务,具体的部署参数可参看https://yq.aliyun.com/articles/26414?spm=5176.team20.teamshow1.19.yHg6Pa
7_1

部署指令(当前版本为node5.9):

mkdir -p /home/admin/yuxiao/apps/npm-check
tar -xf  /home/admin/yuxiao/apps/package.tgz  -C /home/admin/yuxiao/apps/npm-check
cd /home/admin/yuxiao/apps/npm-check
node bin/cli.js -s >> /tmp/npm-check.log
ls -l /tmp/npm-check.log

运行工作流

查看执行的结果
7_3

一些细节和约定

  • crp配置部署任务前需要配置代码更新。
  • node项目的编译依赖package.json,编译指令常用“npm install”,crp编译项目时默认的淘宝镜像源,编译速度较快。
  • node版本的变化从0.12到4.4再到5.9,crp支持现有的主流版本,可适用于多种不同版本的项目;
  • crp工作流配置时如果部署任务需要使用编译结束的包,则需要配置输出物路径,如果填写“./”,会讲整个项目打包;如果不配置输出物路径,则不会上传编译的包,会引用源码包。
目录
相关文章
|
12天前
|
消息中间件 监控 JavaScript
Node.js中的微服务架构:构建与实践
【4月更文挑战第30天】本文探讨了在Node.js中构建微服务的实践,包括定义服务边界、选择框架(如Express、Koa或NestJS)、设计RESTful API、实现服务间通信(HTTP、gRPC、消息队列)、错误处理、服务发现与负载均衡,以及监控和日志记录。微服务架构能提升应用的可伸缩性、灵活性和可维护性。
|
2月前
|
数据采集 JavaScript 前端开发
利用axios库在Node.js中进行代理请求的实践
利用axios库在Node.js中进行代理请求的实践
|
2月前
|
Web App开发 JavaScript 前端开发
深入浅出:Node.js 在后端开发中的应用与实践
【2月更文挑战第13天】本文旨在探讨Node.js这一流行的后端技术如何在现代Web开发中被应用以及它背后的核心优势。通过深入分析Node.js的非阻塞I/O模型、事件驱动机制和单线程特性,我们将揭示其在处理高并发场景下的高效性能。同时,结合实际开发案例,本文将展示如何利用Node.js构建高性能、可扩展的后端服务,以及在实际项目中遇到的挑战和解决方案。此外,我们还将讨论Node.js生态系统中的重要工具和库,如Express.js、Koa.js等,它们如何帮助开发者快速搭建和部署应用。通过本文的探讨,读者将获得对Node.js在后端开发中应用的深入理解,以及如何有效利用这一技术来提升开发效率
122 2
|
4月前
|
JavaScript 前端开发 数据安全/隐私保护
NodeJS 下构建 命令行工具(CLI) 与 交互式命令界面 的实践
NodeJS 下构建 命令行工具(CLI) 与 交互式命令界面 的实践
239 1
|
10月前
|
数据采集 JSON JavaScript
node-spider:node实践简单的爬虫
node-spider:node实践简单的爬虫
71 0
|
12月前
|
JavaScript 前端开发 Devops
上手华为软开云DevOps前后端分离实践之-静态资源服务器(Node.js)
上手华为软开云DevOps前后端分离实践之-静态资源服务器(Node.js)
138 0
|
12月前
|
存储 Web App开发 JavaScript
Node.js躬行记(28)——Cypress自动化测试实践
Node.js躬行记(28)——Cypress自动化测试实践
|
JavaScript Linux 应用服务中间件
Docker部署Node应用简单实践
本文将从零至一,介绍如何在云服务器上通过 Docker 容器运行一个简单的Node应用。
1325 0
|
12月前
|
JavaScript 前端开发 数据安全/隐私保护
NodeJS 下构建 命令行工具 与 交互式命令界面 的实践
NodeJS 下构建命令行工具 与 交互式命令界面 的实践
520 0
NodeJS 下构建 命令行工具 与 交互式命令界面 的实践
|
JavaScript 微服务
《基于 OpenResty 和 Node.js 的个推微服务实践》电子版地址
基于 OpenResty 和 Node.js 的个推微服务实践
93 0
《基于 OpenResty 和 Node.js 的个推微服务实践》电子版地址