问题标签 [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 回答
835 浏览

angular - 如何配置我的角度库以使用正确安装的 RxJS 链接它进行本地测试?

我已经能够构建、链接并将我的库导入到我的主应用程序中,但是我的库提供了一个返回 RxJs Observables 的服务,并且我遇到了一个问题,即返回类型是在库 node_modules 中找到的 RxJs observable,而不是主要应用程序节点模块:

这是我的 Angular 库的 Workspace 的 package.json:

和图书馆项目本身:

库的工作区的 tsconfig:

我的应用程序的 tsconfig:

据我了解,对等依赖项应该在 tsconfig 路径中​​ - 我假设在库中,但这对我不起作用,所以我尝试了两者,如您在上面看到的。

这是一个问题,因为这会导致错误:

0 投票
1 回答
31 浏览

node.js - 相对文件的节点模块路径

因此,我编写了一个短节点模块(module1)作为可以通过命令行调用的二进制文件(.exe)的包装器。

这就是我获取二进制文件路径以使用 .exe 执行 .exe 的方式execFilePromised。它适用于我的模块1。

问题: 当我将 module1npm link ../<module1>导入另一个节点项目时,路径未正确设置为,.exe因为它位于我的node_modules文件夹中,而不是位于<otherproject>/mpq/MPQEditor.exe

如何使相__dirname对于实际文件而不是项目执行目录?

0 投票
0 回答
351 浏览

angular - Npm 链接:找不到库的模块

我在一个主应用程序和一个外部库上工作。我已使用 npm link 在主应用程序中创建指向库的链接。

在主应用程序中,我添加了一些导入,例如:

在我使用 npm 链接(我的 lib 是一个天蓝色的工件)之前,这些导入曾经可以工作。但是由于我已经使用 npm link 创建了符号链接,所以我遇到了编译错误,例如

找不到模块“@scope/myLib”。

在主应用程序 angular.json 中,我已经添加了 "preserveSymlinks": true

任何想法?

0 投票
1 回答
1124 浏览

javascript - 使用 npm link 命令时出错

我正在尝试在我的 Windows 计算机上使用 npm 链接命令,但是遇到此错误有人可以在这方面帮助我我现在坚持了一段时间

0 投票
1 回答
1303 浏览

reactjs - ReactJS:导入符号链接组件错误:模块解析失败:意外令牌:您可能需要适当的加载程序来处理此文件类型

我正在编写一个 React 组件库,我想在其他项目中使用它,而无需太多开销(bit、create-react-library、generact 等)且无需发布。我想用npm install ../shared_lib它作为符号链接将它添加到我的项目中/node_modules。此命令将符号链接添加到项目 node_modules。在我的 shared_lib 中,我只是对 a 进行了export default测试<div></div>

当我将组件导入我的工作项目时,我面临的问题是以下错误:

错误:

如果我从shared_lib带有 jsx 的文件以外的文件导入任何内容 - 例如,字符串或函数等 - 它工作正常。

编辑:应用程序 webpack 已将解析对象的 symlinks 属性设置为 false:


编辑:在下面的答案(https://stackoverflow.com/a/60980492/3006493)中应用解决方案后,我后来将 symlinks prop 改回 true。我不需要将其设置为 false 以使解决方案工作和渲染shared_lib组件。


我的应用程序的加载器:


编辑:当我在下面的答案中应用解决方案时,加载器现在看起来像这样:


应用程序当前的 .babelrc 设置(我也尝试删除 .babelrc 并在 package.json 中包含预设,结果相同):


**编辑:在下面的答案中应用解决方案后,我最终将 babel 预设放回package.json.


我研究了一段时间以找到解决方案,显然 webpack 在捆绑符号链接反应组件时遇到问题?我没有使用 create-react-app。 因此,我尝试在将 shared_lib 导入项目之前对其进行捆绑,看看会发生什么。这是最终的 webpack 配置(我也尝试了其他配置):

以及 shared_lib 的 package.json

该软件包捆绑无错误: 在此处输入图像描述

在此处输入图像描述

当我尝试以相同的方式导入组件时:

在此处输入图像描述

console.log 返回undefined

在此处输入图像描述

我的应用程序中库文件的路径很好,因为如果我删除所有内容并在我的will return中shared_lib/dist/shared_lib.js写入。export default 1console.log(TryTest)App.js1

我尝试将 libraryTarget 属性更改shared_lib/webpack.configlibraryTarget: 'commonjs'. 的结果console.log(TryTest)变成{shared_lib: undefined}

在此处输入图像描述

有没有人遇到过这个?

0 投票
1 回答
47 浏览

npm - 运行“npm link”会破坏 yarn 和 npm?

我跑npm link了一个项目。我收到了一些错误信息,然后跑回npm unlink原处。

现在许多基本的 npm 和 yarn 命令已经停止工作。

例如:

如何从 npm 链接中清理混乱?

0 投票
1 回答
25 浏览

vue.js - 无法使用 npm 链接访问 Vue 指令

我 fork 了一个 npm 模块,想进行一些更改,在本地测试它们,然后打开一个 pr。

我有两个文件夹:

~/projects/some_module-test我想运行一个 Vue 应用程序来测试我的更改。

~/projects/some_module是 的分叉回购some_module

我跑npm link进去~/projects/some_module然后npm link some_module进去~/projects/some_module-test

在我main.js执行some_module-test以下操作:

当我登录时,my_module我可以看到它上面的所有方法,所以npm link似乎有效。

不幸的是,我无法访问应该由my_modulein提供的指令App.vue

<div @my_module_shortkey="['ctrl', 'a']" @my_module_directive='someAction()'/>

这是我的vue.config.js

非常感谢任何输入!

0 投票
0 回答
888 浏览

angular - 每次构建 Angular 库后都需要不断地重新安装节点模块

我发现很难说出这个问题。我希望这是有道理的。我在这里进行了更广泛的搜索,试图找到对这种行为的引用,但没有找到任何东西。

我有一个 Angular 库项目,它已经完美运行了几个月。

想要在库中添加一个新的(稍微复杂的)新功能,我厌倦了在每次测试后将构建的库复制到我的主项目中。

经过一番研究,我发现npm link了我以前没有使用过的东西。这在大约一周的时间里非常有效。在库项目中的每次更改后,我都重建了库,并且这些更改立即在我的主项目中可用。

然后就在昨天,一些非常奇怪的事情开始发生。我去构建库项目并得到页面或错误。(见下文)

重新安装所有的 npm 包解决了这个问题,但是当我去使用我的主项目时,所有的错误都再次出现在那里。

然后我对库项目进行了一些更改并进行了重建,所有错误又回来了。

关于这里发生了什么的任何想法?

2020-06-30 编辑

根据我下面的一条评论,这几天没问题,但我昨天和今天早上不得不重新安装。

0 投票
1 回答
567 浏览

shared-libraries - 来自 Create React App 项目的共享库提供(jsx 当前未启用错误)

我正在尝试将共享库用于可重用组件,并仅使用 2 个开箱即用的 Create react 应用程序。一个称为“共享库”,另一个称为“项目示例”。我在共享库中制作了一个超级简单的组件,导出(在我测试时工作)。我 NPM 似乎正确地链接了两者(shared-lib 在我的项目示例 node_modules 中带有一个特殊图标)。我建立了共享库,我还导入了共享组件(SharedComponent)

从“共享库”导入 SharedComponent;<- lib 在我的 node_modules 中

../shared-lib/src/index.js SyntaxError: /Users/bemker/dev/portals-modern/shared-lib/src/index.js: 当前未启用对实验性语法“jsx”的支持(8 :3):

将 @babel/plugin-transform-react-jsx ( https://git.io/vb4yd ) 添加到 Babel 配置的“插件”部分以启用转换。

我正在关注一个视频教程,他不必弹出他的 create react 应用程序,但我猜这就是错误的来源。

如果有人想看,这是我正在关注的视频。https://www.youtube.com/watch?v=B7iYJT_ll-U

任何人都知道为什么会发生这种情况,或者如何克服它(最好不弹出)?

0 投票
1 回答
36 浏览

reactjs - 在我的 React Typescript 项目中共享我的一个库的最简单方法是什么?

假设我想在我的 React 项目中共享一些公共数据对象或实用程序类(仅限本地)。例如,执行复杂字符串或数据结构操作的实用程序类。

最好的方法是什么?我应该为库创建一个单独的 NPM 模块,并将其链接到每个项目吗?

我见过一些create-app-rewired使用getBabelLoader.