mirror of
				https://github.com/aleleba/create-react-ssr.git
				synced 2025-10-30 13:40:45 -06:00 
			
		
		
		
	PR-767513: fix npx.
This commit is contained in:
		
							
								
								
									
										142
									
								
								bin/cli.js
									
									
									
									
									
								
							
							
						
						
									
										142
									
								
								bin/cli.js
									
									
									
									
									
								
							| @@ -24,13 +24,13 @@ const runCommandWithOutput = command => { | ||||
|     } | ||||
| } | ||||
|  | ||||
| const replaceTextOnFile = async ({ | ||||
| const replaceTextOnFile = ({ | ||||
|     file, | ||||
|     textToBeReplaced, | ||||
|     textReplace, | ||||
|     arrOfObjectsBeReplaced | ||||
| }) => { | ||||
|     await fs.readFile(file, 'utf8', function (err,data) { | ||||
|     fs.readFile(file, 'utf8', function (err,data) { | ||||
|         let result | ||||
|         if (err) { | ||||
|           return console.error(err); | ||||
| @@ -47,7 +47,7 @@ const replaceTextOnFile = async ({ | ||||
|             result = data.replace(textToBeReplaced, textReplace).replace(/^\s*[\r\n]/gm, ' '); | ||||
|         } | ||||
|          | ||||
|         fs.writeFileSync(file, result, 'utf8', function (err) { | ||||
|         fs.writeFile(file, result, 'utf8', function (err) { | ||||
|             if (err){ | ||||
|                 return console.error(err); | ||||
|             } | ||||
| @@ -55,70 +55,72 @@ const replaceTextOnFile = async ({ | ||||
|     }); | ||||
| } | ||||
|  | ||||
| const repoName = process.argv[2]; | ||||
| const gitCheckoutCommand = `git clone --depth 1 https://github.com/aleleba/create-react-ssr ${repoName}`; | ||||
| console.log(`Cloning the repository with name ${repoName}`); | ||||
| const checkedOut = runCommand(gitCheckoutCommand); | ||||
| if(!checkedOut) process.exit(-1); | ||||
|  | ||||
| const actualVersion = runCommandWithOutput(`cd ${repoName} && node -p "require('./package.json').version"`).toString().trim() | ||||
|  | ||||
| const installDepsCommand = `cd ${repoName} && npm install`; | ||||
| const cleanGitHistoryCommand = `cd ${repoName} && rm -rf .git && git init && git add --all -- ":!.github" ":!bin" && git commit -m "Initial commit"` | ||||
| const cleanGitHistoryCommandWindows = `cd ${repoName} && rmdir .git /s /q && git init && git add --all -- ":!.github" ":!bin" && git commit -m "Initial commit"` | ||||
| const deleteFoldersCommand = `cd ${repoName} && rm -rf .github && rm -rf bin` | ||||
| const deleteFoldersCommandWindows = `cd ${repoName} && rmdir .github /s /q && rmdir bin /s /q` | ||||
| const deleteBinCommand = `cd ${repoName} && sed -i 's+"bin": "./bin/cli.js",++g' package.json && sed -i '/^[[:space:]]*$/d' package.json` | ||||
| const deleteBinCommandWindows = `cd ${repoName} && copy package.json package2.json && del package.json && type package2.json | findstr /v cli.js > package.json && del package2.json` | ||||
| const deleteBinCommandApple = `cd ${repoName} && sed -i .copy 's+"bin": "./bin/cli.js",++g' package.json && sed -i .copy '/^[[:space:]]*$/d' package.json && | ||||
| rm -rf package.json.copy` | ||||
| const replaceNewVersionCommand = `cd ${repoName} && sed -i 's+"version": "${actualVersion}",+"version": "0.0.1",+g' package.json` | ||||
| const replaceNewVersionCommandWindows = `cd ${repoName} && copy package.json package2.json && del package.json && type package2.json | %"version": "${actualVersion}",="version": "0.0.1"% > package.json && del package2.json` | ||||
| const replaceNewVersionCommandApple = `cd ${repoName} && sed -i .copy 's+"version": "${actualVersion}",+"version": "0.0.1",+g' package.json && | ||||
| rm -rf package.json.copy` | ||||
| const replaceNameAppCommand = `cd ${repoName} && sed -i 's+"name": "@aleleba/create-react-ssr",+"name": "${repoName}",+g' package.json` | ||||
| const replaceNameAppCommandApple = `cd ${repoName} && sed -i .copy 's+"name": "@aleleba/create-react-ssr",+"name": "${repoName}",+g' package.json && | ||||
| rm -rf package.json.copy` | ||||
|  | ||||
| console.log(`Installing dependencies for ${repoName}`); | ||||
| const installedDeps = runCommand(installDepsCommand); | ||||
| if(!installedDeps) process.exit(-1); | ||||
|  | ||||
| replaceTextOnFile({  | ||||
|     file: `./${repoName}/package.json`, | ||||
|     arrOfObjectsBeReplaced: [ | ||||
|         { | ||||
|             textToBeReplaced: `"bin": "./bin/cli.js",`,  | ||||
|             textReplace: `` | ||||
|         }, | ||||
|         { | ||||
|             textToBeReplaced: `"version": "${actualVersion}",`,  | ||||
|             textReplace: `"version": "0.0.1",` | ||||
|         }, | ||||
|         { | ||||
|             textToBeReplaced: `"name": "@aleleba/create-react-ssr",`,  | ||||
|             textReplace: `"name": "${repoName}",` | ||||
|         } | ||||
|     ] | ||||
| }) | ||||
|  | ||||
| /* const deleteBin = isAppple ? runCommand(deleteBinCommandApple) : (isWin ? runCommand(deleteBinCommandWindows) : runCommand(deleteBinCommand)); | ||||
| if(!deleteBin) process.exit(-1); | ||||
|  | ||||
| const replaceNewVersion = runCommand(replaceNewVersionCommand) | ||||
| if(!replaceNewVersion) process.exit(-1); | ||||
|  | ||||
| const replaceNameApp = runCommand(replaceNameAppCommand) | ||||
| if(!replaceNameApp) process.exit(-1); */ | ||||
|  | ||||
| console.log(`Cleaning History of Git for ${repoName}`); | ||||
| const cleanGitHistory = isWin ? runCommand(cleanGitHistoryCommandWindows) : runCommand(cleanGitHistoryCommand); | ||||
| if(!cleanGitHistory) process.exit(-1); | ||||
|  | ||||
| console.log("Congratulations! You are ready. Follow the following commands to start"); | ||||
| console.log(`cd ${repoName}`); | ||||
| console.log('Create a .env file with ENV=development(defauld: production), PORT=3000 (default: 80), PUBLIC_URL=your_public_url(optional)(default: /)'); | ||||
| console.log(`Then you can run: npm start:dev`); | ||||
|  | ||||
| const deleteFolders = isWin ? runCommand(deleteFoldersCommandWindows) : runCommand(deleteFoldersCommand); | ||||
| if(!deleteFolders) process.exit(-1); | ||||
| (async () => { | ||||
|     const repoName = process.argv[2]; | ||||
|     const gitCheckoutCommand = `git clone --depth 1 https://github.com/aleleba/create-react-ssr ${repoName}`; | ||||
|     console.log(`Cloning the repository with name ${repoName}`); | ||||
|     const checkedOut = runCommand(gitCheckoutCommand); | ||||
|     if(!checkedOut) process.exit(-1); | ||||
|      | ||||
|     const actualVersion = runCommandWithOutput(`cd ${repoName} && node -p "require('./package.json').version"`).toString().trim() | ||||
|      | ||||
|     const installDepsCommand = `cd ${repoName} && npm install`; | ||||
|     const cleanGitHistoryCommand = `cd ${repoName} && rm -rf .git && git init && git add --all -- ":!.github" ":!bin" && git commit -m "Initial commit"` | ||||
|     const cleanGitHistoryCommandWindows = `cd ${repoName} && rmdir .git /s /q && git init && git add --all -- ":!.github" ":!bin" && git commit -m "Initial commit"` | ||||
|     const deleteFoldersCommand = `cd ${repoName} && rm -rf .github && rm -rf bin` | ||||
|     const deleteFoldersCommandWindows = `cd ${repoName} && rmdir .github /s /q && rmdir bin /s /q` | ||||
|     const deleteBinCommand = `cd ${repoName} && sed -i 's+"bin": "./bin/cli.js",++g' package.json && sed -i '/^[[:space:]]*$/d' package.json` | ||||
|     const deleteBinCommandWindows = `cd ${repoName} && copy package.json package2.json && del package.json && type package2.json | findstr /v cli.js > package.json && del package2.json` | ||||
|     const deleteBinCommandApple = `cd ${repoName} && sed -i .copy 's+"bin": "./bin/cli.js",++g' package.json && sed -i .copy '/^[[:space:]]*$/d' package.json && | ||||
|     rm -rf package.json.copy` | ||||
|     const replaceNewVersionCommand = `cd ${repoName} && sed -i 's+"version": "${actualVersion}",+"version": "0.0.1",+g' package.json` | ||||
|     const replaceNewVersionCommandWindows = `cd ${repoName} && copy package.json package2.json && del package.json && type package2.json | %"version": "${actualVersion}",="version": "0.0.1"% > package.json && del package2.json` | ||||
|     const replaceNewVersionCommandApple = `cd ${repoName} && sed -i .copy 's+"version": "${actualVersion}",+"version": "0.0.1",+g' package.json && | ||||
|     rm -rf package.json.copy` | ||||
|     const replaceNameAppCommand = `cd ${repoName} && sed -i 's+"name": "@aleleba/create-react-ssr",+"name": "${repoName}",+g' package.json` | ||||
|     const replaceNameAppCommandApple = `cd ${repoName} && sed -i .copy 's+"name": "@aleleba/create-react-ssr",+"name": "${repoName}",+g' package.json && | ||||
|     rm -rf package.json.copy` | ||||
|      | ||||
|     console.log(`Installing dependencies for ${repoName}`); | ||||
|     const installedDeps = runCommand(installDepsCommand); | ||||
|     if(!installedDeps) process.exit(-1); | ||||
|      | ||||
|     await replaceTextOnFile({  | ||||
|         file: `./${repoName}/package.json`, | ||||
|         arrOfObjectsBeReplaced: [ | ||||
|             { | ||||
|                 textToBeReplaced: `"bin": "./bin/cli.js",`,  | ||||
|                 textReplace: `` | ||||
|             }, | ||||
|             { | ||||
|                 textToBeReplaced: `"version": "${actualVersion}",`,  | ||||
|                 textReplace: `"version": "0.0.1",` | ||||
|             }, | ||||
|             { | ||||
|                 textToBeReplaced: `"name": "@aleleba/create-react-ssr",`,  | ||||
|                 textReplace: `"name": "${repoName}",` | ||||
|             } | ||||
|         ] | ||||
|     }) | ||||
|      | ||||
|     /* const deleteBin = isAppple ? runCommand(deleteBinCommandApple) : (isWin ? runCommand(deleteBinCommandWindows) : runCommand(deleteBinCommand)); | ||||
|     if(!deleteBin) process.exit(-1); | ||||
|      | ||||
|     const replaceNewVersion = runCommand(replaceNewVersionCommand) | ||||
|     if(!replaceNewVersion) process.exit(-1); | ||||
|      | ||||
|     const replaceNameApp = runCommand(replaceNameAppCommand) | ||||
|     if(!replaceNameApp) process.exit(-1); */ | ||||
|      | ||||
|     console.log(`Cleaning History of Git for ${repoName}`); | ||||
|     const cleanGitHistory = isWin ? runCommand(cleanGitHistoryCommandWindows) : runCommand(cleanGitHistoryCommand); | ||||
|     if(!cleanGitHistory) process.exit(-1); | ||||
|      | ||||
|     console.log("Congratulations! You are ready. Follow the following commands to start"); | ||||
|     console.log(`cd ${repoName}`); | ||||
|     console.log('Create a .env file with ENV=development(defauld: production), PORT=3000 (default: 80), PUBLIC_URL=your_public_url(optional)(default: /)'); | ||||
|     console.log(`Then you can run: npm start:dev`); | ||||
|      | ||||
|     const deleteFolders = isWin ? runCommand(deleteFoldersCommandWindows) : runCommand(deleteFoldersCommand); | ||||
|     if(!deleteFolders) process.exit(-1); | ||||
| })(); | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| { | ||||
|   "name": "@aleleba/create-react-ssr", | ||||
|   "version": "3.0.44", | ||||
|   "version": "3.0.45", | ||||
|   "description": "Starter Kit of server side render of react", | ||||
|   "bin": "./bin/cli.js",   | ||||
|   "main": "src/server/index", | ||||
|   | ||||
		Reference in New Issue
	
	Block a user