2017-09-18 2 views
0

Je l'intention de déployer mon projet production au sein firebase:angulaire: Exécution de l'application de la production et de déployer à Firebase

je l'ai fait:

1. Course à pied: firebase login

2. course à pied: firebase init (i ensemble projet Levage)

3. Connectez-vous pour Firebase

4. Course à pied: ng build --env=prod

(depuis l'exécution ng build --prod échoue lancer cette erreur:

ERROR in ./src/main.ts Module not found: Error: Can't resolve './$$_gendir/app/app.module.ngfactory' in '/home/firas/Bureau/Miraldev-Angular-test/src' @ ./src/main.ts 4:0-74 @ multi ./src/main.ts

)

résultant dist/ dossier contai ns le index.html qui est censé exécuter localement mon application:

index.html:

<!doctype html> 
<html lang="en"> 
<head> 
    <meta charset="utf-8"> 
    <title>MiraldevAngularTest</title> 
    <base href="/"> 

    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <link rel="icon" type="image/x-icon" href="favicon.ico"> 
    </head> 
<body> 
    <app-root></app-root> 
    <script src="https://www.gstatic.com/firebasejs/4.3.1/firebase.js"></script> 
    <script> 
    // Initialize Firebase 
    var config = { 
     apiKey: "AIzaSyC0m1wWVYokXRUrAQmFKwukdvAw3aowEnY", 
     authDomain: "miraldev-test.firebaseapp.com", 
     databaseURL: "https://miraldev-test.firebaseio.com", 
     projectId: "miraldev-test", 
     storageBucket: "miraldev-test.appspot.com", 
     messagingSenderId: "821288466474" 
    }; 
    firebase.initializeApp(config); 
    </script> 
<script type="text/javascript" src="inline.bundle.js"></script><script type="text/javascript" src="polyfills.bundle.js"></script><script type="text/javascript" src="scripts.bundle.js"></script><script type="text/javascript" src="styles.bundle.js"></script><script type="text/javascript" src="vendor.bundle.js"></script><script type="text/javascript" src="main.bundle.js"></script></body> 
</html> 

mais quand je le lance en chrome, il renvoie des erreurs indiquant l'absence de ces fichiers: inline.bundle.js, main.bundle.js, polyfills.bundle.js ...) même s'ils sont tous présents dans le dossier dist/, mais il semble ne pas les voir ou les exécuter.

instantané de la console de index.html sous chrome: enter image description here

Toutes les idées pour exécuter mon application de production ??

+0

pouvez-vous essayez le serv l'application du serveur http et non du disque?Quel est le chemin dans votre navigateur lorsque vous ouvrez index.html? Je m'attendrais au même chemin pour 'inline.bundle.js' etc. –

Répondre

0

J'utilise script dans package.json:

"scripts": { 
    "deploy:test": "ng build --prod && firebase deploy --project test" 
    "deploy:prod": "ng build --prod && firebase deploy --project prod" 
} 

Il construit l'application (comme le vôtre) et de téléchargements Firebase d'hébergement. J'ai des environnements de production et de mise en scène. Pour firebase de configuration d'utiliser l'hébergement firebase.json et firebaserc configs:

firebaserc:

{ 
    "projects": { 
    "prod": "myproject-prod", 
    "test": "myproject-test" 
    } 
} 

firebase.json:

{ 
    "database": { 
    "rules": "database.rules.json" 
    }, 
    "hosting": { 
    "public": "dist", 
    "rewrites": [ 
     { 
     "source": "**", 
     "destination": "/index.html" 
     } 
    ], 
    "headers": [ 
     { 
     ... various security headers 
     } 
    ], 
    "ignore": [ 
     "firebase.json", 
     "**/.*", 
     "**/node_modules/**" 
    ] 
    } 
} 

En database.rules.json j'ai mes règles de sécurité pour la base de données:

{ 
    "rules": { 
    ".read":true, 
    ".write":true 
    } 
}