sinopia 를 사용 하여 개인 npm 서버 를 구축 하 는 튜 토리 얼

간단 한 소개

효과 전시
sinopia 를 사용 하 는 장점 은 node 계열 의 엔지니어 가 내부 협력 을 할 때 자체 npm 가방 을 사용 하 는 것 이 매우 편리 하 다 는 것 이다.또한,sinopia 는 다운로드 한 가방 을 캐 시 하여 npm install 관련 명령 의 실행 을 어느 정도 가속 화 할 수 있 습 니 다.
작업 중 에 개인 npm 서버 로 sinopia 를 사용 해 야 하 는 장면 이 있 습 니 다.자기 컴퓨터 에서 계속 시 노 피 아 를 켜 고 있 었 구나.이렇게 하 는 가장 큰 문 제 는 sinopia 백 스테이지 가 계속 켜 져 있 으 면 자원 이 점점 소모 되 고 컴퓨터 가 나중에 카드 로 변 한 다 는 것 이다.가끔 은 sinopia 를 켜 거나 닫 는 것 을 잊 어 버 려 여러 가지 불편 함 을 가 져 오기 도 한다.
오늘 나 는 직접 크 랜 베 리 파이 에 sinopia 서 비 스 를 만들어 보 았 다.최종 적 으로 실현 한 효 과 는 비교적 완전 하여 기본적으로 수 요 를 만족 시 켰 다.사용자 권한 관리,외부 네트워크 에서 사용자 정의 도 메 인 이름 으로 접근,sinopia 서비스 켜 기 자동 시작 등 기능 을 포함 합 니 다.
메모:아래 셸 명령 은 이 컴퓨터 가 아 닌 트 리 베 리 파이 셸 에서 기본적으로 실 행 됩 니 다.
최신 장기 지원 판 node 환경 설치
크 랜 베 리 파이 가 자체 적 으로 가지 고 있 는 node 환경 은 v 4.8.2 로 업그레이드 가 필요 하 다.
nvm 설치
여러 버 전의 node 환경 을 편리 하 게 관리 할 수 있 도록 nvm 를 설치 하 는 것 을 권장 합 니 다.

#    nvm
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.6/install.sh | bash

#   shell

#    nvm   
command -v nvm
nvm 를 사용 하여 최신 장기 지원 판 node 환경 을 설치 합 니 다.

#    Node
nvm install --lts

#     --> v8.9.1
node -v
sinopia 설치 및 설정
sinopia 설치

#   
npm install -g sinopia

#          -->                     。
sinopia
포트 4873 점용 문제 해결
sinopia 가 시 작 될 때 기본적으로 4873 포트 를 사용 하면 포트 충돌 문제 가 발생 할 수 있 습 니 다.

#    lsof   
sudo apt-get update
sudo apt-get install lsof

#          PID
lsof -i :4873

#      4873      。4649,       PID。
kill -9 4649
기본 계 정 등록
안전성 을 높이 기 위해 서,우 리 는 잠시 후에 sinopia 의 사용자 등록 기능 을 사용 하지 않 을 것 이 므 로,먼저 기본 sinopia 계 정 을 등록 합 니 다.현재 셸 에서 sinopia 명령 을 실행 하고 서 비 스 를 시작 한 후 셸 을 다시 열 어야 합 니 다.

npm set registry http://localhost:4873/
npm adduser --registry http://localhost:4873/
사용자 이름,비밀번호,메 일 등 을 잘 기억 하고 복잡 하 게 설정 해 야 합 니 다.
\#\#\#설치 vim 업그레이드
크 랜 베 리 파이 자체 vim 이 잘 안 되 는 것 같 아서 저도 업그레이드 도 했 습 니 다.
```
\#vim 설치
sudo apt-get update
sudo apt-get install vim
\#vim 에서 마우스 우 클릭 으로 복사 지원 설정
vim ~/.vimrc
```
.vimrc 이 파일 에 다음 줄 을 추가 합 니 다.

shell set mouse=v
sinopia 설정
파일 경 로 를 설정 하면 sinopia 명령 을 실행 할 때 출력 에서 볼 수 있 습 니 다.보통/home/pi/config/sinopia/config.yaml 입 니 다.
제 사용 경험 과 문서 설명 을 바탕 으로 다음 과 같은 내용 을 설 정 했 습 니 다.
max_users:-1:등록 을 사용 하지 않 습 니 다.
*npmjs: url: https://registry.npm.taobao.org*:npm 미 러 를 타 오 바 오 소스 로 설정 하면 npm 공공 가방 의 설 치 를 가속 화 할 수 있 습 니 다.둘째,타 오 바 오 소스 의 읽 기 전용 특성 을 빌려 개인 npm 가방 을 외부 네트워크 에 잘못 발표 하지 않도록 합 니 다.
access:$authenticated:익명 사용자 접근 금지.설정 후 로그 인하 지 않 은 사용 자 는 sinopia 의 개인 가방 에 대한 정 보 를 볼 수 없습니다.
max_body_size:'200 mb':이렇게 설정 하면 슈퍼 npm 패 키 지 를 설치 하 는 성 공률 을 높 일 수 있 습 니 다.예 를 들 어 react-native.
전체 설정 내용 은 다음 과 같 습 니 다.만약 당신 이 크 랜 베 리 파이 에 설정 하지 않 았 다 면,/home/pi 를 자신의 실제 사용자 경로 이름 으로 바 꾸 십시오.

#
# 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: /home/pi/.local/share/sinopia/storage

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

# a list of other known repositories we can talk to

uplinks:
 npmjs:
  url: https://registry.npm.taobao.org

packages:
 '@*/*':
  # scoped packages
  access: $authenticated
  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: $authenticated

  # 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

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

max_body_size: '200mb'
로 컬 편집기 에서 설정 을 수정 한 다음 트 리 베 리 파이 에 직접 복사 할 수 있 습 니 다:

#       
vim /home/pi/.config/sinopia/config.yaml
붙 여 넣 기 명령 을 사용 합 니 다.직접 붙 여 넣 으 면 형식 이 어 지 러 워 집 니 다.

:set paste
i
#       。
frpc 원 격 접근 설정
frp 설정 문제 에 대해 상세 한 것 은 다음 과 같 습 니 다.[작은 기술 로 큰 문 제 를 해결 합 니 다]frp 를 사용 하여 아 리 클 라 우 드 호스트 의 탄력 없 는 네트워크 IP 를 돌파 하여 웹 서버 의 제한 으로 사용 할 수 없습니다.frpc 키 설정 변경 사항 만 붙 입 니 다:

[web-sinopia]
type = http
local_port = 4873
subdomain = sinopia
Systemd 를 사용 하여 sinopia 서 비 스 를 시작 합 니 다.
크 랜 베 리 파이,기본 값 은 Systemd 가 있 습 니 다.직접 사용 하면 됩 니 다.

sudo vim /usr/lib/systemd/system/sinopia.service
sinopia.service 의 구체 적 인 내용 은 다음 과 같 습 니 다.그 중에서/home/pi/config/sinopia/config.yaml 는 자신의 config.yaml 주소 로 바 꿔 야 합 니 다.

[Unit]
DescrIPtion=sinopia
After=network.target

[Service]
TimeoutStartSec=30
ExecStart=/home/pi/.nvm/versions/node/v8.9.1/bin/sinopia /home/pi/.config/sinopia/config.yaml
ExecStop=/bin/kill $MAINPID
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target
sinopia 를 시작 하고 시작 설정:

systemctl enable sinopia
systemctl start sinopia
systemctl status sinopia
기타 유용 한 명령

#     
systemctl disable sinopia

#       
systemctl restart sinopia
다른 컴퓨터 에 서 는 sinopia 개인 npm 서버 기능 을 사용 합 니 다.
최종 sinopia 서버 의 외부 네트워크 주 소 는 다음 과 같다 고 가정 합 니 다.*http://sinopia.example.com*
진정 으로 사용 하려 면 터미널 에 설정 해 야 합 니 다:

npm set registry http://sinopia.example.com
npm adduser --registry http://sinopia.example.com
npm login
설정 이 완료 되면 개인 npm 패 키 지 를 발표 해 보 세 요:

#               npm  
npm init

#       sinopia    :
npm publish
게시 성공 후 브 라 우 저 에 로그 인*http://sinopia.example.com*,페이지 를 새로 고치 면 자신 이 방금 발표 한 가방 을 볼 수 있 을 것 입 니 다.
다른 사용자 가 개인 라 이브 러 리 에 있 는 가방 을 사용 할 때 도 먼저 로그 인해 야 합 니 다.그렇지 않 으 면 오류 가 발생 할 수 있 습 니 다.

unregistered users are not allowed to access package
이상 의 이 편 은 sinopia 를 사용 하여 개인 npm 서버 를 구축 하 는 튜 토리 얼 은 바로 편집장 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.여러분 께 참고 가 되 고 저희 도 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기