npm 在绝对路径中安装包(本地和 package.json)

Posted

技术标签:

【中文标题】npm 在绝对路径中安装包(本地和 package.json)【英文标题】:npm install package in absolute path (Locally and package.json) 【发布时间】:2018-06-05 11:06:05 【问题描述】:

首先,对于幼稚的问题以及如果这听起来重复,我们深表歉意。

我希望安装一个包,例如material-ui,作为./node_module/my-material-ui 等不同路径下的外部依赖项。问题是我似乎没有找到任何选项来告诉npm 这样做,除了--prefix 选项实际上没有帮助,因为它将包安装在./node_module/my-material-ui/node_modules/material-ui 下。事实上,这是有道理的,因为它为安装路径添加前缀。我四处寻找,但没有立即找到解决方案。

现在作为以下问题,您希望在package.json 中指定必须将包安装在何处,而不是单独(和在本地)使用npm install ... 安装上述软件包。换句话说,如何通过在package.json 内部指定来实现上述目标。

提前感谢您的帮助和建议!

【问题讨论】:

为什么需要将其安装为不同的名称/路径? 嗨,乔,我正在使用 material-uimaterial-ui-next。当使用来自material-ui-next 的组件时,内部逻辑调用material-ui 而不是material-ui-next。这意味着它不是从material-ui-next 中挑选代码,而是转到material-ui 并失败,因为它没有找到它正在寻找的东西。有意义吗? 可能相关? ***.com/questions/42258202/… 好一个乔!我想我已经通过了。为同一个项目安装两个版本的问题。我实际上在node_modules/material-ui 上安装了material-ui,在node_modues/material-ui-next 上安装了material-ui-next。看起来你提到的问题也在谈论相同的命名空间冲突。 【参考方案1】:

migration guide 涵盖了这种情况。

yarn add material-ui@latest
yarn add material-ui-next@npm:material-ui@next

然后

import FlatButton from 'material-ui/FlatButton'; // v0.x
import Button from 'material-ui-next/Button'; // v1.x

【讨论】:

嗨,马特,看起来 yarn 所做的事情与 npm 不同,因为在前者下我似乎不再有问题了。 我链接到的指南中提到过 - yarn 提供了别名功能。

以上是关于npm 在绝对路径中安装包(本地和 package.json)的主要内容,如果未能解决你的问题,请参考以下文章

liunx中安装包及其应用

npm package 装包匹配原则

在本地目录中安装包

无法在 Sublime text 2 中安装包控件

npm 3.x 和模块 package.json 中的本地路径

在 ubuntu 中安装包的冻结解决环境步骤