diff --git a/.npmignore b/.npmignore new file mode 100644 index 0000000..7846446 --- /dev/null +++ b/.npmignore @@ -0,0 +1,58 @@ +# === Mirrors .gitignore — same deny list applies when packing for npm, +# kept verbatim so npm pack doesn't fall back to .gitignore silently +# (warning: gitignore-fallback). === +node_modules/ +package-lock.json +*.tgz +*.log +npm-debug.log* +.env +.env.* +.DS_Store + +# === Memory + IDE state — NEVER ships (838 MB of .repo-mem alone) === +.repo-mem/ +.codex +.codex/ +.claude/ +.agents/ +CLAUDE.md +CLAUDE.local.md + +# === Repo-level dev tooling === +tools/ +docker/ +docker-compose.yml +Dockerfile +.dockerignore +.gitea/ +eslint.config.js +jest.config.js +scripts/ +test/ + +# === Repo-level docs not needed by Node-RED consumers === +wiki/ +CONTRACTS.md +.gitmodules + +# === Per-submodule dev-only trees === +# `npm pack` at the parent walks the file tree directly and IGNORES each +# submodule's own .npmignore. So we mirror the per-submodule deny lists +# here explicitly, otherwise the root tarball still bundles every test +# tree, wiki, simulation harness, screen recording, etc. — that's how +# the root pack was 175 MB before this file existed. +nodes/*/test/ +nodes/*/wiki/ +nodes/*/simulations/ +nodes/*/tools/ +nodes/*/scripts/ +nodes/*/CLAUDE.md +nodes/*/CLAUDE.local.md +nodes/*/.claude/ +nodes/*/.codex/ +nodes/*/.git +nodes/*/.gitignore +nodes/*/.npmignore +nodes/*/.eslintrc* +nodes/*/eslint.config.js