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

angular - 找不到“AppModule”的 NgModule 元数据中的错误

我正在使用 Angular 6.0.7。我正在尝试在本地调试我的一个包。为此,我正在使用npm link. 但是当我尝试为应用程序提供服务时,它会抛出一个错误,

找不到“AppModule”的 NgModule 元数据中的错误。

以下是我链接我的包裹的步骤

  1. npm link在我的包文件夹上
  2. npm link my-package在我的应用程序文件夹中
  3. 在我的应用程序的 ts-config 文件中,我将我的包包含为"include": ["./node_modules/my-package"]

在 angular.json 文件上"preserveSymlinks": true。在本地链接包之前,应用程序运行良好。我在这里错过了什么吗?任何帮助,将不胜感激。

0 投票
3 回答
5208 浏览

typescript - 使用 yarn link 消耗具有 peerDependencies 的本地 npm 包时出现问题

在尝试使用styled-components.

出于本示例的目的,假设我们有两个存储库,app并且将由.corecoreapp

目前,core使用 TypeScript 编写并使用tsc.

为了快速迭代,我尝试使用yarn linkto 链接coreapp.

这可以很好地进行app查找core...我面临的问题是,当编译的 TypeScript 代码core尝试需要一个包时,例如styled-components,它试图在node_modulesof core( not of app) 中找到这个包。由于我styled-components同时拥有 peerDependency 和 devDependency 它能够在core's中找到它node_modules,但这不是我想要发生的。我希望它使用styled-componentsof app

yarn link我尝试过的一种替代方法是添加coreto appvia的依赖项file:/path。这似乎按预期工作,但引入了新问题。我怎样才能让我的开发机器的路径存在于package.json本地开发中(而不是不断地来回切换)?此外,似乎任何更新都core需要从 中删除包app,并在重新添加之前清除 yarn 的缓存。

有没有更简单的方法可以使这种情况起作用?我刚刚开始将 Rollup 或 Webpack 视为一种解决方案,但不确定这是否是正确的方向。

0 投票
0 回答
339 浏览

webpack - 收到'错误:无法解决' 尝试在本地使用自定义构建的模块时

我正在尝试导入我在本地创建并链接/安装到另一个通过 webpack 构建和运行的模块的模块。

我使用了多种方法将自定义模块集成到其他模块中:

  1. npm link自定义模块创建一个符号链接,该链接出现在node_modules另一个模块的目录中
  2. npm install <local_absolute_path>安装它的自定义模块
  3. 使用wmlhttps://github.com/wix/wml)将自定义模块中更改的文件复制到node_modules
  4. 将自定义模块发布到npm然后安装到另一个模块中

所有这些方法仍然导致 webpack 和 Flow 显示Cannot resolve错误

NPM 版本:6.9.1-next.0 节点版本:8.8.1

这是package.json自定义模块的文件:

这是webpack.common.js尝试导入自定义模块的其他模块的文件:

这是我的.flowconfig

我经常收到的两个错误是:

我相信来自 webpack

来自Flow

我假设问题源于自定义模块设置本身......知道它可能有什么问题吗?

0 投票
1 回答
588 浏览

webpack - Babel 无法使用本地自定义模块中的 Flow 解析文件。失败并出现以下错误:`Module build failed...SyntaxError: Unexpected Token`

所以我正在创建一个 web 应用程序,我们将调用WebApp它,它是一个使用来自自定义 React 模块的组件的 React 模块,我们将调用CustomModule它,它也位于我的本地计算机上。我一直在尝试从CustomModulein导入某些组件,WebApp并且在运行时遇到了以下webpack-dev-server -d错误WebApp

两个模块都使用Flow,babelwebpack. 我已经在每个模块中相应地设置了package.jsonwebpack.config.js.flowconfig和文件。.babelrc然后我象征性地链接CustomModuleWebAppusing npm link。我构建CustomModuleusingwebpack然后尝试构建WebApp其中包含导入语句以使用来自CustomModule.

版本

WebApp webpack.config.js

WebApp .flowconfig

自定义模块 webpack.config.js

自定义模块 .flowconfig

两个模块使用相同的 .babelrc

我希望 的结果webpack-dev-server不会产生错误Module build failed,而不是在 babel 解析期间抛出的错误。

0 投票
1 回答
17712 浏览

vue.js - 如何使用 npm 链接修复 vuejs 模块中的“找不到模块”

我创建了一个 vuejs 库,其中包含一些可用于许多项目的组件。在那个库中,我有一个组件可以加载 svg 文件以在 html 中内联使用(svg-icon)。

它工作得很好。

但是在同一个库中,我有另一个组件,它使用 svg-icon 和存储在库中的 svg 图像。

一个导入点,我想将此库(节点模块)与 npm 链接一起使用

哪个是给出 svg 图像路径的好方法,或者在哪里存储它?

我尝试了很多不同的路径,但它们都不起作用......

这是我的 svg-icon 组件:

这是使用 svg-icon 的组件(svg 图像实际上在同一个文件夹中):

我总是遇到这个错误:

Cannot find module '~my-module/components/media/no-image.svg'

Cannot find module './no-image.svg'

在这种情况下,哪条路是好路?或者我应该把 svg 文件放在别的地方吗?(我想把它放在图书馆里)

0 投票
1 回答
4287 浏览

android - 如何手动链接 npm 包'react native reanimated'

谁能告诉我如何手动链接

react-native-reanimated

因为自动 cli 链接不起作用并且崩溃反应原生应用程序

0 投票
1 回答
182 浏览

node.js - npm 链接本地库需要 node_modules 而 git 链接库(相同)不需要

抱歉标题不好(真的不知道我可以给这个问题提供什么其他标题)。

长话短说,作为第一次反应组件库开发人员。我正在使用webpack 4将我的幻想反应组件库转换为模块。

一切都很顺利,直到我开始使用npm-link来加快我的本地开发速度。

所以主要问题是虽然我已经指定如下

所以如果我通过 git 语法导入了模块

一切正常,最终捆绑的 js 中只有一个react副本。

但是如果我用 npm-link 绑定到项目文件夹,react 的第二个副本会添加最终绑定的 js。

谁能告诉我为什么?

谢谢

0 投票
1 回答
1870 浏览

vue.js - 无法通过 npm 链接使用 Vue 组件库

我正在同时构建一个 Vue 应用程序和一个 Vue 组件库。所以,我想用 npm 链接设置库,这样我就不必继续发布我的库包并在我的主应用程序中重新安装它。

我的包裹将被调用@company/vue。我可以将它发布到 npm 并在我的 Vue 应用程序中安装/使用它,如下所示:

这很好用。我可以访问我的 .vue 文件中的组件等等。

但是,如果我按照标准步骤链接我的库:

  1. cd 路径/到/库
  2. npm 链接
  3. cd 路径/到/应用程序
  4. npm 链接@company/vue

启动开发模式后,我收到以下警告:

当然,页面中的任何内容都不会加载。

我不得不想象我可能把它捆绑错了?

我的构建脚本如下所示:

还有它所指的我的 index.js:

这只是我见过的大多数图书馆这样做的标准方式。再说一次,如果我从 npm 中拉出包,它工作正常。

这是与我的 package.json 中的捆绑相关的内容:

最后,我的组件库的 babel 配置:

0 投票
2 回答
2967 浏览

angular - 如何在本地开发相互依赖的 Angular 7 库?(npm 链接问题)

我有两个角度库 NPM 包:

  • A有基本组成部分
  • A-BC具有基于A中的组件构建的组件,并具有与BC库集成的附加功能

A-BC导入中的A一些组件import { MyThing } from 'A';

A-BC的 package.json 是:

我尝试的开发步骤是:

  1. npm link --only=production在(的内置版本)A
  2. npm link --only=production在(的内置版本)A-BC
  3. my-app,运行npm link A
  4. my-app,运行npm link A-BC
  5. my-app

找不到安装在任何地方时编译my-app失败。它们都以符号链接文件夹的形式正确列在彼此旁边。我已经在and中启用了这个,但这没有帮助。A-BCAnode_modulespreserveSymlinkstsconfig.jsonangular.json

A可能是 的直接依赖项A-BC,但是:

  • 两者都有一个调用A,该调用对于安装它的应用程序正常运行所需的包。我不知道如何将参数动态地从A-BCforRoot()forRoot()A-BC forRoot()A forRoot()
  • my-app需要使用来自AAND 的组件的组件A-BC
  • 如果A是直接依赖项,我不知道如何在A-BC本地进行开发——这可能涉及同时更改A-BC和偶尔更改A.

目前我的创可贴解决方案是:

  1. 发布A为测试版
  2. A-BC在和中安装测试版my-app
  3. 链接A-BCmy-app通过npm link
  4. A如果需要进行更改,则发布新的测试版,my-app然后A-BC反复安装

通过 NPM 对本地文件的支持进行安装可能有另一种工作流程A,但我不确定。

0 投票
3 回答
4302 浏览

javascript - 在链接库和工作区应用程序之间链接反应版本

我正在为我常用的组件开发一个 React 库。在我的根文件夹中,有:

  • 我的汇总配置和src/包含我的库的文件夹。构建时,捆绑文件(ES、CJS 和 UMD)在dist/文件夹中。
  • 我的工作区:一个简单的parcel捆绑应用程序,其中有一个独立的package.json. 在此package.json,myLib 处于依赖关系中,我将其链接。

当我想在工作区中使用 myLib 时,我会像这样导入它:import { Button } from 'myLib'.

在这里,一切似乎都很好。但是在一个组件中我使用了一个钩子并且我有这个错误:

似乎有两个 React 副本,npm ls react返回:

我试图在node_modulesmyLib/workspace/ node_modules之间链接 react 和 react-dom ,但它从来没有工作过,这个错误仍然存​​在。


TLDR;

这是我的文件树:

将 myLib 链接到工作区:我去myLib/,我做,yarn link然后我去workspace/,我做yarn link myLib

react 和 react-dom 是peerDependencies inmyLibdevDependencies inworkspace/


哦,当然我已经看过这里了: