簡體   English   中英

有沒有辦法讓 npm install 在本地 node_modules 目錄(the.bin 目錄)中安裝“bin”可執行文件?

[英]Is there a way to get npm install to install "bin" executables in the local node_modules directory (the .bin directory)?

我有一個 Node 項目,我可以npm pack成一個 tarball,然后安裝到另一個目錄中進行測試。 當我這樣做時,我的package.json的“bin”子句中的文件集被正確地符號鏈接到那里的node_modules/.bin目錄中。 因此,我可以使用npx something來運行“something”腳本,並且它按我預期的那樣工作。

然而,在實際的項目目錄中, npm install不會這樣做。 這些腳本當然在我的頂級“bin”目錄中,但npx找不到它們。 顯然我可以直接運行它們,但如果我可以運行相同的 shell 命令以在其他安裝目錄和項目主目錄中運行它們,那就太好了。

不想全局安裝 package; 我想把所有東西都放在本地,至少現在是這樣。 那么我可以獲取npm來為我創建這些符號鏈接,還是我應該硬着頭皮自己做?

這是我的package.json

{
  "name": "@foo/plazadb",
  "version": "0.1.0",
  "description": "Basic database setup with upload/download from CSV",
  "main": "lib/plazadb.js",
  "author": "Pointy",
  "license": "ISC",
  "dependencies": {
    "arg": "^5.0.1",
    "cls-hooked": "^4.2.2",
    "csv-parser": "^3.0.0",
    "csv-stringify": "^6.0.5",
    "neat-csv": "^7.0.0",
    "pg": "^8.7.*",
    "sequelize": "^6.16.*"
  },
  "bin": {
    "conntest": "./bin/conntest.js",
    "download": "./bin/download.js",
    "upload": "./bin/upload.js"
  }
}

“bin”文件都存在(當然,否則它們將永遠無法工作)。 我正在嘗試(出於無知)是從項目目錄進行簡單的npm install

一種方法是通過

  1. 使用npm config set prefix <path>此處鏈接的其中一種方法指定本地前綴。
  2. 使用npm link

請注意,要撤消npm link ,請執行npm unlink. 可能行不通 相反,可能必須運行npm uninstall -g. .

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM