После обновления версии Meteor до версии 1.3.x NPM действительно пришел в игру. Но, как всегда, есть задняя сторона монеты: размер сборки. На meteor 1.2.x размер сборки ~ 50MB, ~ 7k файлов На meteor 1.3.x размер сборки ~ 190MB, ~ 27k файлов.Как удалить файлы npm из сборки meteor
Двадцать семь тысяч файлов. Это довольно много. Не говоря уже о размере пути, превышающем 256 (проблема для пользователей Windows). Я вникаю в то, что метеор входит в сборку, и кажется, что все npm_modules здесь со всем, что нужно для создания некоторых модулей и их зависимостей.
Вопрос: как построить приложение meteor без ненужных файлов npm, оставив только те, которые фактически используются приложением во время выполнения?
Update: На метеора 1.4.1_3 если создать простой проект meteor create dummy-project
и пройти через все общие вещи, как npm meteor install
и meteor npm prune --production
и им сделать узелок из него с meteor build c:\dummy --directory
вы получите папку с теми же 7К файлов и почти 2k папок (кстати, он не будет запускать node main.js
из коробки, как вы могли бы ожидать). Если вы перебираете папки, вы можете найти встроенный компилятор babel, который занимает ~ 3,5 тыс. Файлов.
Зачем нужен компилятор babel внутри скомпилированного приложения?
Что вы подразумеваете под ненужными файлами npm? Если вы не используете пакет, удалите его. – jmugz3
Я имею в виду, что пакеты npm - это не только 1 (или некоторые) файлы js + 1 (или некоторые) html/css-файлы, но они содержат много файлов, необходимых для сборки этих зависимостей пакета и пакета внутри. I.e .: angular2-color-picker имеет размер 30 МБ с 2100 файлами внутри: есть еще один node_modules внутри с собственным угловым пакетом! – Ujin
Другой пример: d3js: пакет npm равен 1,78 МБ с 309 файлами - d3.min.js - это только один размер файла 150 КБ. – Ujin