如何防止“npm install”或“npm remove”删除我的个人包?

Posted

技术标签:

【中文标题】如何防止“npm install”或“npm remove”删除我的个人包?【英文标题】:How do I prevent "npm install" or "npm remove" from deleting my personal package? 【发布时间】:2019-05-09 18:14:36 【问题描述】:

我想为我的一个库创建一个 node_modules/my-package/... 环境。

我的package.json 是considered valid。我有一个名字和一个版本以及其他一些字段:

(this is node-modules/my-paclage/package.json)

    "name": "my-package",
    "version": "1.0.0",
    ...

然后我想将它添加到 package-lock.json 文件中,以便 npm 知道它。如果你不这样做,npm install ...npm uninstall ... 实际上会删除我在node-modules/... 下创建的my-package 文件夹。

所以我决定在我的package-lock.json 中添加信息,只是我无法让它工作。我添加的只是这样的版本:

(this is package-lock.json)
...
"dependencies": 
    ...
    "my-package": 
        "version": "1.0.0"
    
    ...

....

同样,语法本身是正确的。但是,通过该条目,当我尝试执行 npm install ...npm uninstall ... 时,它会告诉我:

找不到错误 404:krypton-search@1.0.0

我做错了什么?

【问题讨论】:

你是否将包信息添加到 package-lock.json 中? 这就是我在"dependencies": ... "my-package": "version": "1.0.0" ... 中展示的内容。我更新了我的问题,以更好地显示其中的内容。 为什么你不能创建一个新的包并以通常的方式安装它?您可以从 github 安装它,而无需发布到 npm。 @alexmac 这是一个私人包,所以不能在那些网站上。 【参考方案1】:

NPM 管理node_modules/ 下的所有内容。您不想在那里手动添加任何内容。

NPM 还管理package-lock.json。它不是供您修改的。

要安装你的包,my-package,你想使用npm install。它会将你的包复制或符号链接到node_modules/,并将安装的版本写到package-lock.json

如果你的包是本地的并且没有发布到 NPM,你可以使用npm install /path-to-mypackage。另见:https://***.com/a/8089029/362536

【讨论】:

好的!优秀!这就像一个魅力。这只是不言自明。 @AlexisWilke 另外,如果您有一个私有的 Git 存储库(不一定是 GitHub),您也可以将其添加为依赖项。 ***.com/a/28729646/362536 如果托管在 SSH 上,则使用 git+ssh://,或者只是本地 Git 存储库的路径。

以上是关于如何防止“npm install”或“npm remove”删除我的个人包?的主要内容,如果未能解决你的问题,请参考以下文章

在 Jenkins 中:如何运行 NPM install 、 npm run 和 Npm run 代理

npm install --save 和 npm install -d的区别

编剧错误:未下载 Firefox 修订版。运行“npm install”或“yarn install”

`npm install` 在 node-gyp 重建时失败,并带有`gyp:未检测到 Xcode 或 CLT 版本!`

在没有 npm install 或 webpack 的情况下导入 vuejs 组件

无法运行 sudo npm install -g typescript