Сжатие node_modules для развертывания на стороне клиента
реализовать клиентское приложение на JavaScript с помощью Node.js. Поскольку я буду развертывать программное обеспечение на многих машинах, я хотел бы минимизировать размер распространяемого пакета. В частности, я хотел бы удалить все ненужные файлы из node_modules.
Для начала это означает дедупликацию и сокращение дерева зависимостей, котороеnpm
могу сделать для меня. Но я'также хотел бы удалить всеpackage.json
файлы и (особенно) любые другие файлы, которые не нужны для развертывания. Во многих пакетах, которые я использую, есть тонны тестов, несколько версий файлов (минимизированные, просматриваемые и т. Д.) И тому подобное. Мне просто нужны файлы JavaScript, которые на самом деле используются запущенным приложением. В противном случае ябудет распространять несколько 100 КБ файлов, которые нет на самом деле используется.
Я знаю оnode-browserify
но мое приложение будет работать в среде CommonJS, а не в браузере, поэтому яЯ хотел бы хранить модули отдельно и загружать их с помощью .I 'require
я думаю о написании плагина Grunt, который ходит по дереву зависимостей, используяrequired
извлекает файлы JavaScript, необходимые во время выполнения, и записывает их в древовидную структуру, чтобы их можно было загрузить с помощьюrequire
(просто загрузка модулей напрямую без необходимостиpackage.json
). Но я'Я хотел бы убедиться, что никто не сделал это для меня, прежде чем я займусь этим.