centos部署nexus3
上傳並解壓nexus3,安裝jdk並配置環境變數
vi /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_181
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib
執行生效環境變數命令 source profile
nexus3啟動:
執行到該目錄下/usr/local/packages/nexus-3.13.0-01/bin
路徑:/usr/local/packages/nexus-3.13.0-01/
執行啟動:路徑/bin下./nexus run & //有列印日誌啟動
./nexus start //無列印日誌啟動
./nexus stop
或者 kill -9 程式id //命令失效殺程式停止
Nexus部署npm私服
1.blobStores 建立儲存庫:npm-store
2.repositories 建立:npm-hosted
倉庫並複製npm源地址
3.本地配置關聯npm源地址npm config set registry 遠端npm倉庫地址
npm login
4.釋出包到遠端倉庫到含有package.json(private:false)工程目錄 執行 npm publish (無法處理依賴關係,下載包不完整。)
npm支援直接 publish tgz壓縮包的方式上傳到私有庫。
下載 node-tgz-downloader
,用來下載依賴tgz檔案;指令碼會通過 packagelock.json
鎖定的依賴包版本下載相關聯的依賴包)
全域性安裝:npm install node-tgz-downloader -g
在 npm install
生成 node_modules
資料夾後到工程根目錄執行命令 download-tgz package-lock package-lock.json
網路和境外伺服器原因會失敗且有可能下載0kb的壓縮包,需要多執行幾次。
釋出tgz包到私有庫:
shell指令碼(整合tgz包到一個目錄下)
find . -name '*.tgz' -exec cp -f {} ../tgz \;
該命令會把多目錄下的.tgz壓縮包複製到tgz目錄下。
新建sh指令碼
#!/bin/bash
PACKAGE_PATH=./tgz
REPOSITORY=http://xxxxx:8081/repository/npm-hosted/
# npm login --registry=$REPOSITORY
for file in $PACKAGE_PATH/*.tgz; do
npm publish $file
done
指令碼會同步的方式依次釋出包,如遇到403可以考慮許可權問題,最好用管理員賬號釋出。
node-sass安裝失敗處理:
在拉取node-sass
包時,儘管內網已經有npm全部包,node-sass也會從git上拉xx_binding.node
的一個二進位制node檔案,閱讀原始碼後發現這個檔案是識別當前sass版本及電腦系統和電腦32位還是64位來下載該二進位制檔案,getBinaryName
方法返回了檔名稱
binaryName = [
platform, '-',
process.arch, '-',
process.versions.modules
].join('');
return [binaryName, 'binding.node'].join('_');
通過手動cmd輸入可檢視檔名(darwin-x64-83),
node -p "[process.platform,process.arch,process.versions.modules].join('-')"
darwin-x64-83_binding.node 就是最後完整檔名。
然後檢視package.json中node-sass版本,通過 https://registry.npmmirror.co...版本號/檔名 來下載對應檔案。
nexus上新建 raw型別hosted儲存庫(raw-hosted)和raw型別group儲存庫(raw-public)並設定讀取許可權。參考npm源下載地址新建node-sass/v4.14.1/
目錄並上傳該二進位制檔案。完整路徑(http://ip:port/repository/raw...)。
使用私服源首次npm install
分別指向私服源和二進位制檔案源目錄,二進位制檔案站點(sass_binary_site)只需要指向到版本前面的分割目錄即可,下載時會自動根據node-sass版本去對應目錄下載對應檔案。
npm config set registry http://ip:port/repository/npm...
npm config set sass_binary_site http://ip:port/repository/raw...
npm install
以上如果安裝報錯可以排查nexus設定的倉庫許可權問題,安裝成功執行報錯時,嘗試清除npm快取 npm cache clean -f
參考相關資料:
https://blog.csdn.net/lihongt...
https://blog.csdn.net/yougoul...
https://segmentfault.com/a/11...