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 서버 를 구축 하 는 튜 토리 얼 은 바로 편집장 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.여러분 께 참고 가 되 고 저희 도 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Ubuntu 시스템 구축django+nginx+uwsgi의 강좌 상세 설명3. 서버의/srv 디렉터리에 항목을 업로드합니다.여기서git의 형식을 예로 들면 터미널을 열고 다음 명령을 입력합니다 •git init •sudo apt install python •sudo apt install ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.