# === 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