10

看来,当我运行时npm link,它将全局安装该项目,并且似乎与它一起安装 devDependencies

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

4

3 回答 3

19

npm@4.x或更低

当您运行npm link时,other_module您将获得依赖项和 devDependencies 符号链接。

--production标志不会改变任何东西,仍然会创建一个指向整个目录的符号链接

npm@5.1.0

他们修好了!

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

于 2017-07-25T08:29:03.467 回答
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在该根包中运行。让它在后台运行。

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

于 2019-03-02T15:37:17.603 回答
0

然后我使用的解决方法是npm pack指向示例中的打包文件

于 2021-04-20T14:19:35.657 回答