我的 repo 中有一個奇怪的問題,昨天確實有效。當我運行npm install時,它沒有任何問題,但問題是,不是所有的軟體包都被安裝了。在node_modules/@types下有多個模塊缺失,而我在packages.json.
我也錯過了一些應該被添加到node_modules/bin的檔案,比如nodemon。如果我運行sudo npm install,它確實可以作業,但這感覺并不正確。
我已經將我的npm和node版本更新到最新的lts,npm 6.14.15和node 14.17.6。
我的package.json看起來像:
我的package.json看起來像:
{
"name": "blah",
"版本": "1.0.0"。
"描述": "Blah blah blah"。
"作者": "Tomas Jansson"。
"主要": "./bin/index.js",
"dependencies": {
"@azure/arm-containerservice": "^13.3.0",
"@azure/arm-subscriptions": "^3.1.0",
"@azure/ms-rest-nodeauth": "^3.0.10",
"@azure/msal-node": "^1.2.0",
"@kubernetes/client-node": "^0.15.0",
"@pulumi/azure-native": "^1.16.0",
"@pulumi/azuread": "^4.3.0",
"@pulumi/github": "^4.2.0",
"@pulumi/kubernetes": "^3.5.1",
"@pulumi/pulumi": "^3.7.0",
"@pulumi/random": "^4.2.0",
"@pulumi/tls": "^4.0.0",
"cors": "^2.8.5",
"dotenv": "^10.0.0",
"express": "^4.17.1",
"護照": "^0.4.1",
" passport-azure-ad": "^4.3.0".
},
"devDependencies": {
"@types/cors": "^2.8.12",
"@types/express": "^4.17.13",
"@types/node": "^16.3.2",
"@types/passport-azure-ad": "^4.3.1",
"nodemon": "^2.0.12",
"ts-node": "^10.1.0",
"typescript": "^4.3.5".
},
"scripts": {
"test": "echo "Error: no test specified" && exit 1" ,
"build": "tsc",
"start": "node ./bin/index.js",
"watch": "nodemon ./index.ts".
}
}
有什么想法嗎,為什么我需要使用sudo?
uj5u.com熱心網友回復:
聽起來你的專案中node_modules檔案夾的用戶權限是不匹配的。
一個可能的解決方法是洗掉node_modules(使用sudo),然后再次運行npm install。 你還應該確認你的用戶是專案檔案夾的所有者,并且ls -l的權限顯示你被允許讀 寫。
如果你使用Docker,發生這種情況的一個常見原因是,Docker容器中的用戶可能是root,而卷正在你的主機和容器之間被映射。 你可以改變COPY命令以包括用戶:組,如COPY --chown=$USER_ID:$GROUP_ID app,并將這些作為構建引數傳遞給docker docker-compose build --build-arg USER_ID=$(id -u) --build-arg GROUP_ID=$(id -g)
uj5u.com熱心網友回復:
所以它的深度,如果模塊是像(ffmpeg,nodemon或其他),是腳本,通常不進入運行時間,那么你將需要使用sudo,但不是所有的時間,如使用axios,你不需要使用sudo來安裝,但如果有疑問,sudo它出來。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/331038.html
標籤:
