问题标签 [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.
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 依赖项;从故障排除来看,这些似乎是最相关的文件片段
我真的觉得它与符号链接有关。任何帮助将不胜感激。我没主意了。
reactjs - 带有 npm 链接的样式化组件会导致错误:“尝试插入新的样式标签,但给定的节点已卸载”
我创建了自己的 npm 包(使用 nwb 创建),在其中使用样式组件。在我的消费应用程序中,我也在使用样式组件。
问题是。通过 .安装我的 npm 包时一切正常 npm install
。但是,当使用npm link
其他一些 react-router 路由时会出现以下错误消息:
在我的 npm 包中,我将 styled-components 设置为对等依赖项和 devDependency,如下所示:
为什么 styled-components 在使用时无法工作npm link
?
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 更喜欢install
a link
?
当我想再次进行实时本地更改时,我目前可以让它工作的唯一方法是通过npm uninstall @organisation/module
然后重新链接它。
有没有办法保持已发布的模块安装(为了避免粗心的错误,比如忘记重新安装它以进行构建测试),但总是偏爱本地链接实例?
node.js - 运行 npm link 时跳过 npm install
我已经安装了 node_modules,我想运行npm link
,有没有办法在运行时使用 npm install 阶段npm link
,比如:
或者
在 npm 链接文档中:https ://docs.npmjs.com/cli/link
reactjs - 无法读取未定义的属性“@global” - NPM 链接 MUI 组件
我创建了许多 React 组件,它们包装了 Material-UI 组件并打包为 NPM 模块。
该模块在通过远程包安装时可以正常工作:npm install *name-of-package*
,或通过本地安装:npm install ../*name-of-package*
。
但是,对于模块开发,我想使用/ etcnpm link
以便可以在模块和站点目录中使用 /etc。webpack --watch
webpack-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
?我似乎无法弄清楚这一点。
typescript - 打字稿找不到本地链接的模块?
我正在尝试测试我为没有任何节点项目所做的一些打字稿定义。当我将它们包含在使用目标节点项目的项目中时,或者当我在其中创建自己的文件夹node_modules/@types/
并将它们放在那里(node_modules/@types/chrome-aws-lambda/index.d.ts
)时,它们已经工作了。这是使用节点 8.10、npm 5.6 和 typescript 3.1
但是,我已经从 github 分叉了该模块的存储库,并希望将其包含在项目中,以便其他人可以使用它。为了实现这一点,我编辑了分叉项目以package.json
指向位于,文件旁边的项目。然后在我的项目中,我使用.types
source/index.d.ts
main
source/index.js
npm link ../chrome-aws-lambda
这不起作用。当我运行tsc
它时找不到它说的模块。
error TS2307: Cannot find module 'chrome-aws-lambda'
当我用它运行它时,--traceResolution
它甚至似乎都没有尝试寻找它。
我认为这可能与没有真正“安装”的包有关,所以我试图将项目目录复制到node_modules
而不是链接它。我还认为也许某些东西不起作用并且打字稿没有读取该types
字段,package.json
所以我将一个放在根目录中,因为这是默认设置。我想也许它没有被包含在内,所以我将它添加到我的.tsconfig
. 我也尝试在配置文件中更改我baseUrl
的 , paths
,typeRoots
和moduleResolution
。
这些都不起作用。
我不想在不知道它是否有效的情况下提交 PR。有没有人知道在这里做什么?我很乐意添加所需的任何相关信息,请告诉我!我已经包括了index.d.ts
下面的 import 语句,以防我在那里做一些愚蠢的事情。
谢谢!
index.d.ts:
以及有问题的导入声明:
import Chromium from 'chrome-aws-lambda';
npm - 使用 npm 链接时,无法从另一个模块或领域使用 GraphQLSchema “[object GraphQLSchema]”
我正在使用npm link
更改我的私有包并查看另一个项目中的操作更改。问题是我的两个项目都graphql
用作依赖项,所以我得到一个错误Cannot use GraphQLSchema "[object GraphQLSchema]"
,我试图resolutions
在我的主项目的 package.json 中使用 key。不幸的是,它没有帮助。所以,我不知道如何在不将更新版本的包推送到 npm 的情况下解决这个问题
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 ,但这并没有解决问题。
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
:
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
有什么解决办法吗?