问题标签 [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.
angular - 找不到“AppModule”的 NgModule 元数据中的错误
我正在使用 Angular 6.0.7。我正在尝试在本地调试我的一个包。为此,我正在使用npm link
. 但是当我尝试为应用程序提供服务时,它会抛出一个错误,
找不到“AppModule”的 NgModule 元数据中的错误。
以下是我链接我的包裹的步骤
npm link
在我的包文件夹上npm link my-package
在我的应用程序文件夹中- 在我的应用程序的 ts-config 文件中,我将我的包包含为
"include": ["./node_modules/my-package"]
在 angular.json 文件上"preserveSymlinks": true
。在本地链接包之前,应用程序运行良好。我在这里错过了什么吗?任何帮助,将不胜感激。
typescript - 使用 yarn link 消耗具有 peerDependencies 的本地 npm 包时出现问题
在尝试使用styled-components
.
出于本示例的目的,假设我们有两个存储库,app
并且将由.core
core
app
目前,core
使用 TypeScript 编写并使用tsc
.
为了快速迭代,我尝试使用yarn link
to 链接core
到app
.
这可以很好地进行app
查找core
...我面临的问题是,当编译的 TypeScript 代码core
尝试需要一个包时,例如styled-components
,它试图在node_modules
of core
( not of app
) 中找到这个包。由于我styled-components
同时拥有 peerDependency 和 devDependency 它能够在core
's中找到它node_modules
,但这不是我想要发生的。我希望它使用styled-components
of app
。
yarn link
我尝试过的一种替代方法是添加core
to app
via的依赖项file:/path
。这似乎按预期工作,但引入了新问题。我怎样才能让我的开发机器的路径存在于package.json
本地开发中(而不是不断地来回切换)?此外,似乎任何更新都core
需要从 中删除包app
,并在重新添加之前清除 yarn 的缓存。
有没有更简单的方法可以使这种情况起作用?我刚刚开始将 Rollup 或 Webpack 视为一种解决方案,但不确定这是否是正确的方向。
webpack - 收到'错误:无法解决' 尝试在本地使用自定义构建的模块时
我正在尝试导入我在本地创建并链接/安装到另一个通过 webpack 构建和运行的模块的模块。
我使用了多种方法将自定义模块集成到其他模块中:
npm link
自定义模块创建一个符号链接,该链接出现在node_modules
另一个模块的目录中npm install <local_absolute_path>
安装它的自定义模块- 使用
wml
(https://github.com/wix/wml)将自定义模块中更改的文件复制到node_modules
- 将自定义模块发布到
npm
然后安装到另一个模块中
所有这些方法仍然导致 webpack 和 Flow 显示Cannot resolve
错误
NPM 版本:6.9.1-next.0
节点版本:8.8.1
这是package.json
自定义模块的文件:
这是webpack.common.js
尝试导入自定义模块的其他模块的文件:
这是我的.flowconfig
我经常收到的两个错误是:
我相信来自 webpack
来自Flow
我假设问题源于自定义模块设置本身......知道它可能有什么问题吗?
webpack - Babel 无法使用本地自定义模块中的 Flow 解析文件。失败并出现以下错误:`Module build failed...SyntaxError: Unexpected Token`
所以我正在创建一个 web 应用程序,我们将调用WebApp
它,它是一个使用来自自定义 React 模块的组件的 React 模块,我们将调用CustomModule
它,它也位于我的本地计算机上。我一直在尝试从CustomModule
in导入某些组件,WebApp
并且在运行时遇到了以下webpack-dev-server -d
错误WebApp
:
两个模块都使用Flow
,babel
和webpack
. 我已经在每个模块中相应地设置了package.json
、webpack.config.js
、.flowconfig
和文件。.babelrc
然后我象征性地链接CustomModule
到WebApp
using npm link
。我构建CustomModule
usingwebpack
然后尝试构建WebApp
其中包含导入语句以使用来自CustomModule
.
版本
WebApp webpack.config.js
WebApp .flowconfig
自定义模块 webpack.config.js
自定义模块 .flowconfig
两个模块使用相同的 .babelrc
我希望 的结果webpack-dev-server
不会产生错误Module build failed
,而不是在 babel 解析期间抛出的错误。
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 文件放在别的地方吗?(我想把它放在图书馆里)
android - 如何手动链接 npm 包'react native reanimated'
谁能告诉我如何手动链接
react-native-reanimated
因为自动 cli 链接不起作用并且崩溃反应原生应用程序
node.js - npm 链接本地库需要 node_modules 而 git 链接库(相同)不需要
抱歉标题不好(真的不知道我可以给这个问题提供什么其他标题)。
长话短说,作为第一次反应组件库开发人员。我正在使用webpack 4将我的幻想反应组件库转换为模块。
一切都很顺利,直到我开始使用npm-link来加快我的本地开发速度。
所以主要问题是虽然我已经指定如下
所以如果我通过 git 语法导入了模块
一切正常,最终捆绑的 js 中只有一个react副本。
但是如果我用 npm-link 绑定到项目文件夹,react 的第二个副本会添加最终绑定的 js。
谁能告诉我为什么?
谢谢
vue.js - 无法通过 npm 链接使用 Vue 组件库
我正在同时构建一个 Vue 应用程序和一个 Vue 组件库。所以,我想用 npm 链接设置库,这样我就不必继续发布我的库包并在我的主应用程序中重新安装它。
我的包裹将被调用@company/vue
。我可以将它发布到 npm 并在我的 Vue 应用程序中安装/使用它,如下所示:
这很好用。我可以访问我的 .vue 文件中的组件等等。
但是,如果我按照标准步骤链接我的库:
- cd 路径/到/库
- npm 链接
- cd 路径/到/应用程序
- npm 链接@company/vue
启动开发模式后,我收到以下警告:
当然,页面中的任何内容都不会加载。
我不得不想象我可能把它捆绑错了?
我的构建脚本如下所示:
还有它所指的我的 index.js:
这只是我见过的大多数图书馆这样做的标准方式。再说一次,如果我从 npm 中拉出包,它工作正常。
这是与我的 package.json 中的捆绑相关的内容:
最后,我的组件库的 babel 配置:
angular - 如何在本地开发相互依赖的 Angular 7 库?(npm 链接问题)
我有两个角度库 NPM 包:
- A有基本组成部分
- A-BC具有基于A中的组件构建的组件,并具有与BC库集成的附加功能
A-BC
导入中的A
一些组件import { MyThing } from 'A';
A-BC
的 package.json 是:
我尝试的开发步骤是:
npm link --only=production
在(的内置版本)A
npm link --only=production
在(的内置版本)A-BC
- 在
my-app
,运行npm link A
- 在
my-app
,运行npm link A-BC
- 跑
my-app
找不到安装在任何地方时编译my-app
失败。它们都以符号链接文件夹的形式正确列在彼此旁边。我已经在and中启用了这个,但这没有帮助。A-BC
A
node_modules
preserveSymlinks
tsconfig.json
angular.json
A
可能是 的直接依赖项A-BC
,但是:
- 两者都有一个调用
A
,该调用对于安装它的应用程序正常运行所需的包。我不知道如何将参数动态地从A-BC
forRoot()
forRoot()
A-BC
forRoot()
A
forRoot()
my-app
需要使用来自A
AND 的组件的组件A-BC
。- 如果
A
是直接依赖项,我不知道如何在A-BC
本地进行开发——这可能涉及同时更改A-BC
和偶尔更改A
.
目前我的创可贴解决方案是:
- 发布
A
为测试版 A-BC
在和中安装测试版my-app
- 链接
A-BC
到my-app
通过npm link
A
如果需要进行更改,则发布新的测试版,my-app
然后A-BC
反复安装
通过 NPM 对本地文件的支持进行安装可能有另一种工作流程A
,但我不确定。
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 inmyLib
和devDependencies inworkspace/
哦,当然我已经看过这里了: