当前位置: 首页 > 知识库问答 >
问题:

如何将本地模块指定为npm包依赖项

崔涵亮
2023-03-14

我有一个应用程序,它对第三方模块(例如,'express')有一组通常的依赖关系,这些依赖关系在package.json文件的依赖关系下指定。例如。

"express"     : "3.1.1"

我希望模块化地构造自己的代码,并让package.json安装一组本地(即我当前所在的文件系统)模块。我知道可以通过运行以下操作来安装本地模块:

npm install path/to/mymodule

但是,我不知道如何通过package.json依赖项结构实现这一点。在该命令中使用--save选项只是将“mymodule”:“0.0.1”放入my package.json(不引用文件路径位置)。如果我然后从node_modules中删除已安装的版本,并尝试从package.json中重新安装,它会失败(因为它在中央注册表中查找“mymodule”,而不在本地查找)。

我确信这是告诉“dependencies”:{}结构的一种方式,我希望它从文件系统路径安装,但不知道如何安装。

共有1个答案

阎劲
2023-03-14
npm install --save ../path/to/mymodule

为此,必须将mymodule配置为具有自己的package.json的模块。请参见创建NodeJS模块。

从npm 2.0开始,本地依赖关系被本地支持。参见DaniloPopeye对类似问题的回答。我在这里复制了他的回答,因为这个问题在网络搜索结果中排名很高。

这个特性是在NPM的2.0.0版本中实现的。例如:

{
  "name": "baz",
  "dependencies": {
    "bar": "file:../foo/bar"
  }
}
../foo/bar
~/foo/bar
./foo/bar
/foo/bar

有两种方法可以使用

>

  • 更新mymodule的版本,然后使用npm update:正如您在上面看到的,package.json“dependencies”条目不像您在普通依赖项中看到的那样包含版本说明符。相反,对于本地依赖关系,NPM Update只是尝试确保安装了最新版本,这是由MyModulepackage.json确定的。参见ChrisKelly对这个具体问题的回答。

    使用npm install重新安装。这将安装mymodule源路径中的任何内容,即使它较旧,或者签出了备用分支,也是如此。

  •  类似资料:
    • 问题内容: 我有一个应用程序,该应用程序具有package.json文件中依赖项下指定的第三方模块(例如“ express”)的通常依赖项。例如 我想模块化地构建自己的代码,并通过package.json安装一组本地(即我当前所在的文件系统上的)模块。我知道我可以通过运行以下命令安装本地模块: 但是,我不知道如何通过package.json依赖项结构来实现这一点。在此命令中使用该选项只是将其放入我

    • 配置 jar 包需要在 compile 中添加响应依赖。下面的代码添加了 libs 文件夹中的所有 jar 作为依赖。 dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) } android { ... } 注意:dependencies DSL 标签是标准 Gradle API 中的一部分,所以它不属于

    • npm是否有安装依赖作为对等依赖的选项,如yarn选项,而不是手动添加它例如: 感谢@Broncha,更新问题的更多说明 问题是如何向项目添加对等依赖。那就是 将依赖项添加到package.json中的“dependencies”中, 如何安装将其添加到package.json?中的“对等依赖”的依赖项

    • 问题内容: 可以说我正在开发MyApp应用程序,我想为其构建MyModule NPM模块。现在,我可以想到两种开发方法: 进行更改->保存-> npm在MyApp中安装/ path / to / module 与1相同,除了运行npm install / path / to / module,然后直接在node_modules中对其进行编辑,然后复制所做的更改。 我想要一个更简单的工作流程。我可以

    • 我正在通过编程Clojure书学习Clojure,但很早就想从书中找到一个例子。 我从书中下载了代码示例;目录结构为 其中有一堆.clj文件,包括一个名为induction.clj的文件。 我试图运行的代码以 ...但我不能让它发挥作用。 我试着添加一个checkouts目录,并将其中的examples目录符号化。我试过用manifest.txt创建一个.jar文件,给出了1.0.0版本....

    • 问题内容: 在“撰写设置脚本(http://docs.python.org/2/distutils/setupscript.html)”的python文档中提到可以在本节中指定依赖项 > 2.4。发行与包装之间的关系 […]可以使用distutils.core.setup()函数的关键字参数来指定这些关系。 可以通过向setup()提供require关键字参数来指定对其他Python模块和软件包的