使用cnpm搭建npm

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 使用cnpm搭建npm

部署环境介绍

系统信息

名称

版本

操作系统

CentOS release 6.9 (Final)

系统内核

2.6.32-696.el6.x86_64

组件信息

名称

版本

node

V4.8.5

npm

2.5.11

mysql

5.6.11

部署信息

IP地址

配置信息

部署组建

10.0.9.17

2c/1g/10G

node,npm,mysql,cnpm

第一部分:安装

初始化环境

yum install gccgcc-c++ vim-enhanced glibc make unzip openssl openssl-devel openssh-serveropenssh-clients wget  -y

安装git

yum install git-y

下载cnpm源码包

搭建MySql

yum list installed | grep mysql

yum remove mysql* -y

rpm -ivh http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm

yum install mysql-server -y

修改配置文件

vim /etc/my.cnf

mysqld下添加innodb_file_per_table

启动mysql服务

service mysqld start

设置mysql密码

mysql_secure_installation

mysql -uroot -p111111

向MySql导入数据

mysql -uroot -p111111
DROP DATABASE IF EXISTS cnpmjs_test;
CREATE DATABASE cnpmjs_test;
use cnpmjs_test
source /root/cnpmjs.org/docs/db.sql

修改cnpm的配置文件

cd cnpmjs.org/config/
vim index.js

把第30行添加注释

bindingHost前面加上注释

第100行,修改database下的内容,password处的密码是111111,dialect改为mysql


安装cnpm启动时的依赖

npm installcfork
npm installmkdirp
npm installcopy-to
npm installfs-cnpm
npm installgraceful
npm install koa
npm installkoa-middlewares
npm installkoa-bodyparser
npm installkoa-rt
npm installkoa-rewrite
npm installkoa-conditional-get
npm installkoa-etag
npm installkoa-limit
npm installdebug
npm installsemver
npm installsequelize
npm installmysql
npm installutility
npm installhumanize-ms
npm installmoment
npm install co
npm installco-gather
npm installco-defer
npm installthunkify-wrap
npm install co-sleep
npm install urllib
npm installagentkeepalive
npm installerror-formater
npm installmini-logger
npm installnodemailer
npm installnormalize-registry-metadata
npm installgravatar
npm installmime
npm installis-type-of
npm installkcors
npm installkoa-maxrequests
npm installkoa-markdown
npm install xss
npm installmarkdown-it
npm installbytes
npm installgiturl
npm installhumanize-number
npm installkoa-safe-jsonp

启动cnpm

nohup node dispatch.js &

访问cnpm的web界面:10.0.9.17:7002显示如下


第二部分:使用

我们自己搭建的私有服务怎么用呢?设置私有注册库的方法如下:

创建一个项目目录

useradd npm11
su - npm11
mkdir nodejs-cnpm && cd nodejs-cnpm

下载指定私有库

一种简单的方式就是,下载的时候指定我们自己的私有库,这样就会从我们自己的私有库中下载。如果私有库没有对应的库,CNPM会自动同步到NPM 找到我们要下载的库和版本,先在CNPM中存一份,然后再传给客户端一份,运行原理和Maven的原理一样。

执行下载的操作

npm install ape-algorithm  --registry=http://10.0.9.17:7001

查看下载的库

ls -l
drwxrwxr-x 3npm11 npm11 4096 Nov  8 10:00node_modules

给项目设置私有库

如果这个项目所有依赖库都从公司内网下载,那么我们可以给整个项目设置私有库,就不需要每次下载的时候单独指定了,首先,我们查看项目的默设置,通过npm config list命令。

npm config list 显示如下

; cli configs
user-agent = "npm/2.15.11 node/v4.8.5 linux x64"
; node bin location = /opt/node/bin/node
; cwd = /home/npm11/nodejs-cnpm
; HOME = /home/npm11
; 'npm config ls -l' to show all defaults.

registry属性是指向NPM的官网位置https://registry.npmjs.org/,我们可以通过npm config set registry命令来修改这个配置。

npm config set registry http://10.0.9.17:7001

再次查看项目设置npm config list,显示如下

; userconfig /home/npm11/.npmrc
registry = "http://10.0.9.17:7001/"
; node bin location = /opt/node/bin/node
; cwd = /home/npm11/nodejs-cnpm
; HOME = /home/npm11
; 'npm config ls -l' to show all defaults.

这个项目再下载新包时,就会通过我们私有库去下载了。

当我们要发布包到NPM的时候,由于CNPM默认同步时间差是30分钟,如果想马上同步,需要手动输入同步的命令。

同步gcc包。

cnpm sync gcc

这样我们就完全地把CNPM私有库在公司内部用起来了。把包管理的问题解决了

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
缓存 资源调度 JavaScript
nodejs全局(npm、cnpm、yarn)及缓存基本配置,一篇就搞定
nodejs全局(npm、cnpm、yarn)及缓存基本配置,一篇就搞定
|
7月前
|
JavaScript 前端开发
实现自动扫描工作区npm包并同步cnpm
前言 在开发一个多npm包的项目时,时常会一次更新多个包的代码,再批量发布到 npm 镜像源后。 由于国内网络环境的原因,大部分都会使用淘宝的镜像源进行依赖安装,为了确保发布后,通过淘宝源能够顺利的安装,通常会手动同步一下 cnpm sync vue react 但在一些大型的 monorepo 的多包工程里,手动输入包名是一件非常繁琐的事情,所以准备把输入的过程简化一下,改成自动扫描工作区的包名,然后自动同步。 进而有了这个工具 工具的使用 直接通过 npx 运行即可,将自动扫描所有的包
|
4月前
|
JavaScript
request to https://registry.npm.taobao.org/cnpm failed, reason: certificate has expired
request to https://registry.npm.taobao.org/cnpm failed, reason: certificate has expired
111 2
|
缓存 资源调度 JavaScript
从零到一nvm、npm、cnpm、yarn、vue全套安装和环境配置以及创建新项目和如何运行人家的项目大全,最详细,保姆级
从零到一nvm、npm、cnpm、yarn、vue全套安装和环境配置以及创建新项目和如何运行人家的项目大全,最详细,保姆级
413 0
|
7月前
|
资源调度 开发者
npm,registry,镜像源,npm切换源,yarn,cnpm,taobao,nrs
我们在使用 node 的 npm 下载依赖的时候,往往下载速度很慢,那是因为 npm 默认的是 npm 处于国外的官方镜像源。所以需要切换到国内的镜像源来加速依赖下载。所以本文推荐一款简单好用 npm 镜像源管理器,可以方便开发者管理自己的镜像源。
543 1
|
7月前
【node】 cnpm|npm查看、修改镜像地址操作 换源操作
【node】 cnpm|npm查看、修改镜像地址操作 换源操作
3132 1
|
7月前
|
Windows
vscode 终端无法执行npm、cnpm命令的解决办法,npm : 无法将“npm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试
vscode 终端无法执行npm、cnpm命令的解决办法,npm : 无法将“npm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试
1753 0
npm安装淘宝镜像cnpm报错:npm ERR! Windows_NT 10.0.19045
npm安装淘宝镜像cnpm报错:npm ERR! Windows_NT 10.0.19045
411 0
|
存储 缓存 资源调度
npm、cnpm、yarn和pnpm,我们应该选择哪个包管理工具?
在前端开发中,包管理工具是必不可少的工具之一。目前,市面上有多种包管理工具可供选择,如 `npm`、`cnpm`、`yarn` 和 `pnpm` 等。这些工具都具有自己的优点和缺点,选择适合自己的工具可以提高开发效率和代码质量。 本文将对这些工具的特点、优缺点和使用方法进行详细介绍,从而选择最适合自己的包管理工具。
1510 1
npm、cnpm、yarn和pnpm,我们应该选择哪个包管理工具?
|
存储 缓存 资源调度
[Node] Node.js 包管理工具详解npm yarn cnpm npx pnpm
[Node] Node.js 包管理工具详解npm yarn cnpm npx pnpm