Situatie
Solutie
Mai jos voi descrie pasii pentru a integra Angular5 in Laravel 5.5 folosind angular-cli.
1. Instalare angular/cli global
npm install -g @angular/cli
2. Dupa ce se instaleaza se pune in PATH din windows calea catre ng
La mine de ex. este: C:Program Files (x86)Gitlocalnode_modules@angularclibin
3. Se genereaza o noua aplicatie folosind commanda: ng new nume_app –styles=less
–styles=less –> pentru ca vreau sa folosesc less
Daca se doreste css lipseste acest parametru.
4. Se copiaza dependentele din angular in package.json din Laravel si se ruleaza npm update.
{
"private": true,
"scripts": {
"dev": "npm run development",
"development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
"watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
"watch-poll": "npm run watch -- --watch-poll",
"hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
"prod": "npm run production",
"production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
},
"devDependencies": {
"@angular/cli": "1.5.5",
"@angular/compiler-cli": "^5.0.0",
"@angular/language-service": "^5.0.0",
"@types/jasmine": "~2.5.53",
"@types/jasminewd2": "~2.0.2",
"@types/node": "~6.0.60",
"axios": "^0.16.2",
"bootstrap-sass": "^3.3.7",
"codelyzer": "^4.0.1",
"cross-env": "^5.0.1",
"jasmine-core": "~2.6.2",
"jasmine-spec-reporter": "~4.1.0",
"jquery": "^3.1.1",
"karma": "~1.7.0",
"karma-chrome-launcher": "~2.1.1",
"karma-cli": "~1.0.1",
"karma-coverage-istanbul-reporter": "^1.2.1",
"karma-jasmine": "~1.1.0",
"karma-jasmine-html-reporter": "^0.2.2",
"laravel-mix": "^1.7.2",
"lodash": "^4.17.4",
"protractor": "~5.1.2",
"ts-node": "~3.2.0",
"tslint": "~5.7.0",
"typescript": "~2.4.2",
"vue": "^2.1.10"
},
"dependencies": {
"@angular/animations": "^5.0.0",
"@angular/common": "^5.0.0",
"@angular/compiler": "^5.0.0",
"@angular/core": "^5.0.0",
"@angular/forms": "^5.0.0",
"@angular/http": "^5.0.0",
"@angular/platform-browser": "^5.0.0",
"@angular/platform-browser-dynamic": "^5.0.0",
"@angular/router": "^5.0.0",
"core-js": "^2.4.1",
"rxjs": "^5.5.2",
"zone.js": "^0.8.14"
}
}
5. Se copiaza fisierele: angular-cli.json, tsconfig.json, si tslint.json din aplicatia angular nou creata la pasul 3 in in directorul radacina al proiectului Laravel.
6. Se copiaza directorul src din aplicatia angular creata la pasul3 in proiectul laravel in resources/assets
7. Se modifica fisierul .angular-cli.json din aplicatia Laravel
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"project": {
"name": "oa2angular"
},
"apps": [
{
"root": "resources/assets/src",
"outDir": "public/dist",
"assets": [
"assets",
"favicon.ico"
],
"index": "index.html",
"main": "main.ts",
"polyfills": "polyfills.ts",
"test": "test.ts",
"tsconfig": "tsconfig.app.json",
"testTsconfig": "tsconfig.spec.json",
"prefix": "app",
"styles": [
"styles.less"
],
"scripts": [],
"environmentSource": "environments/environment.ts",
"environments": {
"dev": "environments/environment.ts",
"prod": "environments/environment.prod.ts"
}
}
],
"e2e": {
"protractor": {
"config": "./protractor.conf.js"
}
},
"lint": [
{
"project": "resources/assets/src/tsconfig.app.json",
"exclude": "**/node_modules/**"
},
{
"project": "src/tsconfig.spec.json",
"exclude": "**/node_modules/**"
},
{
"project": "e2e/tsconfig.e2e.json",
"exclude": "**/node_modules/**"
}
],
"test": {
"karma": {
"config": "./karma.conf.js"
}
},
"defaults": {
"styleExt": "less",
"component": {}
}
}
8. Se modifica continutul fisierului: resources/assets/src/tsconfig.app.json ca mai jos.
{
"extends": "../../../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/app",
"baseUrl": "./",
"module": "es2015",
"types": []
},
"exclude": [
"test.ts",
"**/*.spec.ts"
]
}
9. Se ruleaza comanda:
ng build -w
10. Se pun fisierele de mai jos in master blade sau in orice fisier blade. Este importanta sa fie in ordinea de mai jos.
dist/inline.bundle.js dist/polyfills.bundle.js dist/styles.bundle.js dist/vendor.bundle.js dist/main.bundle.js
Leave A Comment?