개인 npm 서버 구축
5981 단어 npm
왜 npm 개인 창고가 필요합니까?
npm 개인 창고는 회사 내부 서버에 위탁 관리되는데 왜 필요합니까?
솔루션 조사 연구
github stars
lastest realease
lastest commit
비고
Sinopia
5.4k
2015-6-7
2015-10-3
더 이상 유지 관리 안 함
cnpm
3.4k
2014-10-9
2021-7-6
-
verdaccio
11.9k
2021-7-15
2021-7-21
-
상기 데이터는 2021-7-23에 집계되었다
verdaccio가 세 가지 차원에서 먼지를 제거하는 것을 볼 수 있습니다. verdaccio를 선택하기로 결정했습니다. 이것은 nodejs가 작성한 것으로 앞부분과 가장 가깝습니다.
구축 과정
신청 서버, 설치 환경
신청하면 xshell6로 ssh 로그인합니다.외부 네트워크, node 설치를 포함한 테스트 및 설치 환경이 필요합니다. 여기에서 유행 버전 v14.17.3(LTS)을 선택하십시오.
nodejs download
현재 장기 지원: 14.17.3 (npm 6.14.13 포함)
tips: nvm를 사용해서 설치에 성공했지만 네트워크 문제로 node를 설치하지 못해 포기했습니다.
verdaccio 사용하기
verdaccio
설치
npm install -g verdaccio
프로파일 수정
cd ~/.config/verdaccio
vim config.yaml
#
vim ~/.config/verdaccio/config.yaml
1 #
2 # This is the default config file. It allows all users to do anything,
3 # so don't use it on production systems.
4 #
5 # Look here for more config file examples:
6 # https://github.com/verdaccio/verdaccio/tree/master/conf
7 #
8
9 # path to a directory with all packages
10 storage: ./storage # npm
11 # path to a directory with plugins to include
12 plugins: ./plugins
13
14 web:
15 title: Verdaccio
16 # comment out to disable gravatar support
17 # gravatar: false
18 # by default packages are ordercer ascendant (asc|desc)
19 # sort_packages: asc
20 # convert your UI to the dark side
21 # darkMode: true
22 # logo: http://somedomain/somelogo.png
23 # favicon: http://somedomain/favicon.ico | /path/favicon.ico
24
25 # translate your registry, api i18n not available yet
26 # i18n:
27 # list of the available translations https://github.com/verdaccio/ui/tree/master/i18n/translations
28 # web: en-US
29
30 auth:
31 htpasswd:
32 file: ./htpasswd
33 # Maximum amount of users allowed to register, defaults to "+inf".
34 # You can set this to -1 to disable registration.
35 # max_users: 1000
36
37 # a list of other known repositories we can talk to
38 uplinks:
39 npmjs:
40 url: http://registry.npm.taobao.org/ # npm , , taobao npm
41
42 packages:
43 '@*/*':
44 # scoped packages
45 access: $all
46 publish: $authenticated
47 unpublish: $authenticated
48 proxy: npmjs
49
50 '**':
51 # allow all users (including non-authenticated users) to read and
52 # publish all packages
53 #
54 # you can specify usernames/groupnames (depending on your auth plugin)
55 # and three keywords: "$all", "$anonymous", "$authenticated"
56 access: $all
57
58 # allow all known users to publish/publish packages
59 # (anyone can register by default, remember?)
60 publish: $authenticated
61 unpublish: $authenticated
62
63 # if package is not available locally, proxy requests to 'npmjs' registry
64 proxy: npmjs
65
66 # You can specify HTTP/1.1 server keep alive timeout in seconds for incoming connections.
67 # A value of 0 makes the http server behave similarly to Node.js versions prior to 8.0.0, which did not have a keep-alive timeout.
68 # WORKAROUND: Through given configuration you can workaround following issue https://github.com/verdaccio/verdaccio/issues/301. Set to 0 in case 60 is not enough.
69 server:
70 keepAliveTimeout: 60
71
72 middlewares:
73 audit:
74 enabled: true
75
76 # log settings
77 logs: { type: stdout, format: pretty, level: http }
78
79 # listen ,
80 listen: 0.0.0.0:4873
81
82 #experiments:
83 # # support for npm token command
84 # token: false
85 # # disable writing body size to logs, read more on ticket 1912
86 # bytesin_off: false
87 # # enable tarball URL redirect for hosting tarball with a different server, the tarball_url_redirect can be a template string
88 # tarball_url_redirect: 'https://mycdn.com/verdaccio/${packageName}/${filename}'
89 # # the tarball_url_redirect can be a function, takes packageName and filename and returns the url, when working with a js configuration file
90 # tarball_url_redirect(packageName, filename) {
91 # const signedUrl = // generate a signed url
92 # return signedUrl;
93 # }
94
95 # This affect the web and api (not developed yet)
96 #i18n:
97 #web: en-US
수정할 수 있는 점은:storage,uplinks.npmjs.url、listen
또한 개발자가 가방을 마음대로 삭제하지 못하게 하면 unpublish를 특정 계정으로 설정할 수 있습니다.
부팅
verdaccio
외부 네트워크에서 액세스할 수 있습니다http://ip:4873
pm2 데몬 프로세스
ssh를 종료한 후 서비스가 정상적일 수 있도록pm2를 사용하여 프로세스를 지킬 수 있습니다.
pm2
pm2 start verdaccio
일반pm2 명령
pm2 list/ls # pm2
pm2 start # ,
pm2 stop
pm2 restart
pm2 reload
pm2 delete
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
npm 종속 라이브러리의 라이센스를 확인하는 방법Node.js와 현대 웹 앱을 만들 때 npm에서 떼어내 라이브러리를 설치할 것이라고 생각합니다. npm으로 가져온 라이브러리는 재배포하는 것은 아니고 단순히 이용할 뿐입니다만, 이용에 대해서도 어떠한 제한(학술 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.