@hh.ru/js-module-dependency-extrator

Плагин парсит js файлы, и извлекает зависимости amd модулей, по call expression "define"

Usage no npm install needed!

<script type="module">
  import hhRuJsModuleDependencyExtrator from 'https://cdn.skypack.dev/@hh.ru/js-module-dependency-extrator';
</script>

README

js-module-dependency-extrator

Описание

Плагин парсит js файлы, и извлекает зависимости amd модулей, по call expression "define"

extractModuleDependenciesFromGlob([
    файлы для парсинга
], {
    saveFileName: - имя файла
    saveFilePath: - путь, куда сохранять список зависимостей
    saveFileExt: - расширение файла
    modulesPath: - путь до корня модулей
    template: Функция которая возвращает шаблон контента(string), в качестве аргумента передается массив зависимостей, если не передать контентом сохраненного файла будет JSON представление.',
});

Зачем

Нужно правильно формировать чанки, потому что webpack-у необходим список полных зависимостей. А анонимный чанк содержит только рутовые компоненты. Иначе нам нужно это делать в ручную.

Установка

$ yarn install js-module-dependency-extrator

Запуск тестов

$ yarn test

Пример использования в Node окружении

const extractStaticValueFromGlob = require('babel-parser-parse-static-trl');

extractStaticValueFromGlob(['/Component/*.jsx'], {
    staticPropName: 'customProps',
    saveFileName: 'Component',
    saveFilePath: 'customPath',
    saveFileExt: 'js',
});