vue学习

npm 私有服务器搭建和使用

2019-10-13  本文已影响0人  程海之源

npm 私有服务器搭建和使用

作用

可选方案

sinopia (verdaccio)

优点

缺点

sinopia 比较适合个人搭建在本地作为 npm 缓存,这样,安装过的包会直接从缓存中获取,加快安装速度。对于企业级的应用,cnpm + cnpmjs.org 的方案更适合。

cnpm + cnpmjs.org

优点

缺点

选型确定方案为cnpm + cnpmjs.org

环境要求

基本安装

nodejs

git

克隆cnpmjs.org

通过github下载项目源代码

git clone https://github.com/cnpm/cnpmjs.org.git

在我们开始安装依赖包之前,先要升级NPM的版本,不然会出现“No compatible version found”的错误

sudo npm install npm -g
/usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js
npm@2.0.0-beta.0 /usr/local/lib/node_modules/npm

安装项目依赖

sudo npm install 

mysql

rpm -qa | grep mariadb  
rpm -e --nodeps mariadb/mysql
sudo yum -y install mariadb-server
systemctl start mariadb.service
mysqladmin -u root password 'root'

创建数据库

Mysql -u root -p
create database cnpmjs;
use cnpmjs;

初始化数据表(也可以用图形化工具执行导入)

source docs/db.sql【db.sql位于cnpmjs.org/docs/db.sql】

配置cnpmjs.org

在cnpmjs.org目录下

vi config/config.js

也可以直接编辑config/index.js中的这部分内容,但建议另建config.js进行修改,index.js文件会自动合并config.js中的配置

输入以下内容

'use strict';

var path = require('path');
var root = path.dirname(__dirname);
var dataDir = path.join(process.env.HOME || root, '.cnpmjs.org');
 
module.exports = { 
  database: {
    db: 'private_npm',
    username: 'root',
    password: 'root',

    // the sql dialect of the database
    // - currently supported: 'mysql', 'sqlite', 'postgres', 'mariadb'
    dialect: 'mysql',

    // custom host; default: 127.0.0.1
    host: '127.0.0.1',

    // custom port; default: 3306
    port: 3306,

    // use pooling in order to reduce db connection overload and to increase speed
    // currently only for mysql and postgresql (since v1.5.0)
    pool: {
      maxConnections: 10,
      minConnections: 0,
      maxIdleTime: 30000
    },

    dialectOptions: {
      // if your server run on full cpu load, please set trace to false
      trace: true,
    },

    // the storage engine for 'sqlite'
    // default store into ~/.cnpmjs.org/data.sqlite
    storage: path.join(dataDir, 'data.sqlite'),

    logging: !!process.env.SQL_DEBUG,
  }
};

注意编辑完后:wq保存并退出

在cnpmjs.org目录下

vi config/index.js

开放非本机访问,注释bindingHost一行。

//bindingHost: '127.0.0.1', // only binding on 127.0.0.1 for local access

附:npm run stop:停止 CNPM。start, stop, test是npm 内置命令,可以省略run直接运行npm stop

在浏览器中输入:http://192.168.1.225:7002/,页面正常加载显示cnpm.org的页面

发布私有包

环境配置

建议安装nrm进行管理

admin账户信息在index.js文件中配置

创建私有测试包

选择一个测试包存放的目录位置

$ mkdir helloworld && cd helloworld
$ cnpm init
name: @hd/helloworld
version: 1.0.0

上述配置name的@hd要跟index.js配置中的一致,如下

// registry scopes, if don't set, means do not support scopes
scopes: [ '@hd' ],

scopes配置值是数组,可以配置多个,可以用于私有包的分组管理,如公司级用@hd,部门级用@hdit

通过浏览器访问:http://192.168.1.225:7002/ 可查看和操作私有CNPM服务器
在搜索中查找helloworld,有搜索结果说明发布成功

参与教程:

https://cnpmjs.org/

CNPM搭建私有的NPM服务:http://blog.fens.me/nodejs-cnpm-npm/

卓健前端工程白皮书:https://www.kancloud.cn/eagles/fepro/326466

前端工程化指南:https://www.kancloud.cn/csnikey/fepro-guide/334551

上一篇 下一篇

猜你喜欢

热点阅读