UNPKG

4.87 kBPlain TextView Raw
1#!/usr/bin/env node
2"use strict";var log=_interopRequireWildcard(require("../build/output/log"));var _index=_interopRequireDefault(require("next/dist/compiled/arg/index.js"));var _constants=require("../lib/constants");function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}function _getRequireWildcardCache(){if(typeof WeakMap!=="function")return null;var cache=new WeakMap();_getRequireWildcardCache=function(){return cache;};return cache;}function _interopRequireWildcard(obj){if(obj&&obj.__esModule){return obj;}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj};}var cache=_getRequireWildcardCache();if(cache&&cache.has(obj)){return cache.get(obj);}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}newObj.default=obj;if(cache){cache.set(obj,newObj);}return newObj;}['react','react-dom'].forEach(dependency=>{try{// When 'npm link' is used it checks the clone location. Not the project.
3require.resolve(dependency);}catch(err){console.warn(`The module '${dependency}' was not found. Next.js requires that you include it in 'dependencies' of your 'package.json'. To add it, run 'npm install ${dependency}'`);}});const defaultCommand='dev';const commands={build:()=>Promise.resolve().then(()=>_interopRequireWildcard(require('../cli/next-build'))).then(i=>i.nextBuild),start:()=>Promise.resolve().then(()=>_interopRequireWildcard(require('../cli/next-start'))).then(i=>i.nextStart),export:()=>Promise.resolve().then(()=>_interopRequireWildcard(require('../cli/next-export'))).then(i=>i.nextExport),dev:()=>Promise.resolve().then(()=>_interopRequireWildcard(require('../cli/next-dev'))).then(i=>i.nextDev),lint:()=>Promise.resolve().then(()=>_interopRequireWildcard(require('../cli/next-lint'))).then(i=>i.nextLint),telemetry:()=>Promise.resolve().then(()=>_interopRequireWildcard(require('../cli/next-telemetry'))).then(i=>i.nextTelemetry)};const args=(0,_index.default)({// Types
4'--version':Boolean,'--help':Boolean,'--inspect':Boolean,// Aliases
5'-v':'--version','-h':'--help'},{permissive:true});// Version is inlined into the file using taskr build pipeline
6if(args['--version']){console.log(`Next.js v${"11.0.1"}`);process.exit(0);}// Check if we are running `next <subcommand>` or `next`
7const foundCommand=Boolean(commands[args._[0]]);// Makes sure the `next --help` case is covered
8// This help message is only showed for `next --help`
9// `next <subcommand> --help` falls through to be handled later
10if(!foundCommand&&args['--help']){console.log(`
11 Usage
12 $ next <command>
13
14 Available commands
15 ${Object.keys(commands).join(', ')}
16
17 Options
18 --version, -v Version number
19 --help, -h Displays this message
20
21 For more information run a command with the --help flag
22 $ next build --help
23 `);process.exit(0);}const command=foundCommand?args._[0]:defaultCommand;const forwardedArgs=foundCommand?args._.slice(1):args._;if(args['--inspect'])throw new Error(`--inspect flag is deprecated. Use env variable NODE_OPTIONS instead: NODE_OPTIONS='--inspect' next ${command}`);// Make sure the `next <subcommand> --help` case is covered
24if(args['--help']){forwardedArgs.push('--help');}const defaultEnv=command==='dev'?'development':'production';const standardEnv=['production','development','test'];if(process.env.NODE_ENV&&!standardEnv.includes(process.env.NODE_ENV)){log.warn(_constants.NON_STANDARD_NODE_ENV);};process.env.NODE_ENV=process.env.NODE_ENV||defaultEnv;// this needs to come after we set the correct NODE_ENV or
25// else it might cause SSR to break
26const React=require('react');if(typeof React.Suspense==='undefined'){throw new Error(`The version of React you are using is lower than the minimum required version needed for Next.js. Please upgrade "react" and "react-dom": "npm install react react-dom" https://nextjs.org/docs/messages/invalid-react-version`);}// Make sure commands gracefully respect termination signals (e.g. from Docker)
27process.on('SIGTERM',()=>process.exit(0));process.on('SIGINT',()=>process.exit(0));commands[command]().then(exec=>exec(forwardedArgs)).then(()=>{if(command==='build'){// ensure process exits after build completes so open handles/connections
28// don't cause process to hang
29process.exit(0);}});if(command==='dev'){const{CONFIG_FILE}=require('../next-server/lib/constants');const{watchFile}=require('fs');watchFile(`${process.cwd()}/${CONFIG_FILE}`,(cur,prev)=>{if(cur.size>0||prev.size>0){console.log(`\n> Found a change in ${CONFIG_FILE}. Restart the server to see the changes in effect.`);}});}
30//# sourceMappingURL=next.map
\No newline at end of file