2016-03-18 153 views
0

我已将我的角度2应用程序推送到heroku,但加载时间过长。应用程序需要很长时间才能加载生产

有没有办法捆绑一切了,因为现在我有这个在我的index.html

<html> 
<head> 
    <base href="/"> 
    <title>Angular 2 Arc</title> 
    <link rel="icon" type="image/x-icon" href="favicon.ico"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
</head> 

<body> 
    <ng2-app>Loading...</ng2-app> 
    <!-- Load Angular 2 Core libraries --> 
    <script src="es6-shim/es6-shim.min.js"></script> 
    <script src="systemjs/dist/system-polyfills.js"></script> 
    <script src="angular2/bundles/angular2-polyfills.js"></script> 
    <script src="systemjs/dist/system.src.js"></script> 
    <script src="rxjs/bundles/Rx.js"></script> 
    <script src="angular2/bundles/angular2.dev.js"></script> 
    <script src="angular2/bundles/router.dev.js"></script> 
    <script src="angular2/bundles/http.js"></script> 
    <!-- Load Bootstrap and Jquery --> 
    <script src="lib/jquery/jquery.min.js" charset="utf-8"></script> 
    <script src="lib/bootstrap/js/bootstrap.min.js" charset="utf-8"></script> 
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/github-fork-ribbon-css/0.2.0/gh-fork-ribbon.min.css" /> 
    <link rel="stylesheet" href="/lib/bootstrap/css/bootstrap.min.css" media="screen" title="no title" charset="utf-8"> 
    <link rel="stylesheet" href="assets/css/app.css"> 
    <!-- Configure SystemJS --> 
    <script> 
     System.config({ 
      defaultJSExtensions: true, 
      packages: { 
       boot: { 
        format: 'register', 
        defaultExtension: 'js' 
       } 
      } 
     }); 
     System.import('js/boot') 
       .then(null, console.error.bind(console)); 
    </script> 
</body> 
</html> 

我的设置是Express服务器和系统的JS。

server.js

var express = require('express'); 
var bodyParser = require('body-parser') 
var fs = require("fs"); 

// initialize express 
var app = express(); 

// declare build and node_module paths 

app.use(express.static("./build")); 
app.use(express.static("./node_modules/")); 

// parse request body 
app.use(bodyParser.urlencoded({ extended: false })) 
app.use(bodyParser.json()) 

var body; 
// route to send json data from angular 2 
app.post('/export', function(req, res){ 
    body = req.body; 
    res.json("Got the data!"); 

    fs.writeFile('parameters.json', JSON.stringify({body}, null, 4), function (err) { 
    if (err) return console.log(err); 
    console.log('Data json file created!'); 
    }); 
}); 


// start server 
app.listen(process.env.PORT || "3001", function(){ 
    console.log("Express server running on localhost:3001"); 
}); 
+0

看看systemjs建设者;通过systemjs加载的任何东西都可以绑定到一个自执行的脚本中(除了你自己的脚本之外,还包含所有的systemjs依赖)。 –

+0

你可以分别使用webpack和systemjs来看看这两种流行的种子:[angular2-webpack-starter](https://github.com/AngularClass/angular2-webpack-starter),[angular2-seed](https: //github.com/mgechev/angular2-seed)。 –

回答

1

如果其免费的Heroku层其可能是因为它的睡眠,当你申请了吗?

您可以缩小和连接您的js文件以减少加载时间。

这里是如何做到这一点与一饮而尽任务指南: https://caveofcode.com/2016/03/gulp-tasks-for-minification-and-concatenation-of-dependencies-in-angularjs/

+0

什么似乎需要很多时间是system.src.js由于某种原因它使500多个请求。 –

+0

哇,这很多。我只使用.net软件包和gulp任务来完成这件事。希望你能理清它! –

相关问题