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