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

shared-libraries - Angular 6 Library - 很难符号链接到新项目

我有一个 Angular 6 库,我试图从中导出单个组件。与谷歌材料设计非常相似。

我遵循了本教程:https ://blog.angularindepth.com/creating-a-library-in-angular-6-87799552e7e5并遵循了这些准则:https ://github.com/angular/angular-cli/wiki/stories -创建库

当我尝试将库导入一个新项目(由 angular cli 创建)时,我遇到了错误。

库包.json: { "name": "sample-library", "version": "0.0.1", "peerDependencies": { "@angular/common": "^6.0.0-rc.0 || ^6.0.0", "@angular/core": "^6.0.0-rc.0 || ^6.0.0", "sass-flex-grid": "1.0.4", "rxjs": "6.2.2", "ng-inline-svg": "8.0.1" }, "dependencies": { } }

两个项目的顶级 package.json "@angular/animations": "6.0.3", "@angular/common": "6.1.4", "@angular/compiler": "6.1.4", "@angular/core": "6.1.4", "@angular/cli": "6.1.5"

我正在使用npm link将我的库导入另一个项目。

谷歌搜索了一段时间后,它开始感觉像是一个符号链接问题,所以我将"preserveSymlinks": true,库添加到我的新项目的 angular.json 文件中。这会产生一组新的错误:

似乎该模块没有正确导出 rxjs 或 inline-svg 依赖项;从故障排除来看,这些似乎是最相关的文件片段

我真的觉得它与符号链接有关。任何帮助将不胜感激。我没主意了。

0 投票
1 回答
4478 浏览

reactjs - 带有 npm 链接的样式化组件会导致错误:“尝试插入新的样式标签,但给定的节点已卸载”

我创建了自己的 npm 包(使用 nwb 创建),在其中使用样式组件。在我的消费应用程序中,我也在使用样式组件。

问题是。通过 .安装我的 npm 包时一切正常 npm install。但是,当使用npm link其他一些 react-router 路由时会出现以下错误消息:

在我的 npm 包中,我将 styled-components 设置为对等依赖项和 devDependency,如下所示:

为什么 styled-components 在使用时无法工作npm link

0 投票
3 回答
2269 浏览

node.js - 如何让 npm 支持本地链接依赖而不是其已发布的安装

我已经搜索过其他问题,例如这个问题,但它们似乎都是关于当地人npm link因我以外的其他原因停止工作。我认为这是一个常见的用例问题,所以如果我在系统上做错了什么,我很乐意接受关于我该如何做的建议。

主要是,我有一个正在开发的私有 npm 模块,名为@organisation/module. 在本地工作时,我会npm link在它上面运行,并在我的“主机”项目中使用它npm link @organisation/module——这一切都适用于热重载等。我还将它导入为import module from '@organisation/module.

但是,由于我还想@organisation/module不时将我的本地更改发布到 npm (as),为了构建测试和生产代码,我需要npm install @organisation/module在宿主项目上运行。

这似乎打破了npm link我之前设置的隐式......我认为主要是因为它们是同名的,并且 npm 更喜欢installa link

当我想再次进行实时本地更改时,我目前可以让它工作的唯一方法是通过npm uninstall @organisation/module然后重新链接它。

有没有办法保持已发布的模块安装(为了避免粗心的错误,比如忘记重新安装它以进行构建测试),但总是偏爱本地链接实例?

参考图: 参考图

0 投票
1 回答
650 浏览

node.js - 运行 npm link 时跳过 npm install

我已经安装了 node_modules,我想运行npm link,有没有办法在运行时使用 npm install 阶段npm link,比如:

或者

在 npm 链接文档中:https ://docs.npmjs.com/cli/link

0 投票
1 回答
1888 浏览

reactjs - 无法读取未定义的属性“@global” - NPM 链接 MUI 组件

我创建了许多 React 组件,它们包装了 Material-UI 组件并打包为 NPM 模块。

该模块在通过远程包安装时可以正常工作:npm install *name-of-package*,或通过本地安装:npm install ../*name-of-package*

但是,对于模块开发,我想使用/ etcnpm link以便可以在模块和站点目录中使用 /etc。webpack --watchwebpack-dev-server

为此,我正在运行npm link在模块目录中创建符号链接,然后npm link *name-of-package*在站点目录中。Webpack 按预期启动,但是我在浏览器中不断遇到与 MUIwithStyles功能相关的错误:

Uncaught TypeError: Cannot read property '@global' of undefined指的是var rules = style[propKey];线function handleNestedGlobalContainerRule(rule)

以及其他如:The above error occurred in the <WithStyles(Typography)> component

从我从类似的帖子中可以看出,这是在抱怨缺少theme对象(该站点MuiThemeProvider声明了一个主题对象)。

谁能建议为什么这可能npm install适用而不适用npm link?我似乎无法弄清楚这一点。

0 投票
1 回答
3179 浏览

typescript - 打字稿找不到本地链接的模块?

我正在尝试测试我为没有任何节点项目所做的一些打字稿定义。当我将它们包含在使用目标节点项目的项目中时,或者当我在其中创建自己的文件夹node_modules/@types/并将它们放在那里(node_modules/@types/chrome-aws-lambda/index.d.ts)时,它们已经工作了。这是使用节点 8.10、npm 5.6 和 typescript 3.1

但是,我已经从 github 分叉了该模​​块的存储库,并希望将其包含在项目中,以便其他人可以使用它。为了实现这一点,我编辑了分叉项目以package.json指向位于,文件旁边的项目。然后在我的项目中,我使用.typessource/index.d.tsmainsource/index.jsnpm link ../chrome-aws-lambda

这不起作用。当我运行tsc它时找不到它说的模块。 error TS2307: Cannot find module 'chrome-aws-lambda' 当我用它运行它时,--traceResolution它甚至似乎都没有尝试寻找它。

我认为这可能与没有真正“安装”的包有关,所以我试图将项目目录复制到node_modules而不是链接它。我还认为也许某些东西不起作用并且打字稿没有读取该types字段,package.json所以我将一个放在根目录中,因为这是默认设置。我想也许它没有被包含在内,所以我将它添加到我的.tsconfig. 我也尝试在配置文件中更改我baseUrl的 , paths,typeRootsmoduleResolution

这些都不起作用。

我不想在不知道它是否有效的情况下提交 PR。有没有人知道在这里做什么?我很乐意添加所需的任何相关信息,请告诉我!我已经包括了index.d.ts下面的 import 语句,以防我在那里做一些愚蠢的事情。

谢谢!

index.d.ts:

以及有问题的导入声明:

import Chromium from 'chrome-aws-lambda';

0 投票
1 回答
1081 浏览

npm - 使用 npm 链接时,无法从另一个模块或领域使用 GraphQLSchema “[object GraphQLSchema]”

我正在使用npm link更改我的私有包并查看另一个项目中的操作更改。问题是我的两个项目都graphql用作依赖项,所以我得到一个错误Cannot use GraphQLSchema "[object GraphQLSchema]",我试图resolutions在我的主项目的 package.json 中使用 key。不幸的是,它没有帮助。所以,我不知道如何在不将更新版本的包推送到 npm 的情况下解决这个问题

0 投票
1 回答
627 浏览

node.js - WARN tar EISDIR:对目录的非法操作

我正在尝试将模块发布到 npm 注册表。在发布之前,我尝试npm link使用命令将其安装为本地依赖项。

运行命令开始引发类似于以下的错误。

WARN tar EISDIR:对目录的非法操作,打开 '/[[path_to_project]]/node_modules/.staging/@babel/plugin-transform-exponentiation-operator-049e5354/lib'

npm WARN rm 没有删除 /[[path_to_project]]/node_modules/.bin/semver 因为它不是由 /[[path_to_project]]/node_modules/semver 安装的

test-pkg@1.0.0 需要 react@16.7.0 的对等点,但没有安装。您必须自己安装对等依赖项。

npm WARN test-pkg@1.0.0 需要 react-dom@16.7.0 的对等点,但没有安装。您必须自己安装对等依赖项。npm WARN test-pkg@1.0.0 无描述

我花了几个小时试图解决这个问题,但还没有运气。我浏览了这篇文章并删除了 .npmrc ,但这并没有解决问题。

0 投票
1 回答
5297 浏览

node.js - using dist folder instead of root for npm package

I created a Node.js package and the files to be referenced by the user of this package reside in a dist folder inside the package.

Now I don't want to use require('my-package/dist/feature') but require('my-package/feature').

I set main and files to this in package.json but when testing the package with npm link locally, I still have to use require('my-package/dist/feature') otherwise I get Cannot find module errors.

package.json:

0 投票
2 回答
550 浏览

node.js - Node-Red 自定义 node_modules 位置

我正在使用嵌入在我的 Express.js 应用程序中的 node-red,例如 https://nodered.org/docs/embedding。当像这样嵌入时 node-red 无法从 npm 加载新节点。

问题是在 settings.js 中定义自定义用户目录时,例如userDir: 'node-red-data/'Node-red 将加载的节点添加到 node_modules 内的此文件夹中。

所以我有两个 node_modules 文件夹:

一些 node-red 无法在侧面加载模块的方式myapp/node-red-data/node_modules

有什么解决办法吗?