{"id":18685,"library":"prn-metro-bundler","title":"Metro Bundler","description":"Metro is the JavaScript bundler for React Native, designed for sub-second reload cycles, fast startup, and quick bundling speeds. It handles thousands of modules in a single application and is integrated with every React Native project out of the box. Version 0.0.1 appears to be a fork (prn-metro-bundler) of the original Facebook metro-bundler, but the npm package seems to be a placeholder or mis-published. The original metro-bundler was previously part of the react-native repository and is now maintained separately. Note: The correct npm package for the official Metro bundler is 'metro' (or 'metro-bundler' as an alias), but the version 0.0.1 shown here is likely a test/published fork from a Chinese company (pinguo-zhangzhi).","status":"deprecated","version":"0.0.1","language":"javascript","source_language":"en","source_url":"github.com/pinguo-zhangzhi/prn-metro-bundler","tags":["javascript"],"install":[{"cmd":"npm install prn-metro-bundler","lang":"bash","label":"npm"},{"cmd":"yarn add prn-metro-bundler","lang":"bash","label":"yarn"},{"cmd":"pnpm add prn-metro-bundler","lang":"bash","label":"pnpm"}],"dependencies":[],"imports":[{"note":"ESM-only; CommonJS require is not supported for metro package since v0.55.","wrong":"const Metro = require('metro')","symbol":"Metro","correct":"import Metro from 'metro'"},{"note":"runBuild is not exported from 'metro-bundler'; use 'metro' instead.","wrong":"import { runBuild } from 'metro-bundler'","symbol":"runBuild","correct":"import { runBuild } from 'metro'"},{"note":"Use 'metro' package; 'metro-bundler' is an alias but not recommended.","wrong":"const createServer = require('metro-bundler').createServer","symbol":"createServer","correct":"import { createServer } from 'metro'"}],"quickstart":{"code":"import Metro from 'metro';\nimport express from 'express';\n\nconst app = express();\nconst port = process.env.PORT || 8081;\n\n// Start Metro bundler server\nMetro.createServer().then(server => {\n  server.listen(port, () => {\n    console.log(`Metro bundler running on port ${port}`);\n  });\n});\n\napp.get('/', (req, res) => {\n  res.send('Hello from Metro bundler');\n});\n\napp.listen(3000, () => {\n  console.log('Express server listening on port 3000');\n});","lang":"typescript","description":"Creates a Metro bundler server alongside an Express app, demonstrating basic use of Metro's server creation."},"warnings":[{"fix":"Install 'metro' from npm: npm install metro","message":"This package (prn-metro-bundler v0.0.1) is a fork from pinguo-zhangzhi and is likely not the official Metro bundler. Use the official 'metro' package instead.","severity":"gotcha","affected_versions":"0.0.1"},{"fix":"Replace 'metro-bundler' with 'metro' in package.json and imports.","message":"The official metro-bundler package is deprecated; use 'metro' instead.","severity":"deprecated","affected_versions":">=0.50"},{"fix":"Use named imports: `import { createServer } from 'metro'`.","message":"In Metro v0.50+, the API changed from default export to named exports. Old code using `const Metro = require('metro-bundler')` will break.","severity":"breaking","affected_versions":">=0.50"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Install 'metro' instead: npm install metro","cause":"The package 'metro-bundler' is deprecated and not available on npm (only historical).","error":"Cannot find module 'metro-bundler'"},{"fix":"Use ES module import: import Metro from 'metro'","cause":"Metro v0.50+ switched to ESM only; CommonJS require does not work.","error":"require('metro-bundler') returns undefined"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}