【问题标题】:Package.json: dependency in a local directory?Package.json:本地目录中的依赖项?
【发布时间】:2014-06-02 07:05:34
【问题描述】:

我正在开发一个 npm 包以及一个使用它的应用程序。我在这个包中做了大量的小改动,并希望能够在每次迭代后重新运行应用程序。该包在应用程序内的package.json 文件中列为依赖项。

目前,我的依赖项指向远程 git 存储库中的一个分支,但我想加快这个过程,而不必推动每个更改。是否可以将依赖项列为本地文件系统中的目录?

【问题讨论】:

标签: javascript node.js npm


【解决方案1】:

尝试在本地目录中使用npm link。应该将全局安装的模块链接到本地​​副本。

【讨论】:

  • 澄清一下,您将在依赖项的项目文件夹中使用npm link 的组合,然后在使用项目的文件夹中使用npm link [dependency],其中 [dependency] 是项目在包中的名称。 json
【解决方案2】:

据我所知,您不能使用 package.json。假设您的模块在 /home/username/my_module 中,您可以这样做:

npm install /home/username/my_module

【讨论】:

    【解决方案3】:

    事实证明,实现这一点的最简单方法是将包目录直接链接到node_modules

    cd node_modules
    ln -is /path/to/package/directory packagename
    

    【讨论】:

    • npm 链接是正确的方法。查看@sent1nel 的回答。
    • 我仍然相信这是最好的方法,因为它不涉及其他工具,发生的事情很清楚,我确信更改不会泄漏到其他项目。我看不出投反对票的理由。
    • 它可能在做同样的事情,但npm link 故意隐藏了实现。任何开发 Node.js 的人都已经拥有 npm,如果实现更改 npm linknpm unlink 仍然可以工作。
    • npm 链接是否允许您将相同的模块链接到同一台机器上不同项目中的不同本地目录?它看起来不像,所以这肯定有它的优点。
    • 这不是要走的路。 node_modules 应该是 package.json 中指定的依赖项的具体化。例如npm ci 将消除此类符号链接,您必须重新进行操作。
    猜你喜欢
    • 2013-01-01
    • 1970-01-01
    • 2014-09-10
    • 1970-01-01
    • 2020-10-09
    • 1970-01-01
    相关资源
    最近更新 更多