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

新手上路,请多包涵

我有一个应用程序,它具有依赖关系下 package.json 文件中指定的第三方模块(例如“express”)的通常依赖项集。例如

"express"     : "3.1.1"

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

 npm install path/to/mymodule

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

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

还有其他人有这个问题吗?谢谢。

原文由 Sam Adams 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2k
2 个回答

npm install 现在支持这个

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

同步更新

由于 npm install <folder> 将目录中的包添加为当前项目中的符号链接,因此对本地包的任何更改都会自动同步。

原文由 Randy the Dev 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题