看来,当我运行时npm link
,它将全局安装该项目,并且似乎与它一起安装 devDependencies。
有没有办法在没有 devDependencies 的情况下运行 npm 链接,也许带有--only=production
标志?
在npm@4.x
或更低
当您运行npm link
时,other_module
您将获得依赖项和 devDependencies 符号链接。
该--production
标志不会改变任何东西,仍然会创建一个指向整个目录的符号链接
在npm@5.1.0
他们修好了!
如果您删除node_modules
然后执行npm link --only=production
,它会在符号链接之前运行安装,因此 devDependencies 文件夹确实被排除在外。
目前这在npm link
. 问题是,如果您仅在该依赖项中安装 prod 依赖项,则可以链接它,但您无法再基于该依赖项进行开发(因为缺少 devDependencies)。反之亦然:如果你安装了 devDependencies,你就不能再链接了。
解决方案: https://github.com/marcj/npm-local-development上的一个名为 npm-local-development 的包
它基本上做同样的事情npm link
,但通过设置文件观察器并在后台自动同步文件更改来解决 devDependency 限制,不包括所有 devDependencies/peerDependencies。
.links.json
在根包中调用的文件。您将每个包名称及其本地相对文件夹路径写入其中,如下所示
{ "@shared/core": "../../my-library-repo/packages/core" }
npm-local-development
在该根包中运行。让它在后台运行。免责声明:我是这个免费开源项目的作者。
然后我使用的解决方法是npm pack
指向示例中的打包文件