Documentation

All guidesLocal execution

npm and the JavaScript runtime

Install packages, run scripts, and recognize where the compatible runtime differs from traditional Node.

7 min read

Install deliberately

npm install, i, and add resolve the npm registry, write package-lock.json v3, and create node_modules/.bin shortcuts. With package names, they also update dependencies; -D or --save-dev writes devDependencies. npm install with no names installs package.json dependencies.

When installing in a project, Odete creates package.json if needed and makes sure node_modules/ is in .gitignore. npm uninstall, remove, rm, and un remove declared dependencies; npm ls lists top-level dependencies.

npm init
npm install react
npm install -D vite
npm ls

Scripts and local executables

npm run without an argument lists scripts. npm run name executes scripts[name] through the shell, and npm start, dev, build, test, preview, and lint run scripts with those names. npm exec, x, and dlx delegate to binary execution; npx uses a node_modules/.bin binary or built-in substitutes. pnpm, yarn, and bun are npm aliases.

node runs JavaScript, TypeScript, JSX, or TSX through Odete’s runtime. tsx and ts-node are routed to that same runner; use node file.ts for a simple script.

npm run
npm run dev
npx vite --port 5173
node scripts/check.ts

Limits that change the decision

The runtime uses JavaScriptCore with Odete-provided modules and hosts; it is not a Node binary distributed on iPad. Native addons and packages that require binaries can be marked native during installation and will not run.

file:, git:, http:, link:, and workspace: dependencies are skipped by the resolver. Missing dependencies can receive an esm.sh import map in the Preview flow, which needs a network connection and does not replace an installation your project truly requires.