资讯专栏INFORMATION COLUMN

如何查看一个 js, ts 文件模块的依赖树

hlcc / 2273人阅读

摘要:如何查看一个文件模块的依赖树最近接手一个别人的页面,代码很是凌乱与庞杂,当我在增加功能时,发现我添加的模块与原有的模块有冲突,但不知道那个原有的模块在什么位置,就得到处找。

如何查看一个 js, ts 文件模块的依赖树

最近接手一个别人的页面,代码很是凌乱与庞杂,当我在增加功能时,发现我添加的模块与原有的模块有冲突,但不知道那个原有的模块在什么位置,就得到处找。

但发现这种方式太笨拙了,网上也没有找到相应的工具,索性我就自己写了一个工具。

项目地址:sdep。

安装
npm install sdep -g
使用
sdep [options] 
常用命令行参数

-q, --query : 查找某个模块的依赖链(如:-q react

-r, --regular: 把 query 当作正则来匹配(如:-q "react|react-dom" -r

-i, --ignore: 不显示 node_modules 里的文件

使用的第三方库

commander.js

node-dependency-tree

例子 查看一个文件的依赖结构
sdep example/index.js
example/index.js
├ example/css/css.css
├ example/css/scss.scss
├ example/css/less.less
├ example/jsx.jsx
| ├ node_modules/react/index.js
| | ├ node_modules/react/cjs/react.production.min.js
| | | └ node_modules/object-assign/index.js
| | └ node_modules/react/cjs/react.development.js
| |   ├ node_modules/object-assign/index.js
| |   └ node_modules/prop-types/checkPropTypes.js
| |     └ node_modules/prop-types/lib/ReactPropTypesSecret.js
| ├ node_modules/react-dom/index.js
| | ├ node_modules/react-dom/cjs/react-dom.production.min.js
| | | ├ node_modules/react/index.js
| | | | ├ node_modules/react/cjs/react.production.min.js
| | | | | └ node_modules/object-assign/index.js
| | | | └ node_modules/react/cjs/react.development.js
| | | |   ├ node_modules/object-assign/index.js
| | | |   └ node_modules/prop-types/checkPropTypes.js
| | | |     └ node_modules/prop-types/lib/ReactPropTypesSecret.js
| | | ├ node_modules/object-assign/index.js
| | | └ node_modules/scheduler/index.js
| | |   ├ node_modules/scheduler/cjs/scheduler.production.min.js
| | |   └ node_modules/scheduler/cjs/scheduler.development.js
| | └ node_modules/react-dom/cjs/react-dom.development.js
| |   ├ node_modules/react/index.js
| |   | ├ node_modules/react/cjs/react.production.min.js
| |   | | └ node_modules/object-assign/index.js
| |   | └ node_modules/react/cjs/react.development.js
| |   |   ├ node_modules/object-assign/index.js
| |   |   └ node_modules/prop-types/checkPropTypes.js
| |   |     └ node_modules/prop-types/lib/ReactPropTypesSecret.js
| |   ├ node_modules/object-assign/index.js
| |   ├ node_modules/prop-types/checkPropTypes.js
| |   | └ node_modules/prop-types/lib/ReactPropTypesSecret.js
| |   ├ node_modules/scheduler/index.js
| |   | ├ node_modules/scheduler/cjs/scheduler.production.min.js
| |   | └ node_modules/scheduler/cjs/scheduler.development.js
| |   └ node_modules/scheduler/tracing.js
| |     ├ node_modules/scheduler/cjs/scheduler-tracing.production.min.js
| |     └ node_modules/scheduler/cjs/scheduler-tracing.development.js
| └ example/wel.jsx
|   └ node_modules/react/index.js
|     ├ node_modules/react/cjs/react.production.min.js
|     | └ node_modules/object-assign/index.js
|     └ node_modules/react/cjs/react.development.js
|       ├ node_modules/object-assign/index.js
|       └ node_modules/prop-types/checkPropTypes.js
|         └ node_modules/prop-types/lib/ReactPropTypesSecret.js
└ example/async/index.js
  └ example/async/index.css
查看一个文件包含 react 的依赖链
sdep example/index.js -q react
example/index.js
└ example/jsx.jsx
  └ node_modules/react/index.js
example/index.js
└ example/jsx.jsx
  └ node_modules/react-dom/index.js
example/index.js
└ example/jsx.jsx
  └ example/wel.jsx
    └ node_modules/react/index.js
查看一个文件包含 lessscss 的依赖链
sdep example/index.js -q "less|scss" -r
example/index.js
└ example/css/scss.scss
example/index.js
└ example/css/less.less
后续

更多博客,查看 https://github.com/senntyou/blogs

作者:深予之 (@senntyou)

版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/103114.html

相关文章

  • 使用 dpdm 定位 JavaScript/TypeScript 中循环依赖

    摘要:在写大型项目的时候一不小心就会踩到直接循环依赖的坑里面所谓直接循环依赖是指在模块工厂函数中对其它依赖于自己的模块的成员有直接调用的情况比如假设有两个模块和其中的内容如下的内容如下下面这一行导致了直接循环依赖这时执行会报的错误这是因为模块的工 在写大型项目的时候, 一不小心就会踩到直接循环依赖的坑里面, 所谓直接循环依赖, 是指在模块工厂函数中, 对其它依赖于自己的模块的成员有直接调用的...

    BLUE 评论0 收藏0
  • 前端框架工程化之路

    摘要:框架加冕时代年横空出世的前端框架的模块机制的模块机制相比老王老李的解决方案上增强了模块的约束性,和帮助开发者划分模块外,最重要的是解决了模块的运行时管理问题模块的初始化顺序问题和依赖的模块自动初始化问题。 前端框架工程化之路 人类的发展动力源于一个懒字,就如现在的大前端正是史前那群懒而聪明的切图仔进了软件工程的施工现场,怀揣着更少代码、更少沟通、更少错误、更少维护的梦想奔袭而来。从框架...

    whatsns 评论0 收藏0
  • 前端框架工程化之路

    摘要:框架加冕时代年横空出世的前端框架的模块机制的模块机制相比老王老李的解决方案上增强了模块的约束性,和帮助开发者划分模块外,最重要的是解决了模块的运行时管理问题模块的初始化顺序问题和依赖的模块自动初始化问题。 前端框架工程化之路 人类的发展动力源于一个懒字,就如现在的大前端正是史前那群懒而聪明的切图仔进了软件工程的施工现场,怀揣着更少代码、更少沟通、更少错误、更少维护的梦想奔袭而来。从框架...

    fnngj 评论0 收藏0

发表评论

0条评论

hlcc

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<