1. 程式人生 > >cnpm搭建私有庫and同步庫

cnpm搭建私有庫and同步庫

環境: linux node mysql npm cnpm docker

1. 去git倉庫下clone cnpm.org.js程式碼

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

2.安裝專案依賴

cd cnpmjs.org
npm install

安裝sqlite會出現問題,可以在package.json刪掉它


3.由於在linux安裝mysql太麻煩,本人直接在docker上執行mysql

 docker run -p 3306:3306 --name cnpm-mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

4.執行mysql   搭建資料庫


5.匯入資料表   把cnpmjs.org/docs/db.sql檔案拷貝到映象空間  然後再用source同步到資料庫

   docker cp 地址/db.sql   container:/

   mysql> source db.sql

6.修改cnpmjs的配置檔案
vi config/index.js

(1)註釋掉  bindingHost: '127.0.0.1',

(2)enableCompress: true,  設為true

 (3) 修改資料庫配置

 database: {
    db: 'cnpmjs',       //改為自己建的資料庫名
    username: 'root',   // 改為自己的資料庫使用者名稱
    password: '123456',   //改為自己設定的資料庫密碼

    // the sql dialect of the database
    // - currently supported: 'mysql', 'sqlite', 'postgres', 'mariadb'
    dialect: 'mysql',    //改為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
    },

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

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

7.npm start 然後在瀏覽器訪問 自己的cnpm的ip:7001   自己的cnpm的ip:7001 如果可以訪問則說明訪問成功

遇到的問題:

1.第一次安裝時docker起的mysql:latest,npm start成功但是 7001,7002頁面不能訪問,後來指定mysql的版本號為 5.7就可以了。

2.cnpm搭建成功,但是同步包,出了問題,報錯

sync error: TypeError: Cannot read property 'findAll' of null

解決辦法: 是把配置檔案 的enableAbbreviatedMetadata: true, 設為true