2017-02-06 3 views
0

У меня есть структура папок так:тестов или предотвратить некоторый импорт относительного пути/требует

. 
└── 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. То есть если файл находится в UpdatePasswordimports от Login/components.

Есть ли способ проверить или проверить, идет ли импорт из определенных папок?

ответ

0

Попробуйте madge: Я обычно запустить его как madge --image /path-to-folder/dependencies.png routes (Существуют также exclude вариант, если вам это нужно)

Вы получите визуальный график, который показывает вам зависимости между файлами.

0

Я не имею ни малейшего представления о родном способе сделать it.But вы можете обернуть «требует» функции:

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