npm链接,没有链接devDependencies

Ale*_*lls 6 node.js npm npm-link

看来,当我运行时npm link,它将全局安装项目,似乎用它安装devDependencies.

有没有办法在没有devDependencies的情况下运行npm链接,也许带有--only=production标志?

loc*_*ton 14

npm@4.x或更低

当你运行时npm link,other_module你将获得符号链接和devDependencies符号链接.

--production标志不会更改任何内容,仍会为整个目录创建符号链接

npm@5.1.0

他们修好了!

如果删除node_modules然后执行npm link --only=production,它会在符号链接之前运行安装,因此确实排除了devDependencies文件夹.

  • 有没有关于此的文件?[npm link docu](https://docs.npmjs.com/cli/link.html)似乎效率不高...... (5认同)
  • 这在 6.0+ 版本中仍然有效吗?我尝试在我的包中执行 `npm link --only=product` ,但是当查看全局位置时(`/Users/me/.nvm/versions/node/v12.18.3/lib/node_modules/my-package` ),我在那里看到一个“node_modules”文件夹,其中包含我的开发依赖项,例如“react”。 (3认同)

Mar*_*idt 5

这是目前无法实现的npm link。问题是,如果您只在该依赖项中安装 prod 依赖项,则可以链接它,但您不能再在该依赖项上进行开发(因为缺少 devDependencies)。反之亦然:如果你安装了 devDependencies,你就不能再链接了。

解决方案:https://github.com/marcj/npm-local-development 中名为 npm-local-development 的包

它基本上与 相同npm link,但通过设置文件观察器并在后台自动同步文件更改来解决 devDependency 限制,排除所有 devDependencies/peerDependencies。

  1. 你安装 npm-local-development: npm i -g npm-local-development
  2. 您创建.links.json在根包中调用的文件。
  3. 您将每个包名称及其本地相对文件夹路径写入其中

    { "@shared/core": "../../my-library-repo/packages/core" }

  4. 打开控制台并npm-local-development在该根包中运行。让它在后台运行。

免责声明:我是这个免费开源项目的作者。