Javascript лучше импортировать хук без навигации по соответствующим папкам

1

то, что беспокоит меня при написании тестов в моей структуре папок, заключается в следующем:

//App
meteor/imports/api/tasks.js

//test
meteor/test/imports/api/tasks.test.js

Итак, теперь, когда я импортирую что-то из tasks.js, я иду как import { task } from '../../../imports/api/tasks.js' и моя структура папок намного больше, чем эта.

Есть ли лучшее решение?

Я думал об крюке импорта, может быть, в корневом каталоге тестов, поэтому я могу импортировать все вещи оттуда, и когда я нахожусь в тесте, я могу импортировать из крюка импорта и не нужно делать все ../../../../ навигация.

  • 1
    Используйте корень, то есть посчитайте путь от корня и поместите / перед путем.
  • 0
    root = root моего метеорного проекта?
Теги:
ecmascript-6
meteor

2 ответа

2
Лучший ответ

Если вы используете babel, вы можете добавить babel-plugin-module-resolver в свою конфигурацию babel.

Плагин Babel для добавления нового распознавателя для ваших модулей при компиляции вашего кода с помощью Babel. Этот плагин позволяет вам добавлять новые "корневые" каталоги, содержащие ваши модули. Он также позволяет настроить пользовательский псевдоним для каталогов, определенных файлов или даже других модулей npm.

Модуль распознавателя может столкнуться с обработкой модуля webpack2, поэтому вы хотите ограничить его только тестами:

Пример.babelrc:

  "env": {
    "test": {
      "plugins": [
        ["module-resolver", {
          "root": ["./meteor/imports"]
        }]
      ]
    }
  }
  • 0
    это работает с мокко? Я пробовал "root": ["./"] и "root": ["./src"] но все еще не "root": ["./src"] разрешить модули.
  • 0
    Я использую это с Babel и шутка. Просто чтобы проверить, попробуйте переместить плагины в корень .babelrc (без env / test).
Показать ещё 10 комментариев
2

использование

/imports/api/tasks.js

вместо

../../../imports/api/tasks.js

Начало/начинается с знака root.

  • 0
    это работает из теста мокко? (Я пытался, но это не сработало)
  • 0
    @Gobliins, можешь ли ты объяснить, как ты это попробовал и как у тебя не получилось?
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню