【问题标题】:Install npm local module directory without symlinks?安装没有符号链接的 npm 本地模块目录?
【发布时间】:2018-10-05 05:34:02
【问题描述】:

所以这是简单的文件布局。

/my-module
..package.json
/my-app
..package.json

我希望 my-app 在本地安装 my-module。我试过这个:

"dependencies": {
    "myModule": "../my-module"
}

-no-bin-links 选项不起作用,它只会影响node_modules/bin 它创建一个符号链接并且不安装 node_modules。我想做两件事之一,不使用符号链接并安装 node_modules,或者使用符号链接并安装模块。不使用符号链接时,最好与 peerDependencies 结合使用。

【问题讨论】:

  • 你试过用lerna吗? github.com/lerna/lerna
  • 不,这是我第一次听说它。它在后台使用 npm 吗?
  • 你试过"myModule": "file:../my-module"吗?
  • @jemiloii 是的,它的唯一目的是解决在单个 repo 中包含多个 npm 包的许多问题。它可以帮助您进行版本管理、通用依赖项和本地可解决的依赖项(这似乎是您最感兴趣的)

标签: javascript node.js npm installation package.json


【解决方案1】:

如果文件夹包含由package.json 文件描述的程序,您可以安装npm install <folder>npm install --save/--save-dev <folder> 以更新依赖的package.json

【讨论】:

  • 这有帮助。我已将其添加到我的预安装脚本中
  • 这仍然会创建一个符号链接,而不是将包复制到node-modules
【解决方案2】:

npm current 无法直接从没有符号链接的文件夹安装。

您可以通过从带有npm pack 的文件夹中生成一个tarball 来解决这个问题,从您要安装的软件包的目录中运行,然后是npm install <tarball>,其中<tarball> 是您的tarball 的路径包。

【讨论】:

  • 这是我发现必须使用 npm 版本 > 3 才能从本地目录安装的方法。
  • 我使用了这种方法,但是我将 tgz 符号链接到我的子文件夹,并且由于它仍在安装 tgz,所以仍然复制包代码 8-)
  • 谢谢!我必须使用它来测试我的 libs 模块的本地版本。它基于相对路径以编程方式加载需求,并通过相对路径引用模块,并使用符号链接安装它,并且路径都搞砸了。多亏了你,我能够测试项目的当前版本并使用预期的文件夹结构安装它!
  • 如果我能给你100分我会的。这是最终解决了大约 12 小时的挫折的帖子!谢谢!!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-31
  • 2014-09-22
  • 1970-01-01
  • 2011-12-26
  • 2014-11-12
  • 2015-02-07
相关资源
最近更新 更多