繁体   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