问题标签 [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 投票
1 回答
1300 浏览

reactjs - 如何在多个 React 应用程序之间共享数据?

我正在遵循微服务架构来开发反应应用程序。使用 npm link 在一个主要的反应应用程序中有多个反应和链接项目。哪个成功。

Web api 是在 Asp.net 核心中开发的。这里的概念是 api,react 应用程序在一个项目中,我们将其链接到我们的主要应用程序中。这带来了好处,我们的 api 和字体代码在一个地方。

例如:电子商务网站主要应用在react中。产品模块/订单模块/支付模块是不同项目中的微服务。在 React 主应用程序中都使用 npm 链接进行连接。但我的问题是如何在微服务之间共享数据?

我想在其他应用程序之间共享用户数据/登录信息。通常我们使用上下文 api 将数据传递给组件,但是如果所有组件都在不同的反应应用程序中,这将如何实现?

还有其他方法可以在 asp.net core 的 web-API 中存档吗?

0 投票
2 回答
7330 浏览

javascript - 如何使用 npm 链接修复 Angular 库中的“未找到模块”错误?

我正在尝试为 Javascript 库构建 Angular 包装器,但出现“未找到模块”错误。Javascript 库正在开发中,尚未发布到 NPM,所以我正在使用可能导致问题的 npm-link,但我不确定。我的 Angular 版本是 8.2.2。

Javascript 源库

源库/index.js:

sourcelib目录还包含package.jsonREADME.md文件。如您所料,创建了一个 npm-link:

角度包装器

以下是我为创建 Angular 工作区、库和测试应用程序而执行的 Angular CLI 命令:

现在将testlib链接到 Javascript 库:

在testlib 中生成一个模块和组件:

testcomp.component.ts

公共 api.ts

现在构建sourcelib

这是控制台输出:

并创建一个指向sourcelib的 npm-link :

角度测试应用

将testlib-app链接到testlib

app.module.ts

app.component.ts

服务应用程序:

结果

我花了很多时间对此进行故障排除,但未能找到解决方案。任何帮助,将不胜感激。

0 投票
1 回答
45 浏览

reactjs - 如何在没有 node_modules 的情况下导入我在本地制作的 React 组件?

我构建了一个反应组件(my-shared-component),我想在本地与其他项目一起使用。我使用汇总来捆绑我的组件,输出是一个 dist 文件夹。

为了避免将我的组件发布到 npm,我使用了npm link. 但是,当我npm link <my-shared-component>在我的主机组件中执行此操作时,整个共享组件文件夹都会添加到我的 node_modules 中,包括我的组件的 node_modules 库、源文件等 - 这会导致我的主机应用程序中出现一些错误。

显然我不想这样做,如果我已经将我的组件发布到 npm 然后 used npm -i my-shared-component,那么只会安装我的 dist 文件夹。

我可以使用 npm-link 在本地模仿这种行为吗?我想使用 my-shared-component 的打包版本。

谢谢!

0 投票
0 回答
442 浏览

node.js - Oclif cli 作为 tarball 发布:如何将命令自动链接到 bashRc 而无需编写“npm link”?

我正在尝试发布一个使用 oclif 作为 tarball 构建的 cli。在本地环境中,我需要编写 npm link 以将代码与命令链接。但在产品中,我不希望用户在下载 zip 后打开终端并编写 npm 链接。

似乎 npm 无法运行预安装脚本,除非调用“npm install”。编写一个 shell 脚本听起来是个不错的解决方案,但是用户必须再次手动执行这个脚本。我想知道在用户下载 zip 后是否真的没有办法让这个“npm 链接”自动执行。我确定 Oclif 有它的东西,但我在文档https://oclif.io/docs/releasing中找不到它。

谢谢你的帮助。这是项目的package.json

0 投票
3 回答
18338 浏览

angular - 在 Angular 库中保留符号链接

我有个问题。

我正在尝试使用 ng-cli 创建 Angular 8 库,但我无法使用npm link.

我试图在我的 angular.json 上添加这个:

但得到:

我发现它不适用于图书馆。

然后我尝试将其添加到我的 tsconfig.lib.json 中:

什么也没发生。

我在这里搜索解决方案,但找不到类似的东西。

我怎样才能做到?

谢谢!

0 投票
1 回答
78 浏览

reactjs - 如何取消链接已删除的全局包?

我已经用npm link包文件夹中的命令链接了一个包,然后我删除了它,我无法从 npm 全局列表中取消链接包。

0 投票
0 回答
210 浏览

node.js - Npm 链接在 Angular7 项目中不起作用

我已经创建了一个 Angular7 应用程序,并且必须在我的主 Angular 应用程序中安装另一个 Angular 应用程序作为小部件。

我曾经npm-link将小部件 Angular 应用程序与我的主要 Angular 应用程序链接起来。

步骤npm link

  1. 在主项目文件夹的 cmd 中 Ran 命令npm link ../ol-core-widget

ol-core widget项目已链接到我的主项目,当我更新ol-core-widget该文件时node_modules/,主项目中也会更新。但是当我的主项目尝试从 访问文件时ol-core-widget,它失败了。

  1. 之后我跑了npm install,但它删除了所有链接。

如果我在我的小部件应用程序中进行任何更改,那么我必须.tgz为该项目创建一个文件,然后将其安装在我的主要 Angular 应用程序中。

版本信息:

  • npm6.4.1
  • 节点10.13.0
  • 角 CLI7.0.3
0 投票
3 回答
9938 浏览

typescript - 如何使用 npm 链接和使用 TypeScript 编写的模块进行开发?

我正在使用 TypeScript 和 Webpack 构建一个库。

为了开发这个库,我创建了一个单独的测试项目(使用 JS 编写)并使用npm link <package-name>.

问题是链接指向构建文件,我npm run build每次进行更改时都需要运行。

我想要一个指向源文件的链接并进行实时重新加载。是否可以?我是否还需要使用 TS 编写我的测试项目才能使其成为可能?

图书馆package.json

库代码https://github.com/kozakdenys/qr-code-styling/tree/v1

测试项目代码https://github.com/kozakdenys/qr-code-styling-site

PS我也试过"module": "src/index.ts"package.json,但是导致测试项目出错Uncaught Error: Cannot find module './core/QRCodeStyling'

0 投票
2 回答
6105 浏览

node.js - npm 仅链接 dist 文件夹

有没有办法限制npm link创建符号链接只指向./dist

我一直在苦苦挣扎,因为我想在发布之前在本地测试我的库(反应组件)。

在我的package.json中,我包含了主要(入口点):

但是当我运行npm link它时仍然链接到具有node_modules等等的父文件夹。这会导致问题,因为现在我安装了 2 个反应应用程序。

我想到了一种排除方法,node_modules但我什至找不到方法来做到这一点。

0 投票
0 回答
65 浏览

performance - 使用链接的纱线与安装包的性能不同?

我已经为 prettier 编写了一个插件,并尝试提高格式化程序的速度。
所以我使用yarn link+yarn link "@prettier/plugin-pug"yarn prettier --write 'src/**/*.pug'在一个包含 86 个哈巴狗文件的(封闭源代码)项目中运行

当我不链接我的插件并使用通过 package.json 安装的默认值时,
我会得到一个结果✨ Done in 18s

当我使用相同的提交 + 构建 dist + yarn 链接时,我得到了一个结果✨ Done in 8s

有人可以解释发生了什么吗?
是因为链接版本有它自己的 node_modules 文件夹吗?

我没有用 npm 测试过,但我认为它可能是相同的结果。
使用 npm link 的结果是一样的!