Bonjour à tous,
Mon taf est en train de basculer sur un nouvel outil de gestion documentaire avec un frontend angular/nodejs et un backend en Django (n'hésitez pas à me dire si j'ai déjà dit n'importe quoi, tout ceci est assez nouveau pour moi ^^).
En l'absence des collègues ayant monté la frontend / backend, je voulais commencer à expérimenter avec la frontend pour commencer à prototyper des idées de rajout ( de la visualisation de pdf intégrée au navigateur au lieu d'un DL au moment de cliquer vers un lien pointant vers un pdf, ce genre de truc ...).
Le soucis : ng build exécuté depuis le sous-répertoire du répertoire git de la frontend cloné (MyCoolProject/frontend/angular) ne génère pas les fichiers statiques permettant d'instancier la frontend.
Il suffirait normalement d'exécuter python manage.py runserver 8000 depuis la racine du répertoire pour démarrer le serveur et pouvoir ainsi y accéder depuis l'URL affichée dans le terminal (pour un accès purement local)
manage.py :
Code:
def main():
"""Run administrative tasks."""
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'django_site.settings.local')
try:
from django.core.management import execute_from_command_line
except ImportError as exc:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
) from exc
execute_from_command_line(sys.argv)
if __name__ == '__main__':
main()
Code:
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
September 09, 2021 - 14:53:18
Django version 3.2.7, using settings 'django_site.settings.local'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
[09/Sep/2021 14:53:24] "GET / HTTP/1.1" 200 10999
[09/Sep/2021 14:53:24] "GET /staticfiles/frontend/runtime.js HTTP/1.1" 404 1826
[09/Sep/2021 14:53:24] "GET /staticfiles/frontend/styles.css HTTP/1.1" 404 1826
[09/Sep/2021 14:53:24] "GET /staticfiles/debug_toolbar/css/toolbar.css HTTP/1.1" 304 0
[09/Sep/2021 14:53:24] "GET /staticfiles/frontend/polyfills.js HTTP/1.1" 404 1832
[09/Sep/2021 14:53:24] "GET /staticfiles/debug_toolbar/js/toolbar.js HTTP/1.1" 304 0
[09/Sep/2021 14:53:24] "GET /staticfiles/frontend/vendor.js HTTP/1.1" 404 1823
[09/Sep/2021 14:53:24] "GET /staticfiles/frontend/main.js HTTP/1.1" 404 1817
[09/Sep/2021 14:53:24] "GET /staticfiles/debug_toolbar/css/print.css HTTP/1.1" 304 0
[09/Sep/2021 14:53:24] "GET /staticfiles/debug_toolbar/js/utils.js HTTP/1.1" 304 0
Not Found: /favicon.ico
[09/Sep/2021 14:53:24] "GET /favicon.ico HTTP/1.1" 404 12594
Comme vous pouvez le voir, erreur 404 pour tous les composants du dossier staticfiles/frontend. Et pour cause, ce dernier n'a pas été créé (et donc n'a pas été collecté avec python manage.py collecstatic).
Je suis en train de tourner résolument chèvre, d'autant plus que ng build --verbose ne renvoie absolument rien (pas d'erreur ou de warning, rien). Il génère bien les dossiers statiques admin, debug_toolbar et rest_framework , mais point de trace de frontend.
Ci-dessous, le contenu de angular.js et le résultat de ng --version
A votre bon coeur m'sieur dames, send halp
Code:
{
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"version": 1,
"newProjectRoot": "projects",
"projects": {
"MyCoolProject": {
"projectType": "application",
"schematics": {},
"root": "",
"sourceRoot": "src",
"prefix": "app",
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"options": {
"outputPath": "../static/frontend/",
"index": "src/index.html",
"main": "src/main.ts",
"verbose" : true,
"polyfills": "src/polyfills.ts",
"tsConfig": "tsconfig.app.json",
"aot": true,
"assets": [
"src/favicon.ico",
"src/assets"
],
"styles": [
"./node_modules/@angular/material/prebuilt-themes/indigo-pink.css",
"src/styles.css"
],
"scripts": []
},
"configurations": {
"production": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.prod.ts"
}
],
"optimization": true,
"outputHashing": "all",
"sourceMap": false,
"namedChunks": false,
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": true,
"budgets": [
{
"type": "initial",
"maximumWarning": "2mb",
"maximumError": "5mb"
},
{
"type": "anyComponentStyle",
"maximumWarning": "6kb",
"maximumError": "10kb"
}
]
}
}
},
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "MyCoolProject:build",
"proxyConfig": "src/proxy.conf.json"
},
"configurations": {
"production": {
"browserTarget": "MyCoolProject:build:production"
}
}
},
"extract-i18n": {
"builder": "@angular-devkit/build-angular:extract-i18n",
"options": {
"browserTarget": "MyCoolProject:build"
}
},
"test": {
"builder": "@angular-devkit/build-angular:karma",
"options": {
"main": "src/test.ts",
"polyfills": "src/polyfills.ts",
"tsConfig": "tsconfig.spec.json",
"karmaConfig": "karma.conf.js",
"assets": [
"src/favicon.ico",
"src/assets"
],
"styles": [
"./node_modules/@angular/material/prebuilt-themes/indigo-pink.css",
"src/styles.css"
],
"scripts": []
}
},
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"options": {
"tsConfig": [
"tsconfig.app.json",
"tsconfig.spec.json",
"e2e/tsconfig.json"
],
"exclude": [
"**/node_modules/**"
]
}
},
"e2e": {
"builder": "@angular-devkit/build-angular:protractor",
"options": {
"protractorConfig": "e2e/protractor.conf.js",
"devServerTarget": "MyCoolProject:serve"
},
"configurations": {
"production": {
"devServerTarget": "MyCoolProject:serve:production"
}
}
}
}
}
},
"defaultProject": "MyCoolProject"
}
Code:
_ _ ____ _ ___
/ \ _ __ __ _ _ _| | __ _ _ __ / ___| | |_ _|
/ △ \ | '_ \ / _` | | | | |/ _` | '__| | | | | | |
/ ___ \| | | | (_| | |_| | | (_| | | | |___| |___ | |
/_/ \_\_| |_|\__, |\__,_|_|\__,_|_| \____|_____|___|
|___/
Angular CLI: 12.2.4
Node: 14.17.6
Package Manager: npm 6.14.15
OS: linux x64
Angular:
...
Package Version
------------------------------------------------------
@angular-devkit/architect 0.1202.4
@angular-devkit/core 12.2.4
@angular-devkit/schematics 12.2.4
@schematics/angular 12.2.4