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

react-native - React Native:npm链接本地依赖,无法解析模块

我正在开发一个按钮 ui 包以响应本机。我尝试构建一个示例项目来测试这个按钮。目录结构如下:

我尝试使用npm link

example/node_modules/我可以看到 my-button 符号链接中,VSCode 也可以在 my-button 包中自动完成功能。

但是执行示例应用程序会显示错误:

但是错误信息中的路径是正确的。

不知道我哪里错了,还是在 React-Native 中有什么特殊的方式来处理链接本地依赖?

我也试过了npm install file:../.example/它以这种方式工作正常,但在我编辑我的按钮后更新依赖并不容易。

0 投票
0 回答
3180 浏览

windows - 如何取消链接本地包?npm 在 windows env 中存储链接的位置?

我使用 npm link 命令链接了一个本地开发的包。从那以后,我无法将其取消链接。

我在 Windows 10 上。

我努力了:

  1. npm 取消链接
  2. npm 删除
  3. npm 卸载
  4. 彻底清除 npm 缓存和全局 repo。

我希望该软件包现在可以从 npm 网络存储库安装,就像我一样:

在我的 package.json 文件中,但它仍在安装本地链接版本。npm 在哪里存储链接?

0 投票
1 回答
106 浏览

javascript - 在流星应用程序中调试本地 npm 链接包

我正在编写一个 javascript 库,该库是 npm 链接到我的流星应用程序。我还没有将库发布到 npm,所以它只是本地的。现在我的问题是,我想在我的流星应用程序中使用它时在库中进行调试。

我可以调试流星应用程序组件并使用源映射和独立的 html 测试页面以及库本身。但是一旦我import Library from 'library'在流星中使用它,它就会缩小、丑化和破坏它。

有没有办法告诉流星的构建系统或我的浏览器使用图书馆的源地图?

提前致谢

0 投票
0 回答
480 浏览

webpack - webpack - 链接 node_module 更改时的热重载

在我的本地环境中,我的主项目 (A) 通过 npm 链接链接到另一个项目/本地库 (B)。

当我对项目 B 进行更新时,我必须运行构建然后重新声明链接。完成后,我必须通过 webpack 通过更改项目 A 中的文件来重新编译项目 A。

项目 B 通过 global 注册。Webpack 有没有办法在检测到全局包更改时热重载?

0 投票
3 回答
7294 浏览

node.js - npm 链接,不链接 devDependencies

看来,当我运行时npm link,它将全局安装该项目,并且似乎与它一起安装 devDependencies

有没有办法在没有 devDependencies 的情况下运行 npm 链接,也许带有--only=production标志?

0 投票
0 回答
1045 浏览

angular - 在 Angular 4 中创建一个外部模块

我想创建一个外部模块,然后将其导入我的项目。

我创建了一个包含组件( widget.component.ts )的简单模块( widget.module.ts ),因此我使用 npm 生成了一个 package.json 文件

然后我创建一个简单的应用程序

在 MySimpleApp 路径中,我链接了我的模块

但是当我启动我的应用程序时

我有这个错误:

由模块“AppModule”导入的“WidgetModule”。请添加 @NgModule 注释。

0 投票
1 回答
214 浏览

npm - 本地存储库作为依赖项

我正在开发两个存储库,一个依赖于另一个。我在 npm v5 上。我在as中指定依赖package.json项。当我这样做时,这会为in创建一个符号链接,指向.main-repo../dependent-reponpm installdependent-repomain-repo/node_modules../../dependent-repo

问题是它下面dependent-repo有它自己的东西,所以当我在它的node_modules依赖项之一中引用(需要或导入)某些东西时,默认解析过程会解析为 in 的依赖,而不是 in 的依赖。dependent-repo/node_modulesmain-repo/node_modules

这被证明是 TypeScript 的一个问题,因为它显然认为 与main-repo/node_modules/@angular/core不同dependent-repo/node_modules/@angular/core,即使它们是相同的版本,并且逐字节相同。这会导致以下形式的 TS 错误

“ViewContainerRef”类型的参数不能分配给“ViewContainerRef”类型的参数。

我对这个问题很熟悉,因为我在使用npm link. 该问题已在 TS 问题列表中进行了广泛讨论,但据我所知没有解决方案。我希望 npm v5 能以某种方式神奇地解决这个问题,但到目前为止还没有运气。

我尝试将依赖项指定为file://../dependent-repo,但这也只是创建了相同的符号链接(至少在 npm5 中;我似乎记得在早期版本中,如果可能复制了目录锁、库存和桶)。

目前我能看到的唯一解决方法是让依赖项指向 github 服务器,然后提交并推送我所做的每一个更改,然后npm install在主 repo 上重新运行以引入最新的更改。这正是我试图避免的。

dependent-repo/node_modules在测试之前想到了临时重命名main-repo,所以在解析过程中省略了。但是,这显然需要 的所有依赖项dependent-repo都存在于main-repo.

我尝试使用(in ) 的paths选项进行一些操作,并且对 类似的东西有一些运气,但无法让它完全发挥作用。tsconfig.jsonmain-repopaths: {"*": ["node_modules"]}

我知道angular-cli可能对其内部 webpack 配置进行了一些更改以使其更好地工作,但不幸的是,我main-repo使用的是较旧的 webpack 构建过程,并且我无法进行一些建议的更改,例如resolve: {fallback: [path.join(__dirname, 'node_modules')]}resolve: { modules: [ path.join(__dirname, "node_modules") ] }为我工作。

0 投票
0 回答
336 浏览

npm-link - npm 链接错误代码:128

我正在开发一个软件,并意识到它的一部分应该是一个单独的包。在拆分代码之前,我决定尝试该npm link命令。我按照 npm 文档创建了一个虚拟包(正是文档所描述的 - exports.printMsg = function(){} ...)以链接到并遵循有关npm link. 第一部分(到 /lib/node_modules 的符号链接)运行良好。第二部分失败并显示以下错误消息:

请你帮帮我好吗?我发现的所有类似错误都建议重新启动我的电脑(我做了什么)或升级 npm(我正在运行 5.3.0)。

我不明白的是为什么应该符号链接包的命令试图解决某些问题......

0 投票
6 回答
11243 浏览

javascript - npm 链接不适用于 angular-cli 创建的项目

我已经使用angular-cli. 有一个AppModuleAppComponent我想在其他 Angular 应用程序中使用AppModule它及其组件 ( )。AppComponent所以我创建了index.ts文件并导出了AppModuleAppComponent

然后使用创建本地链接npm link并使用 package.json 中定义的名称创建链接。

现在在我想使用这个导出模块的其他项目中运行

链接已成功完成。我试过了

但这不起作用,因为 webpack 无法编译 AppModule 文件,因为引用没有得到解决。在 SystemJs 我们在 systemjs.config.js 文件中定义了 this 的映射,但是没有配置文件。

我该如何解决这个问题?

有没有其他方法可以重用本地模块?

0 投票
0 回答
691 浏览

javascript - 获取 __dirname 以指向文件夹路径而不是符号链接文件夹的真实路径

使用 npm 链接时,如何让 __dirname 指向文件夹的保留路径,而不是符号链接文件的真实路径。

设想

文件夹设置

内部 moduleA.js

但是,预期的行为是

因为 npm link 创建了一个符号链接,它将链接的模块插入到 node_modules 文件夹中,因此模拟了直接安装模块的体验。

如何让 __dirname 指向保留的路径,而不是模块所在的真实路径?

注意: --preserve-symlinks 命令行选项不会影响 __dirname 的值