问题标签 [npm-link]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
127241 浏览

node.js - 如何卸载使用 npm 链接安装的软件包?

使用sudo npm link包目录安装节点包时,完成开发后如何卸载包?

npm link将包作为符号链接安装在系统的全局包位置 ('/usr/local/lib`) 中。这使您可以在开发包的同时对其进行测试,而无需一遍又一遍地安装它。

我需要运行哪个 npm 命令才能再次删除链接?

0 投票
0 回答
124 浏览

node.js - 任何人都知道这些 NPM 警告是关于什么的

在我的项目中运行“npm install”或在依赖它的项目中运行“npm link”后,我收到这些警告。

0 投票
1 回答
201 浏览

node.js - npm update 取消链接链接的包

我有一个项目,它由一个根节点包组成,其中包含通过npm link链接在一起的子包 - 这些子包相互依赖(在 package.json 依赖项中列出),结构基本上如下所示:

假设 subpackageA 依赖于 subpackageB,所以我链接它们以避免在 subpackageB 的源每次更改后在 subpackageA 中发布/重新安装 subpackageB。该链接工作正常,直到我npm update在 subpackageA 中运行,这导致 subpackageB 被取消链接。

现在,我看到两个选项:

  1. 理论上,我可以npm link在每个操作之后运行该操作,npm install或者npm update确保链接始终存在。这适用postinstall于安装的情况,但在更新的情况下postinstall不会调用。我不知道 npm 的任何postupdate命令,该命令将在更新后调用。
  2. 也许有一种方法可以更巧妙地做到这一点,也许使用yarn,我也在使用它,在某种程度上,它可以防止取消链接或排除我的子包的更新,所以我不会丢失我的子包之间的链接,但现在我不知道这种方式。

有什么方法可以使这些选项之一起作用或任何其他方法来解决这个问题?我需要保留此链接和其他链接,这样我们就不必npm link在每次安装/更新后运行。我真的无法在任何地方找到有关此问题的信息。顺便说一句,我使用的是 Node 6.4.0 和 NPM 3.10.3。

0 投票
0 回答
1816 浏览

javascript - 如何配置 eslint-loader 以 lint NPM 链接模块?

我正在开发一个大型 JavaScript 项目,该项目分为几个子模块,每个子模块都有自己的 git 存储库和节点依赖项。我们还有一个入口点模块App,它具有 Webpack 和 ESLint 配置。

由于大部分开发者会在几个模块上协同工作,而不是等待每个模块发布,我们使用npm link将子模块连接到 App 模块,因此在开发过程中对子模块的更改会立即生效对App模块可见。

我们遇到了问题,eslint-loader不仅要检查App模块源代码,还要检查所有通过npm link. 对子模块的代码进行 linting 时,eslint-loader无法解析子模块的本地路径。

我有办法解决这个问题吗?

这是该项目的示例结构:

这是 eslint-loader 的相关部分webpack.config.js

0 投票
6 回答
6691 浏览

node.js - 如何在安装时直接执行“npm link”

我有一个内部项目,我想将命令链接到带有bin. 就像期待这个package.json

执行时npm install,将安装所有依赖项,并创建bin配置node-red

但我自己的bin会被完全忽略。无法cli-namecmd. npm link在第二步中也需要执行。然后cli-name将在控制台中作为命令使用。我什至尝试在其中使用with的postinstall脚本,但后来我得到了一个循环......npmnpm link

有没有办法一步一步做到这一点npm install

0 投票
1 回答
214 浏览

javascript - 解决未解决的 npm 链接符号链接要求?

在开发 NPM 包时,通常使用:

它允许<myPackage>在开发中进行修改,而无需一直发布和取消发布!开发人员可以在本地进行任何更改并立即查看。

它通过以下方式安装到项目中:

很好,但是如果<myPackage>有一个 require(path) 就会出现问题。

例如,它将使用 __dirname 的真实位置<myPackage>,而不是符号链接的预期位置,它应该是项目的本地位置,就像常规的 node_module。

到目前为止我找到的解决方案,对于我的特殊情况来说效果很好:

但正如您可以想象的那样,这会导致浏览器中出现警告消息。

虽然我知道这个问题的原因,但理想情况下,我想抑制错误。

0 投票
1 回答
183 浏览

node.js - Node/NPM 管理本地包

TL;DR如何在模块化node.js项目中配置不同的“子模块”以尽可能简单地相互引用?

我正试图围绕 NPM 的本地包,特别是因为它们与模块化项目有关。

我正在构建一个带有前端和后端 API 的 Web 应用程序。这些需要共享一个导出简单模型的包。我的项目目录结构如下所示:

API 和应用程序项目都将使用模型,因此我将该代码抽象为我项目中的一个单独的子模块。

我已经阅读了文档npm link,这似乎是正确的方法,因为据我了解,它符号链接了node_modules目录中的包。这样就可以访问当前存在的代码,而不是在node_modules. 听起来像我需要的东西,但有一个问题:我在几个不同的地方从事这个项目:我的笔记本电脑、我的办公室,偶尔在家。此外,其他人将在未来为该项目做出贡献。

我想让新贡献者尽可能简单地启动并运行开发。

目前,一个新的贡献者经历了这些步骤:

  1. 克隆存储库
  2. cd进入模型目录
    1. npm install
    2. npm link
  3. cd进入 api 目录
    1. npm install
    2. npm link models
  4. cd进入应用程序目录
    1. npm install
    2. npm link models
  5. 开工

我想做的(我认为npm 应该有能力做的)是:

  1. 克隆存储库
  2. cd进入模型目录
    1. npm install
  3. cd进入 api 目录
    1. npm install
  4. cd进入应用程序目录
    1. npm install
  5. 开工

我可以编写一个脚本来做到这一点,但这似乎是一个明显的用例npm,我怀疑它可能能够做这样的事情。我想我可能忽略了一些东西,因为我没有在文档中找到它。

0 投票
1 回答
1496 浏览

javascript - NPM 链接到 Src 目录而不是 Lib 目录

我一次处理几个 NPM 模块 - 有一个主模块可以导入其他三个模块。我曾经npm link将其他模块链接到主模块,但是我正在使用 Babel 编写所有模块来转译源代码。当我构建我运行的模块之一时,npm run build它运行编译并将模块src目录中的文件编译到其lib目录。但是,因为每个模块的 package.json 文件都指定了主文件位置,因为lib/index.js这意味着要使链接模块看起来更新到我的主模块,我总是需要构建它。

有没有办法(使用时npm link)让它链接到src目录而不是lib目录?如果做不到这一点,是否有更好的方法来实现我想要的 - 看到链接模块代码的更新立即反映在主模块中?

0 投票
1 回答
397 浏览

npm - 使用热重载进行 Npm 本地模块开发

我正在构建 2 个依赖的 npm 包。

Module A (package.json)

我们使用npm link本地连接这两个应用程序。目前我们需要npm run prepublish在 module-b 上运行以可视化 module-a 上的更改,同时在 module-a 上运行 webpack dev server

问题:我们是否可以在两个模块之间进行热重载。就像对模块 B 所做的任何更改都会自动反映在模块 A 上一样?

0 投票
1 回答
336 浏览

angular - 链接模块依赖关系未解决

我面临一个与npm link

这是在本地发布模块并在其他 Angular 应用程序中使用它们的情况。我有 2 个应用程序

1) app-core (本地发布)
2) app-main

app-core包含以下依赖项(通过 npm 安装):

core
rxjs
zone
ng2-cache // 注意这个!
ETC...


app-main包含以下依赖项(通过 npm 安装):

核心
rxjs
http
等...


我正在使用(符号链接)将app-core模块链接到本地​​ npm

全局链接此模块


现在我在我的app-main中使用app-core

到目前为止一切都很好,当我构建我的app-main时,它向我显示以下错误:

说明: ng2-cache是注入到app-core中的依赖项,而ng2-cache本身是一种自定义模块,所以它现在变成了嵌套,因为我在另一个模块 app-core 中使用了自定义模块(ng2-cache) (我自己的)和我在app-main中使用的这个app-core

这就是困扰我的情况,我的 app-main 模块没有在其中解析 ng2-cache 模块。我应该怎么办?

欣赏你的努力!