无法在heroku上运行requirejs

时间:2014-05-07 23:12:01

标签: node.js heroku requirejs

我需要一些建议。我试图在heroku上使用nodejs + requirejs。 我的项目结构很常见:

\
|-\app
|-\build
|-\config
|-\node-modules
|-\public
|
|-server.js
|-etc...

构建文件夹是“gulp build”的结果。本地一切都很好,但当我尝试在heroku上运行我的应用程序时,我发现requirejs的内容只是复制了我的索引页面模板:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>myapp</title>
    <meta charset="utf-8">
    <meta content="IE=edge" http-equiv="X-UA-Compatible">
    <link href="/css/style.css" rel="stylesheet">
</head>
<body>
    <div id="header"></div>
    <div id="main" class="container"></div>
    <div id="footer"></div>
    <div id="modal"></div>
    <script type="text/javascript" data-main="js/main" src="/js/vendors/require.js">
        <!DOCTYPE html>
        <html lang="en">
        <head>
            <title>myapp</title>
            <meta charset="utf-8">
            <meta http-equiv="X-UA-Compatible" content="IE=edge">
            <link rel="stylesheet" href="/css/style.css">
        </head>
        <body>
            <div id="header"></div>
            <div id="main" class="container"></div>
            <div id="footer"></div>
            <div id="modal"></div>
            <script src="/js/vendors/require.js" data-main="js/main" type="text/javascript"></script>
        </body>
        </html>
    </script>
</body>
</html>

js / main内容为requirejs和stats app配置了一些。

require.config({
  basePath: '/js/',

  paths: {
    jquery: 'vendors/jquery',
    bootstrap: 'vendors/bootstrap',
    underscore: 'vendors/lodash.underscore',
    backbone: 'vendors/backbone',
    marionette: 'vendors/backbone.marionette',
    'backbone.associations': 'vendors/backbone-associations',
    'backbone.stickit': 'vendors/backbone.stickit',
    'localstorage': 'vendors/backbone.localStorage',
    hbs: 'vendors/hbs',
    handlebars: 'vendors/handlebars',
    marrionette_hbs: 'lib/marionette.handlebars',
    'bootstrap-multiselect': 'vendors/bootstrap-multiselect',
    'jquery.cookie': 'vendors/jquery.cookie'
  },

  shim: {
    underscore: {
      exports: '_'
    },

    backbone: {
      exports: 'Backbone',
      deps: ['jquery', 'underscore']
    },

    marionette: {
      exports: 'Marionette',
      deps: ['backbone']
    },

    marrionette_hbs: {
      exports: 'marrionette_hbs',
      deps: ['marionette', 'handlebars']
    },

    bootstrap: {
      exports: 'bootstrap',
      deps: ['jquery']
    },

    'bootstrap-multiselect': ['bootstrap'],

    'backbone.associations': ['backbone'],

    'backbone.stickit': ['backbone']

  },

  deps: ['jquery', 'bootstrap', 'marrionette_hbs', 'hbs']

});

require(['app'], function (App, hbs) {
  'use strict';

  App.start();

});

请帮助找出错误!

1 个答案:

答案 0 :(得分:1)

问题在于“gulp install”。将它添加到我的package.json的“postinstall”选项后,一切正常。