我需要一些建议。我试图在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();
});
请帮助找出错误!
答案 0 :(得分:1)
问题在于“gulp install”。将它添加到我的package.json的“postinstall”选项后,一切正常。