我想这样做,所以npm install也会安装这个包。Json的../somelocallib或者更重要的是它的依赖项。

"dependencies": {
    "express": "*",
    "../somelocallib": "*"
}

当前回答

这对我来说很有效:首先,确保npm目录有正确的用户

sudo chown -R myuser ~/.npm
sudo chown -R myuser /usr/local/lib/node_modules

那你就在你的包裹里。Json链接目录

"scripts": {
 "preinstall": "npm ln mylib ../../path/to/mylib"
}, 
"dependencies": {
  "mylib" : "*"
}

其他回答

用纱线可以这样做

纱线添加文件:../somelocallib

使用工作空间

使用该文件的缺点:../path/to/your-library是你必须安装NPM或使用NPM link,以使更改在导入你的包的包中生效。

如果你使用pnpm:一个更好的解决方案是使用workspace: protocol: workspace:../path/to/your-library。它会将目录符号链接到您的node_modules目录,而不是复制它,因此源上的任何更改都会立即生效。

例如:

  ...
  "dependencies": {
    ...
    "my-package": "workspace:../../dist"
  },

注意:此解决方案打算在工作空间中使用,因此可能需要创建pnpm-workspace。Yaml(甚至是一个空文件)文件在您的项目的根。

NPM >= 2.0.0

该特性在npm 2.0.0版本中实现。本地路径可以使用npm install -S或npm install——save保存,使用以下任何一种形式:

../foo/bar
~/foo/bar
./foo/bar
/foo/bar

示例package.json:

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

npm ls:

app@0.0.1 /private/tmp/app
└── somelocallib@0.0.1 -> /private/tmp/somelocallib

NPM < 2.0.0

在包中放入somelocallib作为依赖项。正常的Json:

"dependencies": {
  "somelocallib": "0.0.x"
}

然后运行npm link ../somelocallib和NPM会将你正在使用的版本作为符号链接安装。

参考:链接(1)

我知道npm install ../ somelocallib作品。

然而,我不知道你在问题中显示的语法是否可以从package.json中工作…

不幸的是,doc似乎只提到URL作为依赖项。

尝试file:///…/…tar.gz,指向压缩的本地库…告诉我们它是否有效。

这是如何添加本地依赖项的:

npm安装文件:src/assets/js/FILE_NAME

把它添加到包中。json来自NPM:

保存文件:src/assets/js/FILE_NAME

直接添加到包。Json是这样的:

....
  "angular2-autosize": "1.0.1",
  "angular2-text-mask": "8.0.2", 
  "animate.css": "3.5.2",
  "LIBRARY_NAME": "file:src/assets/js/FILE_NAME"
....