A blueprint for Angular projects
npm install truongdx8-angular-blueprint1. Create the blueprint
- create a new project: ng new truongdx8-angular-blueprint
- Create new create.js file:
#!/usr/bin/env node
const fs = require('fs-extra');
const path = require('path');
const exec = require('child_process').exec; // Import exec from child_process
// Get the target folder from the command line argument
const targetPath = process.argv[2];
if (!targetPath) {
console.error('Please provide a project name, e.g., truongdx8-angular-blueprint new-project-name');
process.exit(1);
}
// Resolve the path to the blueprint (the source folder containing the Angular blueprint files)
const sourcePath = path.join(__dirname); // Copy everything in the current directory
// Resolve the target directory (where the new project will be created)
const destinationPath = path.join(process.cwd(), targetPath);
// Copy the blueprint files to the target directory
fs.copy(sourcePath, destinationPath).then(() => {
console.log(Project successfully created in: ${destinationPath});
// Run npm install after copying files
exec('npm install', { cwd: destinationPath }, (error, stdout, stderr) => {
if (error) {
console.error('Error during npm install:', error);
return;
}
console.log(stdout);
console.error(stderr);
});
}).catch((err) => {
console.error('Error copying the files:', err);
process.exit(1);
});
- Add the create.js file into the scripts of package.json:
"description": "A custom Angular project blueprint",
"main": "create.js",
"bin": {
"truongdx8-angular-blueprint": "./create.js"
},
"files": [
".vscode",
"src",
".editorconfig",
".gitignore",
"angular.json",
"package-lock.json",
"package.json",
"README.md",
"tsconfig.app.json",
"tsconfig.json",
"tsconfig.spec.json"
],
"dependencies": {
"fs-extra": "^10.0.0",
},
- test:
+ node create.js ../innocons
- publish:
+ Change version in package.json
+ npm publish
- using:
+ npm install -g truongdx8-angular-blueprint
+ truongdx8-angular-blueprint innocons
- check the version:
+ npm list -g truongdx8-angular-blueprint --depth=0
- uninstall:
+ npm uninstall -g truongdx8-angular-blueprint
- remove project:
+ rmdir /S "innocons"
2. Start a new project:
- Git:
+ Add gitignore & git
+ Change branch name from master to main
. git branch -m main
. Create repo without README file
. Push the first commit:
git remote add origin
git push origin main
- Add routing:
+ Add some first components
+ Add routing in app-routing.module.ts
- content.component: Add header & footer
- Add content to each new component