0からsinopiaを使用してプライベートnpm倉庫を構築する.

4594 ワード

業務安全のために必要な様々な理由で、プラグインを公共のnpm倉庫に公開することができません.だから自分のプライベートnpm倉庫を構築しなければなりません.最近自分で簡単なnpm倉庫を作って、穴を踏んで、皆さんと共有して、必要な子供靴があります.
今回はsinopiaを使って0からnpm倉庫を作ります.細かい話をします.うるさい子供靴は自分の必要なものだけを見てもいいです.
サーバ端
nodejsとnpmをインストールします
私のlinuxサーバーはcentosですので、ここではcentosにnodeをインストールする環境について話しています.
1.wgetを取り付ける
yum install -y wget
2.最新のnodeカバンをダウンロードする
nodejsの公式サイトで最新のダウンロードアドレスを見つけることができます.
wget https://nodejs.org/en/download/node-v10.15.0-linux-x64.tar.xz
解凍インストールパッケージ
xz -d node-v10.15.0-linux-x64.tar.xz
tar -xf node-v10.15.0-linux-x64.tar.xz
配置ビンファイル
ポイントは、あなたのnodejsのファイルパスを見つけることです.nodeファイルをどこに解凍したらいいですか?)、nodeパスが見つからない子供靴は実行してください.
whereis node
そして実行します
ln -s node   /usr/bin/node
ln -s node   /usr/bin/npm

eg:
//  node     /opt/node-v10.15.0-linux-x64/bin/node

ln -s /opt/node-v10.15.0-linux-x64/bin/node /usr/bin/node
ln -s /opt/node-v10.15.0-linux-x64/bin/node /usr/bin/npm

出現したら
ln: failed to create symbolic link ‘/usr/bin/node’: File exists

  :rm /usr/bin/node

インストールが成功したかどうかを確認します.
node -v
npm -v
npm倉庫を構築する
sinopia取り付け
nodeをインストールしてから、私達はサーバーで直接sinopiaをインストールできます.
npm install -g sinopia 
インストールしたら起動してみてもいいです.
sinopia
次のような結果が出たら成功して走るということです.この時に開けます.http://localhost:4873/訪問しました
Sinopia doesn't need superuser privileges. Don't run it under root.
 warn  --- config file  - /root/.config/sinopia/config.yaml
 warn  --- http address - http://localhost:4873/
sinopiaを申し込む場合:command not found、関連付けを追加してください.あなたのsinopiaパスを見つけます.(このパスは前のnodeパスのサブディレクトリの中にあります.)
ln -s /opt/node-v10.15.0-linux-x64/bin/sinopia  /usr/bin
pm 2
nodeサービスは非常に脆いです.一般的に実際に使うと、守ってくれるプロセスに合わせて使います.ここでは私が使っているのはpm 2の守護プロセスです.
インストール
npm install -g pm2
pm2 -v
pm 2:command not foundが現れたら、sinopiaの方法と同じです.
ln -s /opt/node-v10.15.0-linux-x64/bin/pm2 /usr/bin
PM 2を介してSinopiaを起動します.
pm2 start `which sinopia`

      :
┌─────────┬────┬──────┬────────┬────────┬─────┬────────┬───────────┐
│ Name    │ id │ mode │ status │ ↺      │ cpu │ memory │
├─────────┼────┼──────┼────────┼────────┼─────┼────────┼───────────┤
│ sinopia │ 0  │ N/A  │ fork   │ online │ 0   │ 0%     │ 16.7 MB   │
└─────────┴────┴──────┴────────┴────────┴─────┴────────┴───────────┘
sinopia配置変更
デフォルトでは、sinopiaの構成は直接的に使うには適していませんので、必要に応じてその構成ファイルを変更する必要があります.
上に述べたプロファイルのディレクトリを見つけて、プロファイルを開いて編集します.
#
# This is the default config file. It allows all users to do anything,
# so don't use it on production systems.
#
# Look here for more config file examples:
# https://github.com/rlidwka/sinopia/tree/master/conf
#

# path to a directory with all packages
storage: ./storage  #npm      

auth:
  htpasswd:
    file: ./htpasswd   #            
    # Maximum amount of users allowed to register, defaults to "+inf".
    # You can set this to -1 to disable registration.
    max_users: -1  #   1000,  -1,    

# a list of other known repositories we can talk to
uplinks:
  npmjs:
    url: http://registry.npm.taobao.org/  #   npm   ,    ,   url  sinopia      npm    
    
packages:  #      
  '@*/*':
    # scoped packages
    access: $all  #                    【$all                ,$authenticated                   ,$anonymous                (    )】
    publish: $authenticated  #                   

  '*':
    # allow all users (including non-authenticated users) to read and
    # publish all packages
    #
    # you can specify usernames/groupnames (depending on your auth plugin)
    # and three keywords: "$all", "$anonymous", "$authenticated"
    access: $all  #                   

    # allow all known users to publish packages
    # (anyone can register by default, remember?)
    publish: $authenticated  #                   

    # if package is not available locally, proxy requests to 'npmjs' registry
    proxy: npmjs  #   ,         uplinks

# log settings
logs:
  - {type: stdout, format: pretty, level: http}
  #- {type: file, path: sinopia.log, level: info}

# you can specify listen address (or simply a port) 
listen: 0.0.0.0:4873  #    ,       ,           
==listen:0.0.0.0:4873この本は必ずプラスしてください.サーバーの4873のポートを開放してください.
アクセス
自分のコンピュータブラウザにサーバーのipアドレス+ポート番号を入力してください.ポート番号はデフォルトで4873です.
eg:192.186.1.3.43:4873
ここに来て、私達は成功して自分のサーバーの上で私達の私有のnpmを構築することができます.