Skip to content

Fixes #568: Add a list of files to not include in the npm package;

Benjamin Bouvier requested to merge bnjbvr/kresus:slimmer-package into master

This reduces the size of the npm package from 4.0 to 3.3 MB (after compression; without compression it goes from 8.2 to 6.7 MB).

Here's the output of the npm pack command after the patch:

npm notice
npm notice 📦  kresus@0.14.0
npm notice === Tarball Contents ===
npm notice 4.0kB   package.json
npm notice 6.7kB   CodeOfConduct.md
npm notice 6.2kB   CONTRIBUTING.md
npm notice 1.1kB   LICENSE
npm notice 59.7kB  npm-shrinkwrap.json
npm notice 1.3kB   README.md
npm notice 4.8kB   bin/kresus.js
npm notice 477.5kB build/client/0.js
npm notice 7.3kB   build/client/1.js
npm notice 453.8kB build/client/4.js
npm notice 28.1kB  build/client/5.js
npm notice 8.0kB   build/client/6.js
npm notice 165.7kB build/client/674f50d287a8c48dc19ba404d20fe713.eot
npm notice 63.6kB  build/client/892667349c5cff6fcf7e40439596b97c.woff
npm notice 444.4kB build/client/912ec66d7572ff821749319396470bde.svg
npm notice 62.8kB  build/client/963eb32907744d9a0d6b98127162808f.woff
npm notice 69.9kB  build/client/9f2144213fad53d4e0fdb26ecf93865f.woff
npm notice 63.7kB  build/client/ac327c4db6284ef64ebe872b6308f5da.woff
npm notice 77.2kB  build/client/af7ae505a9eed503f8b8e6982036873e.woff2
npm notice 444.4kB build/client/assets/fonts/fontawesome-webfont-4f575d52331de91a2e32cc3408dd0eaf0cf25b7244d34b226314e3647e85ce284f86e3b7238c6c8b9022dc4e2787bf51620849290cdcd5d4c4bc905f289d2156.svg
npm notice 165.7kB build/client/assets/fonts/fontawesome-webfont-674f50d287a8c48d.eot
npm notice 444.4kB build/client/assets/fonts/fontawesome-webfont-912ec66d7572ff82.svg
npm notice 165.5kB build/client/assets/fonts/fontawesome-webfont-9ffb91e68c975172848b4bba25284678cc2c6eb4fb2d42000aa871c36656c4cebc28bf83c94df9afdfbf2407c01fe6b554c660b9b5c11af27c35acadfe6136ac.ttf
npm notice 77.2kB  build/client/assets/fonts/fontawesome-webfont-af7ae505a9eed503.woff2
npm notice 77.2kB  build/client/assets/fonts/fontawesome-webfont-af7ae505a9eed503f8b8e6982036873e.woff2
npm notice 165.5kB build/client/assets/fonts/fontawesome-webfont-b06871f281fee6b2.ttf
npm notice 165.7kB build/client/assets/fonts/fontawesome-webfont-c160d3d77e67eff986043461693b2a831e1175f579490d7f0b411005ea81bd4f5850ff534f6721b727c002973f3f9027ea960fac4317d37db1d4cb53ec9d343a.eot
npm notice 98.0kB  build/client/assets/fonts/fontawesome-webfont-fee66e712a8a08ee.woff
npm notice 98.0kB  build/client/assets/fonts/fontawesome-webfont-fee66e712a8a08eef5805a46892932ad.woff
npm notice 94.4kB  build/client/assets/fonts/myriadpro-regular-32ba4abb9c1b0e57493a44abd6c52f19b3aedd4d5350b72c71dfbd83d00fcc8d64ad303c173bf48ed233a890c54449a6dda93a9f8dd79b0587d1d5b038a6ae8c.otf
npm notice 63.6kB  build/client/assets/fonts/OpenSans-Bold-892667349c5cff6f.woff
npm notice 63.6kB  build/client/assets/fonts/OpenSans-Bold-892667349c5cff6fcf7e40439596b97c.woff
npm notice 62.8kB  build/client/assets/fonts/OpenSans-Light-963eb32907744d9a.woff
npm notice 62.8kB  build/client/assets/fonts/OpenSans-Light-963eb32907744d9a0d6b98127162808f.woff
npm notice 63.7kB  build/client/assets/fonts/OpenSans-Regular-ac327c4db6284ef6.woff
npm notice 63.7kB  build/client/assets/fonts/OpenSans-Regular-ac327c4db6284ef64ebe872b6308f5da.woff
npm notice 69.9kB  build/client/assets/fonts/OpenSans-Semibold-9f2144213fad53d4.woff
npm notice 69.9kB  build/client/assets/fonts/OpenSans-Semibold-9f2144213fad53d4e0fdb26ecf93865f.woff
npm notice 211B    build/client/assets/images/6215711718fe3192bc46d65dcd2f8bab47280515199c4234b7648f0d6c293c4927b11b53618ccefde15528ee5753328cf3d77653faa769f5cf72f2ea00c2707e.svg
npm notice 26.6kB  build/client/assets/images/6f5d326d3ca877107711c9211bfa1052b7ee27ae20be10cd88bc63e1752dec53b61f5033fb507e3e9dd0c3163fcd485dbf501d0257c9cfd62e736197835c731e.png
npm notice 27.3kB  build/client/assets/images/7b34caa19fb150de70f2655a483827786a5c4240aa17103debf2e2238aca59b32d745beaedc116234b5b5fcbd37e452d6c81b8da63be13aeb7d80c90d8c23894.png
npm notice 99B     build/client/assets/images/9806d0c23d474751869311ecef35e81377d140cb35ab75791009f769980941840d2f8e51537cd9ad67aadacd2ddb5b8f94ab3723adc84792d53d52de33e18c89.svg
npm notice 24.8kB  build/client/assets/images/ab63efbbefafdfac53bd2860085367c18df6a72be3757cfffbb4b766039942a2ba812168ac24bd2a72bb48d204f5d0217b587f91a7d2bf75e3f2b97e6bd2b219.png
npm notice 165.5kB build/client/b06871f281fee6b241d60582ae9369b9.ttf
npm notice 24.9kB  build/client/c6a01cf9a631d121e2241c9d8d78c9fc336c6da3ef235013c4597a6d414187382c1fc660122cf2b3abe38f695a4c80c253291f32e8448e1ab6d42fd79f33c5ef.png
npm notice 82B     build/client/cbdbb56c3db60bbd9fa97de4fc53074717a6942568a1c0a69c5f9746d987aaac79a627ac8211041eb10dde38e0de0971219a34bc9140c570ec497333b2270e24.svg
npm notice 1.1kB   build/client/ce2057e1799091d2462091610263ec01507c31eae8f41387f1b9c72af1fd2acce7c33aec1e984c4127657f4518fa6569f149444fed0fc5607297bb5ff3d354df.png
npm notice 8.8kB   build/client/favicon/android-chrome-144x144.png
npm notice 11.7kB  build/client/favicon/android-chrome-192x192.png
npm notice 2.1kB   build/client/favicon/android-chrome-36x36.png
npm notice 3.2kB   build/client/favicon/android-chrome-48x48.png
npm notice 4.4kB   build/client/favicon/android-chrome-72x72.png
npm notice 5.9kB   build/client/favicon/android-chrome-96x96.png
npm notice 2.3kB   build/client/favicon/apple-touch-icon-114x114.png
npm notice 2.4kB   build/client/favicon/apple-touch-icon-120x120.png
npm notice 2.8kB   build/client/favicon/apple-touch-icon-144x144.png
npm notice 2.9kB   build/client/favicon/apple-touch-icon-152x152.png
npm notice 3.3kB   build/client/favicon/apple-touch-icon-180x180.png
npm notice 1.6kB   build/client/favicon/apple-touch-icon-57x57.png
npm notice 1.7kB   build/client/favicon/apple-touch-icon-60x60.png
npm notice 1.9kB   build/client/favicon/apple-touch-icon-72x72.png
npm notice 1.7kB   build/client/favicon/apple-touch-icon-76x76.png
npm notice 7.4kB   build/client/favicon/apple-touch-icon-precomposed.png
npm notice 3.3kB   build/client/favicon/apple-touch-icon.png
npm notice 443B    build/client/favicon/browserconfig.xml
npm notice 8.8kB   build/client/favicon/favicon-144x144.png
npm notice 1.2kB   build/client/favicon/favicon-16x16.png
npm notice 11.7kB  build/client/favicon/favicon-192x192.png
npm notice 1.9kB   build/client/favicon/favicon-32x32.png
npm notice 3.2kB   build/client/favicon/favicon-48x48.png
npm notice 5.9kB   build/client/favicon/favicon-96x96.png
npm notice 15.1kB  build/client/favicon/favicon.ico
npm notice 806B    build/client/favicon/manifest.json
npm notice 8.9kB   build/client/favicon/mstile-144x144.png
npm notice 8.7kB   build/client/favicon/mstile-150x150.png
npm notice 9.4kB   build/client/favicon/mstile-310x150.png
npm notice 18.8kB  build/client/favicon/mstile-310x310.png
npm notice 6.1kB   build/client/favicon/mstile-70x70.png
npm notice 3.8kB   build/client/favicon/safari-pinned-tab.svg
npm notice 98.0kB  build/client/fee66e712a8a08eef5805a46892932ad.woff
npm notice 2.6kB   build/client/index.html
npm notice 91.3kB  build/client/main.css
npm notice 1.0MB   build/client/main.js
npm notice 118B    build/client/robots.txt
npm notice 20.4kB  build/client/themes-dark-bundle.css
npm notice 938B    build/client/themes-dark-bundle.js
npm notice 15.3kB  build/client/themes-default-bundle.css
npm notice 938B    build/client/themes-default-bundle.js
npm notice 19.2kB  build/client/themes-light-bundle.css
npm notice 938B    build/client/themes-light-bundle.js
npm notice 37B     build/client/themes.json
npm notice 485B    build/client/themes/default.js
npm notice 485B    build/client/themes/light.js
npm notice 12.3kB  build/server/config.js
npm notice 2.6kB   build/server/controllers/manifest.js
npm notice 310B    build/server/controllers/routes.js
npm notice 11.7kB  build/server/controllers/v1/accesses.js
npm notice 5.6kB   build/server/controllers/v1/accounts.js
npm notice 4.1kB   build/server/controllers/v1/alerts.js
npm notice 21.0kB  build/server/controllers/v1/all.js
npm notice 6.4kB   build/server/controllers/v1/budgets.js
npm notice 5.8kB   build/server/controllers/v1/categories.js
npm notice 8.3kB   build/server/controllers/v1/helpers.js
npm notice 3.0kB   build/server/controllers/v1/logs.js
npm notice 6.4kB   build/server/controllers/v1/operations.js
npm notice 3.3kB   build/server/controllers/v1/routes.js
npm notice 4.4kB   build/server/controllers/v1/settings.js
npm notice 9.6kB   build/server/helpers.js
npm notice 5.4kB   build/server/index.js
npm notice 2.4kB   build/server/init.js
npm notice 29.8kB  build/server/lib/accounts-manager.js
npm notice 9.0kB   build/server/lib/alert-manager.js
npm notice 2.8kB   build/server/lib/async-queue.js
npm notice 1.4kB   build/server/lib/cron.js
npm notice 2.3kB   build/server/lib/diff-accounts.js
npm notice 3.9kB   build/server/lib/diff-list.js
npm notice 2.3kB   build/server/lib/diff-operations.js
npm notice 4.7kB   build/server/lib/emailer.js
npm notice 1.8kB   build/server/lib/logger.js
npm notice 504B    build/server/lib/notifications.js
npm notice 8.0kB   build/server/lib/poller.js
npm notice 13.9kB  build/server/lib/report-manager.js
npm notice 2.0kB   build/server/lib/sources/manual.js
npm notice 10.9kB  build/server/lib/sources/mock.js
npm notice 12.0kB  build/server/lib/sources/weboob.js
npm notice 5.6kB   build/server/models/accesses.js
npm notice 7.6kB   build/server/models/accounts.js
npm notice 1.7kB   build/server/models/accounttype.js
npm notice 9.1kB   build/server/models/alert.js
npm notice 1.3kB   build/server/models/bank.js
npm notice 8.5kB   build/server/models/budget.js
npm notice 4.2kB   build/server/models/category.js
npm notice 9.0kB   build/server/models/config.js
npm notice 2.0kB   build/server/models/index.js
npm notice 44.9kB  build/server/models/migrations.js
npm notice 12.7kB  build/server/models/operation.js
npm notice 2.8kB   build/server/models/operationtype.js
npm notice 2.5kB   build/server/models/requests.js
npm notice 533B    build/server/models/static-data.js
npm notice 1.3kB   build/server/models/users.js
npm notice 1.6kB   build/server/shared/account-types.json
npm notice 30.8kB  build/server/shared/banks.json
npm notice 2.2kB   build/server/shared/default-alerts.json
npm notice 1.6kB   build/server/shared/default-categories.json
npm notice 1.3kB   build/server/shared/default-settings.js
npm notice 565B    build/server/shared/errors.json
npm notice 3.8kB   build/server/shared/helpers.js
npm notice 30.8kB  build/server/shared/locales/en.json
npm notice 34.7kB  build/server/shared/locales/fr.json
npm notice 934B    build/server/shared/operation-types.json
npm notice 1.1kB   build/server/shared/validators.js
npm notice 141B    build/server/weboob/fakemodules/fakeweboobbank/__init__.py
npm notice 11.6kB  build/server/weboob/fakemodules/fakeweboobbank/module.py
npm notice 28.2kB  build/server/weboob/main.py
npm notice 10.5kB  client/main.js
npm notice 376B    docker-compose/docker-compose.example.env
npm notice 2.5kB   docker-compose/docker-compose.example.yml
npm notice 4.8kB   docker/config-janitor.ini
npm notice 5.1kB   docker/config.example.ini
npm notice 1.8kB   docker/Dockerfile-janitor
npm notice 1.6kB   docker/Dockerfile-nightly
npm notice 1.2kB   docker/Dockerfile-stable
npm notice 1.5kB   docker/entrypoint.sh
npm notice 762B    docker/janitor.json
npm notice === Tarball Details ===
npm notice name:          kresus
npm notice version:       0.14.0
npm notice filename:      kresus-0.14.0.tgz
npm notice package size:  3.3 MB
npm notice unpacked size: 6.7 MB
npm notice shasum:        de4b95987707ca540163aafe9dfec03a4ff67c6d
npm notice integrity:     sha512-GrAGg11MAX2+9[...]TuaCv9Pyio1Xw==
npm notice total files:   164
npm notice
kresus-0.14.0.tgz

As commented in the npmignore file, the client/main.js is an aberration that looks like a bug in npm itself. Putting client/ wouldn't exclude the client directory at all, and the glob I've used instead doesn't exclude client/main.js, and entering it by hand doesn't exclude it either. Oh well. One has not so much excess time on Earth.

Every other file would be useful in the package (esp. Dockerfile and example config.ini files).

Merge request reports