Join the Stack Overflow Community
Stack Overflow is a community of 6.9 million programmers, just like you, helping each other.
Join them; it only takes a minute:
Sign up

I have created n new angular app using angular-cli.

I completed the app and preview it using ng-serve, it is working perfectly.

After that I used ng build --prod, that generates the 'dist' folder. When I put that folder in xampp to run, it is not working. I found that there is no *.js files, which should be in there after *.ts -> *.js conversion (i suppose).

I have attached the screenshot, in which on left side it is showing the src folder having all .ts files, On middle it is showing the 'dist' folder and browser screenshot.

Please guide me how can I generate fully working app from angular-cli, which I can run in my xampp server. Screenshot

share|improve this question
    
What version of angular-cli? Are you using --mobile and angular-universal? – Splaktar Jun 22 '16 at 5:31

Well I was also looking for a solution like you. What I have come across is I am sharing with you -

you can use http-server to serve your app . To install http-server

npm install http-server -g

and after going to your project folder

http-server ./dist 

it will serve all the files in your folder. you can check the terminal what ip-address and port you can use to access the application. Now open up your browser and type

ip-adress:port/index.html

Hope it will help you :)

share|improve this answer
    
works, but first with angular cli you must build your project using ng build – Nather Webber Oct 26 '16 at 12:03

For anyone looking for an answer for IIS hosting...

Build your project

ng build --prod

Copy all contents of the ./dist folder into the root folder of your website maintaining the folder structure within ./dist (ie - don't move anything around). Using the Beta-18 version of the angular-cli all assets (images in my case) were copied to ./dist/assets during the build and were referenced correctly in their containing components.

share|improve this answer
1  
So you deploy the .gz and .map files as well? – EdL Nov 8 '16 at 17:14
1  
On IIS you don't have to deploy the .gz files, just configure IIS to use dynamic compression, you can save a lot of bytes going over the wire. The .map files are source maps. Think of them as the .pdb's of the javascript world, so yes, if you want to debug on the server you're deploying to. Uglifying the JS makes debugging really hard (read:impossible) without them. – Mike Devenney Nov 8 '16 at 19:27

Here's an example with Heroku:

  1. Create a Heroku account and install the CLI

  2. Move the angular-cli dep to the dependencies in package.json (so that it gets installed when you push to Heroku.

  3. Add a postinstall script that will run ng build when the code gets pushed to Heroku. Also add a start command for a Node server that will be created in the following step. This will place the static files for the app in a dist directory on the server and start the app afterward.

"scripts": {
  // ...
  "start": "node server.js",
  "postinstall": "ng build --aot -prod"
}
  1. Create an Express server to serve the app.
// server.js
const express = require('express');
const app = express();
// Run the app by serving the static files
// in the dist directory
app.use(express.static(__dirname + '/dist'));
// Start the app by listening on the default
// Heroku port
app.listen(process.env.PORT || 8080);
  1. Create a Heroku remote and push to depoy the app.
heroku create
git add .
git commit -m "first deploy"
git push heroku master

Here's a quick writeup I did that has more detail, including how to force requests to use HTTPS and how to handle PathLocationStrategy :)

share|improve this answer

Use ng build with the --bh flag

Sets base tag href to /myUrl/ in your index.html:

ng build --base-href /myUrl/
ng build --bh /myUrl/
share|improve this answer

Check your index.html file and edit this line

<base href="/[your-project-folder-name]/dist/"> 

Your content should load properly. You can then load styles globally

You should set base href as recommended by Johan

ng build --prod --bh /[your-project-folder-name]/dist/
share|improve this answer
    
Don't edit index.html, use ng build/serve with the --bh parameter – Johan Blomgren Dec 17 '16 at 11:26
    
Oh Yes thanks, I believe the base href is the solution to his question. ng build --prod --bh /[your-project-folder-name]/dist/ – Babalola Tiwa Dec 17 '16 at 16:09

I'm using the latest version of the Angular-CLI (at the time of this reply its 1.0.0Beta-18)

The way this version works is it puts everything in bundle files and it calls them in the index.html file. After that you have to copy your assets over to the dist folder (for some reason it does not do that). Finally, double check your base href make sure its set to what it needs to be set to and then it should work. That's what worked for me and I've tested on both Apache and Node.

share|improve this answer

I am currently using Angular-CLI 1.0.0-beta.32.3

in the root directory of your project run npm install http-server -g

after successful installation run ng build --prod

upon successful build run http-server ./dist

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.