npm 5安装文件夹而不使用符号链接

l-l*_*lin 37 npm

在发布我的节点库之前,我可以使用npm文档中写建议:

要测试本地安装,请进入其他文件夹,然后执行以下操作:

cd ../some-other-folder

npm install ../my-package

在npm的第5版之前,我没有问题,因为它产生了我所期望的,即一个包含我将要发布的输出的文件夹.

但是,使用npm 5,它现在为我的本地项目创建一个符号链接,如npm文档中所述:

npm安装:

将包作为当前项目中的符号链接安装在目录中.它的依赖项将在链接之前安装.如果位于项目的根目录中,则其依赖关系可能会像其他类型的依赖关系一样被提升到顶层node_modules.

如何使用"旧"方式安装本地项目?或者是否有新方法来检查我的库是否正确?

谢谢.

Pet*_*hev 27

使用npm pack+ npm install(按安装本地包的建议)

npm pack <path-to-local-package>
npm install <package-version.tgz>
Run Code Online (Sandbox Code Playgroud)

这将有效地将本地包复制到node_modules.请注意,这将仅打包生产相关文件(package.json 的files部分中列出的文件).因此,您可以将其安装在包自己的目录下的测试应用程序中.像这样的东西:

my-package
  package.json
  test
    test-app
      package.json
      node_modules
        my-package
Run Code Online (Sandbox Code Playgroud)

假设testdir不包含files在my-package/package.json中.

这与npm 5和旧版本的工作方式相同.

  • 有没有更好的办法?在我的设置中,我的所有包都在我的仓库中的同一级别.我通过在mainpackage目录中执行npm install --save ../otherpackage来指定依赖项.在将../otherpackage复制到mainpackage/node_modules/otherpackage之前,现在它在该位置创建一个指向../../ otherpackage的符号链接.我的问题是,当mainpackage/node_modules中存在符号链接时,它会导致带有ENOSPC错误的nodemon.必须使用pack创建包,然后npm安装tgz文件会导致自动部署出现问题. (7认同)