{"record":{"id":"1352a1c9e79d7e55","repo":"refinedev/refine","slug":"example-refine-start-build-server-index-js","errorCode":null,"errorMessage":"Example: `refine start ./build/server/index.js`","messagePattern":"Example: `refine start \\./build/server/index\\.js`","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"packages/cli/src/commands/runner/projectScripts.ts","lineNumber":100,"sourceCode":"  },\n  [ProjectTypes.REMIX_VITE]: {\n    getDev: (args: string[]) => [\"vite:dev\", ...args],\n    getStart: (args: string[]) => {\n      // remix-serve accepts a path to the entry file as an argument\n      // if we have arguments, we will pass them to remix-serve and do nothing.\n      // ex: `refine start ./build/server/index.js`\n      const hasArgs = args?.length;\n      if (hasArgs) {\n        return args;\n      }\n\n      // otherwise print a warning and use `./build/server/index.js` as default\n      console.log();\n      console.warn(\n        \"🚨 Remix requires a path to the entry file. Please provide it as an argument to `refine start` command in package.json scripts\",\n      );\n      console.warn(\"Refine will use `./build/server/index.js` as default\");\n      console.warn(\"Example: `refine start ./build/server/index.js`\");\n      console.log();\n\n      return [\"./build/server/index.js\"];\n    },\n    getBuild: (args: string[]) => [\"vite:build\", ...args],\n    getBin: (type?: \"dev\" | \"start\" | \"build\") => {\n      return resolveBin(type === \"start\" ? \"remix-serve\" : \"remix\");\n    },\n  },\n  [ProjectTypes.REMIX_SPA]: {\n    getDev: (args: string[]) => [\"vite:dev\", ...args],\n    getStart: (args: string[]) => [\"preview\", ...args],\n    getBuild: (args: string[]) => [\"vite:build\", ...args],\n    getBin: (type?: \"dev\" | \"start\" | \"build\") => {\n      return resolveBin(type === \"start\" ? \"vite\" : \"remix\");\n    },\n  },\n  [ProjectTypes.CRACO]: {","sourceCodeStart":82,"sourceCodeEnd":118,"githubUrl":"https://github.com/refinedev/refine/blob/779d52a20e29b0307ac0df04d135beba434370dc/packages/cli/src/commands/runner/projectScripts.ts#L82-L118","documentation":"Usage-hint line in the remix-vite warning block of the Refine CLI runner, showing the exact script form expected. It fires together with the fallback warning whenever a Remix Vite project starts without an entry argument. No error occurs; the CLI proceeds with the default entry.","triggerScenarios":"`refine start` without a positional entry argument under the remix-vite preset of projectScripts.ts (hasArgs false).","commonSituations":"New Remix Vite Refine templates; copy-pasted scripts from classic Remix projects; automated deployments that strip script arguments.","solutions":["Update package.json: `\"start\": \"refine start ./build/server/index.js\"`","Verify the built server bundle location after `refine build`"],"exampleFix":"// before\n\"start\": \"refine start\"\n// after\n\"start\": \"refine start ./build/server/index.js\"","handlingStrategy":"validation","validationCode":"// package.json check in a prestart script\n\"prestart\": \"node -e \\\"require('fs').accessSync('./build/server/index.js')\\\"\"","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Codify the example from the warning into your scripts immediately when scaffolding"],"tags":["remix","vite","cli","usage-hint"],"backgroundTag":"missing-entry-file-argument","analyzedSha":"779d52a20e29b0307ac0df04d135beba434370dc","analyzedAt":"2026-08-27T11:15:25.854Z","schemaVersion":2},"datasetVersion":"2026-08-27T13:17:12.746Z"}