美文网首页
npm link 和 peerDependencies 的问题

npm link 和 peerDependencies 的问题

作者: jacobbubu | 来源:发表于2016-08-10 13:26 被阅读1891次

我的项目需要调试某个框架的 plug-in,举例来说, graph-compose-connectiongraph-compose 框架的一个 plug-in,因此我在我的项目中(例如: my-project)对 graph-compose-connection 使用了 npm link,这样我就可以通过随时修改 graph-compose-connection 的代码来调试。

graph-compose-connection 项目中 peerDependencies 了其宿主 graph-compose,这是很常见的做法,可以让 plug-in 和宿主的依赖不那么严苛。但是这样问题就来了,当执行 my-project 下的代码时,总是会报出找不到 graph-compose 的异常,尽管在 my-project 中已经依赖并安装了 graph-compose

这个问题的原因在于,Node.JS 模块系统在搜寻依赖模块时,是从当前模块的 node_modules 开始搜索,没找到就去查找父目录的 node_modules,一路向上。但是对于 npm linkgraph-compose-connection,因为是符号链接过去的,其父目录并非是 my-project,于是就找不到了。

这个问题很早就出现过,然后修复了。但是在 Node.JS v6 又出现了(由于 require 算法的改变),后来经过讨论,通过增加一个命令行参数来解决这个问题: --preserve-symlinks。因此你需要这样执行:

node  --preserve-symlinks index.js
# or coffee
coffee --nodejs --preserve-symlinks index.coffee

详情参见: https://github.com/nodejs/node/pull/6537

相关文章

  • npm link 和 peerDependencies 的问题

    我的项目需要调试某个框架的 plug-in,举例来说, graph-compose-connection 是 gr...

  • peerdependency的作用

    探讨npm依赖管理之peerDependencies 引言 想必前端同学对npm的devDependencies和...

  • PeerDependencies

    引言 本文引用自博客地址,写得很清楚。推荐! npm2中dependencies与peerDependencies...

  • npm link

    场景 在本地开发模块的时候,可以npm link命令,将模块链接到对应的运行项目中去,方便地对模块进行调试和测试 ...

  • npm link

    在包里面执行npm link 则是把包放到全局 在根目录执行npm linki package-name ,则是把...

  • npm link

    npm 打包自己的组件库后,要修改组件库,怎么验证修改后的组件库被其他项目引用后达到了想要的效果? 这时可以使用n...

  • nodejs报错处理

    Issue One Link To Try npm cache verify or npm cache --for...

  • --legacy-peer-deps 作用

    在NPM v7中,现在默认安装peerDependencies。 在很多情况下,这会导致版本冲突,从而中断安装过程...

  • 快速解决NPM报错:peerDependencies WARNI

    问题背景 今天遇到一个问题:安装Webpack 3.x之后其它包提示peerDependencies WARNIN...

  • npm link 体验

    git clone https://github.com/chriso/validator.js.git执行 np...

网友评论

      本文标题:npm link 和 peerDependencies 的问题

      本文链接:https://www.haomeiwen.com/subject/tkcjsttx.html