猿问

如何将本地模块指定为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": {}结构我希望从文件系统路径安装它的方法,但不知道如何。


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


湖上湖
浏览 3919回答 3
3回答

呼唤远方

从NPM 2.0.0开始,本机支持导入本地依赖项。danilopopeye在回答类似问题时记录了这一点。我在这里复制了他的回复,以帮助任何需要找到正确答案的人,因为这个问题在Google的搜索结果中排名很高。此功能是在npm的2.0.0版本中实现的。例如:{  "name": "baz",  "dependencies": {    "bar": "file:../foo/bar"  }}以下任何路径也有效:../foo/bar~/foo/bar./foo/bar/foo/bar

慕沐林林

我最终找不到一个简洁的方法,所以我去创建一个名为的目录local_modules,然后在脚本 - > preinstall中将这个bashscript添加到package.json中#!/bin/shfor i in $(find ./local_modules -type d -maxdepth 1) ; do    packageJson="${i}/package.json"    if [ -f "${packageJson}" ]; then        echo "installing ${i}..."        npm install "${i}"    fidone
随时随地看视频慕课网APP

相关分类

Node.js
我要回答