【问题标题】:test or prevent some relative path imports / requires测试或阻止某些相对路径导入/需要
【发布时间】:2017-06-23 11:23:42
【问题描述】:

我有一个这样的文件夹结构:

.
└── client                   
    ├── components           
    └── routes               
        ├── index.js         
        ├── Login            
        │   ├── index.js     
        │   ├── assets       
        │   ├── components   
        │   ├── container    
        │   └── modules
        └── UpdatePassword
            ├── index.js     
            ├── assets       
            ├── components   
            ├── container    
            └── modules      

我想看看是否有人将文件从UpdatePassword 文件夹导入Login 文件夹,反之亦然。

基本上,我遵循分形项目结构,我希望与UpdatePasswordLogin 路由相关的组件仅存在于它们各自的文件夹中。共享组件将存在于client/components 子目录中。为了维护这样的结构,我想编写一个在使用“不可接受的”importsrequire 时失败的测试。 IE。如果UpdatePassword imports 中的文件来自Login/components

有没有办法测试或检查导入是否来自特定文件夹?

【问题讨论】:

    标签: node.js ecmascript-6 require


    【解决方案1】:

    试试madge:我通常以madge --image /path-to-folder/dependencies.png routes 运行它(如果需要,还有exclude 选项)

    您将获得一个可视化图表,显示文件之间的依赖关系。

    【讨论】:

      【解决方案2】:

      我不知道如何使用本地方法。但是你可以包装“require”函数:

      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}`);
        }
      }
      

      【讨论】:

        猜你喜欢
        • 2018-03-26
        • 2010-09-21
        • 1970-01-01
        • 2015-02-23
        • 2012-12-03
        • 2012-04-21
        • 1970-01-01
        • 2012-10-07
        • 2018-03-31
        相关资源
        最近更新 更多