| { pkgs, lib, config, ... }: |
|
|
| { |
| |
| env = { |
| NODE_ENV = "dev"; |
| NODE_OPTIONS = "--max-http-header-size=32768"; |
| }; |
|
|
| |
| packages = with pkgs; [ |
| git |
|
|
| |
| |
| ]; |
|
|
| |
| languages.javascript = { |
| enable = true; |
| package = pkgs.nodejs_24; |
| pnpm = { |
| enable = true; |
| package = pkgs.pnpm_10; |
| }; |
| }; |
|
|
| |
| services.redis = { |
| enable = lib.mkDefault false; |
| port = 6379; |
| }; |
|
|
| |
| scripts.rsshub-dev.exec = '' |
| pnpm run dev |
| ''; |
|
|
| scripts.rsshub-build.exec = '' |
| pnpm run build |
| ''; |
|
|
| scripts.rsshub-start.exec = '' |
| pnpm start |
| ''; |
|
|
| scripts.rsshub-test.exec = '' |
| pnpm test |
| ''; |
|
|
| |
| processes = { |
| |
| |
|
|
| |
| |
| }; |
|
|
| |
| pre-commit.hooks = { |
| |
| eslint = { |
| enable = true; |
| entry = lib.mkForce "pnpm run format:staged"; |
| }; |
| }; |
|
|
| enterShell = '' |
| echo "" |
| echo "π RSSHub Development Environment" |
| echo "ββββββββββββββββββββββββββββββββββββββββββββββββββββββ" |
| echo "" |
| echo "Node.js: $(node --version)" |
| echo "pnpm: $(pnpm --version)" |
| ${lib.optionalString config.services.redis.enable '' |
| echo "Redis: Running on port ${toString config.services.redis.port}" |
| ''} |
| echo "" |
| echo "Available commands:" |
| echo " rsshub-dev - Start development server (pnpm run dev)" |
| echo " rsshub-build - Build the project (pnpm run build)" |
| echo " rsshub-start - Start production server (pnpm start)" |
| echo " rsshub-test - Run tests (pnpm test)" |
| ${lib.optionalString (!config.services.redis.enable) '' |
| echo "" |
| echo "π‘ Tip: Enable Redis by creating devenv.local.nix:" |
| echo " { services.redis.enable = true; }" |
| ''} |
| echo "" |
| echo "Documentation: https://docs.rsshub.app" |
| echo "ββββββββββββββββββββββββββββββββββββββββββββββββββββββ" |
| echo "" |
| |
| # Install dependencies if node_modules doesn't exist |
| if [ ! -d "node_modules" ]; then |
| echo "π¦ Installing dependencies..." |
| pnpm install |
| fi |
| ''; |
|
|
| |
| dotenv.enable = true; |
|
|
| |
| |
| imports = lib.optional (builtins.pathExists ./devenv.local.nix) ./devenv.local.nix; |
| } |
|
|