我有一个像这样的文件夹结构:
.
└── client
├── components
└── routes
├── index.js
├── Login
│ ├── index.js
│ ├── assets
│ ├── components
│ ├── container
│ └── modules
└── UpdatePassword
├── index.js
├── assets
├── components
├── container
└── modules
我想看看是否有人将文件从UpdatePassword
文件夹导入Login
文件夹,反之亦然。
基本上我正在遵循分形项目结构,我希望与UpdatePassword
或Login
路由相关的组件只存在于各自的文件夹中。共享组件将存在于client/components
子目录中。为了维护这样的结构,我想编写一个在使用“不可接受的”imports
或require
时失败的测试。即如果来自UpdatePassword
的{{1}} imports
中的文件。
有没有办法测试或检查导入是否来自特定文件夹?
答案 0 :(得分:0)
尝试 madge :我通常将其作为class A
class B extends A
class Container[+T](val content: T) {
val map : Map[T, _] = Map.empty
}
val c1: Container[A] = new Container[B](new B) // needs to compile (covariant)
运行(如果需要,还有一个madge --image /path-to-folder/dependencies.png routes
选项)
您将获得一个可视图表,显示文件之间的依赖关系。
答案 1 :(得分:0)
我不知道本地的做法。但是你可以包装"要求"功能:
function myRequire(fromPath, requiredPath) {
//code to judge whether or not can load requiredPath from fromPath
var can = ...
if(can) {
return require(requiredPath);
}
else {
throw new Error(`you can not load ${requiredPath} from ${fromPath}`);
}
}