{"_rev":"62-9b393da486ce7899baa0141d547037e0","time":{"created":"2025-09-21T09:53:06.565Z","modified":"2025-09-21T09:53:07.116Z","0.0.0":"2024-09-21T11:20:37.863Z","0.0.1":"2024-09-21T11:31:12.541Z","0.0.2":"2024-09-21T11:47:26.981Z","0.0.3":"2024-09-21T20:55:49.803Z","0.0.4":"2024-09-21T21:14:12.337Z","0.0.5":"2024-09-21T21:19:39.082Z","0.0.6":"2024-09-21T21:25:23.949Z","0.0.7":"2024-09-21T21:29:09.842Z","0.0.8":"2024-09-21T21:41:11.029Z","0.0.9":"2024-09-21T21:46:05.348Z","0.0.10":"2024-09-21T21:55:06.301Z","0.0.11":"2024-09-21T21:57:59.336Z","0.0.12":"2024-09-21T22:02:35.044Z","0.0.13":"2024-09-21T22:04:02.707Z","0.0.14":"2024-09-21T22:06:50.279Z","0.0.15":"2024-09-21T22:07:46.921Z","0.0.16":"2024-09-21T22:08:37.216Z","0.0.17":"2024-09-21T22:31:23.655Z","0.0.18":"2024-09-21T22:38:42.279Z","0.0.19":"2024-09-21T22:42:55.370Z","0.0.20":"2024-09-21T22:47:29.386Z","0.0.21":"2024-09-21T23:53:52.361Z","0.0.22":"2024-09-22T00:00:04.817Z","0.0.23":"2024-09-22T00:01:52.300Z","0.0.24":"2024-09-22T00:09:52.324Z","0.0.25":"2024-09-22T00:12:11.159Z","0.0.26":"2024-09-22T00:13:12.140Z","0.0.27":"2024-09-22T00:14:35.515Z","0.0.28":"2024-09-22T00:21:01.742Z","0.0.29":"2024-09-22T07:25:18.055Z","0.0.30":"2024-10-03T21:33:03.893Z","0.0.31":"2024-10-05T00:37:00.699Z","0.0.32":"2024-10-05T02:02:46.987Z","0.0.33":"2024-10-22T21:52:57.789Z","0.0.34":"2025-04-02T01:40:05.398Z","1.0.0":"2025-04-02T15:41:37.251Z","1.0.1":"2025-04-02T15:46:41.510Z","1.0.2":"2025-04-02T15:49:54.645Z","1.0.3":"2025-04-02T15:50:02.355Z","1.0.4":"2025-04-02T15:50:08.764Z","1.0.5":"2025-04-02T15:51:41.399Z","1.0.6":"2025-04-02T15:51:47.786Z","1.0.7":"2025-04-02T15:51:53.738Z","1.0.8":"2025-04-02T15:52:00.778Z","1.0.9":"2025-04-02T15:54:46.588Z","1.0.10":"2025-04-02T16:05:29.910Z","1.0.11":"2025-04-02T16:10:29.758Z","1.0.12":"2025-04-02T16:45:59.642Z","1.0.13":"2025-04-02T16:54:39.419Z","1.0.14":"2025-04-02T17:05:34.462Z","1.0.15":"2025-04-02T17:10:51.374Z","1.0.16":"2025-04-02T17:26:11.805Z","1.0.17":"2025-04-03T22:42:45.149Z","1.0.18":"2025-04-10T22:44:24.929Z","1.0.19":"2025-04-19T15:31:45.553Z","1.0.20":"2025-04-19T16:16:43.377Z","1.0.21":"2025-05-01T00:33:21.053Z","1.0.22":"2025-05-01T00:44:23.352Z","1.0.23":"2025-05-17T01:13:02.276Z","1.0.24":"2025-06-18T22:47:20.728Z","1.0.25":"2025-09-21T09:53:06.841Z"},"_id":"truongdx8-angular-blueprint","name":"truongdx8-angular-blueprint","dist-tags":{"latest":"1.0.25"},"versions":{"1.0.25":{"name":"truongdx8-angular-blueprint","version":"1.0.25","description":"A blueprint for Angular projects","main":"create.js","bin":{"truongdx8-angular-blueprint":"create.js"},"dependencies":{"fs-extra":"^11.0.0"},"scripts":{"release":"npm version patch && git push && npm publish --access public"},"keywords":["angular","template","blueprint"],"author":{"name":"YourName"},"license":"MIT","peerDependencies":{"@angular/cli":"^17.0.0"},"_id":"truongdx8-angular-blueprint@1.0.25","gitHead":"c843d82d75efc557c099103fa8ba34d3273e7596","_nodeVersion":"20.19.5","_npmVersion":"10.8.2","dist":{"integrity":"sha512-10WKY91pC5klmJpP0ztrbn82gbh6K+dCVJRe1AH29StJ0CZjxiR4JC9jmMYG2mOGlZjaGZRuY+tBcT7ifiaUfw==","shasum":"83d96daaca2f57de874f0cf61d25b1f6e8d51b2a","tarball":"https://registry.npmjs.org/truongdx8-angular-blueprint/-/truongdx8-angular-blueprint-1.0.25.tgz","fileCount":69,"unpackedSize":65437,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD1nB1atqmWHYGjH6mXkIDIXO0lffhhNNkPdGXRJBtIGQIgHwCIP6WwuFwhRcSZUN+2Fe3eKifV/NJLKraEDncNF4Y="}]},"_npmUser":{"name":"truongdx8","email":"truonghusk17@gmail.com"},"directories":{},"maintainers":[{"name":"truongdx8","email":"truonghusk17@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/truongdx8-angular-blueprint_1.0.25_1758448386672_0.48425253924756895"},"_hasShrinkwrap":false}},"maintainers":[{"name":"truongdx8","email":"truonghusk17@gmail.com"}],"description":"A blueprint for Angular projects","keywords":["angular","template","blueprint"],"author":{"name":"YourName"},"license":"MIT","readme":"1. Create the blueprint\r\n\t- create a new project: ng new truongdx8-angular-blueprint\r\n\t- Create new create.js file: \r\n\t\t#!/usr/bin/env node\r\n\r\n\t\tconst fs = require('fs-extra');\r\n\t\tconst path = require('path');\r\n\t\tconst exec = require('child_process').exec; // Import exec from child_process\r\n\r\n\t\t// Get the target folder from the command line argument\r\n\t\tconst targetPath = process.argv[2];\r\n\r\n\t\tif (!targetPath) {\r\n\t\t  console.error('Please provide a project name, e.g., truongdx8-angular-blueprint new-project-name');\r\n\t\t  process.exit(1);\r\n\t\t}\r\n\r\n\t\t// Resolve the path to the blueprint (the source folder containing the Angular blueprint files)\r\n\t\tconst sourcePath = path.join(__dirname); // Copy everything in the current directory\r\n\r\n\t\t// Resolve the target directory (where the new project will be created)\r\n\t\tconst destinationPath = path.join(process.cwd(), targetPath);\r\n\r\n\t\t// Copy the blueprint files to the target directory\r\n\t\tfs.copy(sourcePath, destinationPath).then(() => {\r\n\t\t  console.log(`Project successfully created in: ${destinationPath}`);\r\n\r\n\t\t  // Run npm install after copying files\r\n\t\t  exec('npm install', { cwd: destinationPath }, (error, stdout, stderr) => {\r\n\t\t\tif (error) {\r\n\t\t\t  console.error('Error during npm install:', error);\r\n\t\t\t  return;\r\n\t\t\t}\r\n\t\t\tconsole.log(stdout);\r\n\t\t\tconsole.error(stderr);\r\n\t\t  });\r\n\t\t}).catch((err) => {\r\n\t\t  console.error('Error copying the files:', err);\r\n\t\t  process.exit(1);\r\n\t\t});\r\n\r\n\t- Add the create.js file into the scripts of package.json: \r\n\t  \"description\": \"A custom Angular project blueprint\",\r\n\t  \"main\": \"create.js\",\r\n\t  \"bin\": {\r\n\t\t\"truongdx8-angular-blueprint\": \"./create.js\"\r\n\t  },\r\n\t  \"files\": [\r\n\t\t\".vscode\",\r\n\t\t\"src\",\r\n\t\t\".editorconfig\",\r\n\t\t\".gitignore\",\r\n\t\t\"angular.json\",\r\n\t\t\"package-lock.json\",\r\n\t\t\"package.json\",\r\n\t\t\"README.md\",\r\n\t\t\"tsconfig.app.json\",\r\n\t\t\"tsconfig.json\",\r\n\t\t\"tsconfig.spec.json\"\r\n\t  ],\r\n\t\"dependencies\": {\r\n\t\t\"fs-extra\": \"^10.0.0\",\r\n\t  },\r\n\t- test: \r\n\t\t+ node create.js ../innocons\r\n\t- publish: \r\n\t\t+ Change version in package.json\r\n\t\t+ npm publish\r\n\t- using: \r\n\t\t+ npm install -g truongdx8-angular-blueprint\r\n\t\t+ truongdx8-angular-blueprint innocons\r\n\t- check the version: \r\n\t\t+ npm list -g truongdx8-angular-blueprint --depth=0\r\n\t- uninstall: \r\n\t\t+ npm uninstall -g truongdx8-angular-blueprint\r\n\t- remove project: \r\n\t\t+ rmdir /S \"innocons\"\r\n\t\t\r\n2. Start a new project: \r\n\t- Git: \r\n\t\t+ Add gitignore & git\r\n\t\t+ Change branch name from master to main \r\n\t\t\t. git branch -m main\r\n\t\t\t. Create repo without README file\r\n\t\t\t. Push the first commit: \r\n\t\t\t\tgit remote add origin <REMOTE_URL>\r\n\t\t\t\tgit push origin main\r\n\t- Add routing: \r\n\t\t+ Add some first components\r\n\t\t+ Add routing in app-routing.module.ts\r\n\t- content.component: Add header & footer\r\n\t- Add content to each new component\r\n","readmeFilename":"README.md"}