- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 npm peerDependencies
但似乎没有任何效果像宣传的那样。我错过了什么?
设置是,我有两个模块,mod
和 plugin
,它们都依赖于来自 npm 的外部模块。 mod
声明对 plugin
和外部模块的硬依赖,插件声明对等依赖,以便访问父模块使用的版本。
文件看起来像这样:
~/plugin/package.json:
{
"name": "plugin",
"version": "1.0.0",
"main": "index.js",
"peerDependencies": {
"pad-right": "^0.2.2"
}
}
~/plugin/index.js
var peerDependency = require('pad-right')
module.exports = 'this is a plugin'
~/mod/package.json:
{
"name": "mod",
"version": "1.0.0",
"main": "index.js",
"dependencies": {
"pad-right": "^0.2.2",
"plugin": "../plugin"
}
}
~/mod/index.js:
var hardDependency = require('pad-right')
var plugin = require('plugin')
据我从文档和示例中了解到,我认为这应该是使用对等依赖项的标准方法,并且在任一目录中运行 npm install
都不会给出任何错误或警告。
然而,当我在 mod
文件夹中运行 webpack 时,我得到如下错误:
ERROR in ../plugin/index.js
Module not found: Error: Can't resolve 'pad-right' in '~/plugin'
@ ../plugin/index.js 1:21-41
@ ./index.js
这里出了什么问题,webpack 不应该使用来自父 mod
模块的对等依赖来解析 plugin
中的 require 语句吗?
最佳答案
啊,看起来这是一个边缘案例,它只影响通过文件系统在本地相互引用的模块。
解决方案显然是添加如下内容:
resolve: {
alias: {
'pad-right': path.resolve('node_modules', 'pad-right'),
},
},
到你的 webpack 配置。 (或者尝试 resolve.symlinks: false
,它解决了我发布的最小重现代码中的问题,但没有解决我实际项目中的问题)。
关于javascript - 为什么不能导入或要求 peerDependency,即使它存在于父模块中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57231161/
我已经创建了一个 Phaser 插件,但我不确定如何为它正确定义 peerDependencies。问题是移相器最近被复制并移动到新的存储库“phaser-ce”。该插件依赖于“phaser@2.x”
我正在尝试使用 npm peerDependencies 但似乎没有任何效果像宣传的那样。我错过了什么? 设置是,我有两个模块,mod 和 plugin,它们都依赖于来自 npm 的外部模块。 mod
我正在尝试使用 npm peerDependencies 但似乎没有任何效果像宣传的那样。我错过了什么? 设置是,我有两个模块,mod 和 plugin,它们都依赖于来自 npm 的外部模块。 mod
我在 stackoverflow 上看到过关于 npm peerDependencies 警告的类似问题——但没有一个解决 的最佳实践。实际安装依赖项。即,我们现在应该将它们与我们的 dependen
我正在构建一个库并尝试了解如何在peerDependency下安装/指定依赖项。 The npm docs don't talk about this under the command npm in
我是 npm 世界的新手,所以这可能很简单。问题如下: 我有一个安装了 react v.15.2.0 的项目,我需要安装一个包,例如 react 打字员 - https://github.com/js
设置: 打包模型 跨多个应用使用的常见 Mongoose 模型 peerDependencies:“ Mongoose ” 打包应用 依赖项:“ Mongoose ”、“模型” 通过app> npm
当我在我当前的 React 项目上运行 npm i 时,我收到以下关于 React peerDependency 的警告: npm WARN react-tap-event-plugin@3.0.3
我正在编写一个 React 组件库,不想捆绑 React,所以我将库添加到 peerDependencies 而不是 dependencies。 另外,为了防止那些关于缺少 peerDependenc
我正在编写一个 React 组件库,不想捆绑 React,所以我将库添加到 peerDependencies 而不是 dependencies。 另外,为了防止那些关于缺少 peerDependenc
我使用 create-react-app 在 React 中创建了一个 npm 包。由于假定 react 和 react-dom 位于宿主项目中,因此我在我的 package.json 中将它们列为
我有我的自定义库,它是通过 npm 发布的。它声明 peerDependency "lodash": "4.15.*" 据我了解,这意味着无论谁想要使用我的库,都应该提供指定版本的 lodash。所以
所以 NPM 3 已经删除了对等依赖项的自动解析,这很好,但是在开发插件/库以供其他应用程序使用的情况下,如果我让底层库使用 peerDependencies这是正确的概念,这意味着如果有人想在该库上
我刚刚将 ember 更新到 2.4.2: % ember -v version: 2.4.2 node: 5.8.0 os: darwin x64 当我输入:ember init 重新运行蓝图时,如
在我尝试获取所需的库时,npm install 一直运行良好大约一年,现在当我移动到新服务器时,它会出现 PeerDependency 错误。我有点困惑,因为我无法弄清楚代码被破坏的原因,是否有人遇到
在此 package.json 上运行 npm install 时 { "author": ", Inc.", "name": "-angular2-template", "version": "0.
我刚开始了解 peerDependencies,并且我阅读了以下引用资料以寻求如何测试 npm 模块在其 package.json 中包含 peerDependencies: Peer Depende
问题 在 Webpack 中导出 bundle 时,如何排除 3rd-party 模块的 peerDependency? (不是第三方模块本身) 背景 我想在 angular-material 框架之
是否可以将 Material UI 作为 peerDependency 但将其类型保留为 DevDependency? 我正在使用 React + Typescript 构建组件库,组件基于 Mate
尝试使用 styled-components 开发 React 组件库时,我遇到了以下问题. 为了本示例的目的,假设我们有两个存储库,app和 core那core将被 app 消耗. 目前,core用
我是一名优秀的程序员,十分优秀!