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

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

当前回答

这对我很有用。

将以下内容放入包中。json文件

"scripts": {
    "preinstall": "npm install ../my-own-module/"
}

其他回答

在2021年,你需要这样使用它:

npm i my-pkg@file:./path-to-my-pkg.js

# To remove it later
npm un my-pkg

如果是完整的package.json,则在最后使用.js。

使用

const myPkg = require('my-pkg')

这很有魅力!

我想使用一组用TypeScript编写的本地依赖,这里的答案都不适合我。NPM安装会直接拒绝构建依赖项。

我不得不使用tsconfig。Json将包添加到我的项目中,而不将它们标记为依赖项。我的用例更加复杂,因为有些依赖项是相互依赖的,我希望所有依赖项都来自本地文件夹。

以下是我的解决方案:

// tsconfig.json
{
  "compilerOptions": {
    "baseUrl": "./",
    "paths": {
      "@tiptap/*": [
        "tiptap/packages/*/src"
      ]
    }
  }
}

在上面的例子中,我有一个名为tiptap/的本地项目子文件夹,在tiptap/packages/*中有许多包。“路径”选项将重写所有@tiptap/foo导入到。/tiptap/packages/foo/src,包括我自己的文件和tiptap/中的文件。

这不是一个很好的解决方案,但这是唯一对我有效的方法。

在2020年的这里,我正在用Windows 10操作系统工作

"dependencies": {
    "some-local-lib": "file:../../folderY/some-local-lib" 
    ...
}

然后进行npm安装。结果是在节点模块中创建文件夹的快捷方式。 这行不通。你需要一个硬链接-哪个窗口支持,但是 你必须在Windows中做一些额外的事情来创建一个硬符号链接。

因为我不是真的想要一个硬链接,我尝试使用一个url代替:

"dependencies": {
    "some-local-lib": "file:///D:\\folderX\\folderY\\some-local-lib.tar" 
     ....
}

这个很好用。 tar(你必须tar库的build / dist文件夹中的东西)被提取到node-modules中的一个真正的文件夹中,你可以像其他东西一样导入。 显然tar部分有点烦人,但由于'some-local-lib'是一个库(无论如何都要构建),我更喜欢这个解决方案,而不是创建一个硬链接或安装一个本地npm。

这对我来说很有效:首先,确保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" : "*"
}

如果你想进一步自动化这个,因为你正在将你的模块检入版本控制,并且不想依赖于开发人员记住npm link,你可以将这个添加到你的包中。Json“脚本”部分:

"scripts": {
    "postinstall": "npm link ../somelocallib",
    "postupdate": "npm link ../somelocallib"
  }

这感觉很俗气,但似乎很“管用”。从这个npm问题中得到了提示: https://github.com/npm/npm/issues/1558#issuecomment-12444454