如何在express子应用程序中加载角度2文件

时间:2016-11-03 00:04:55

标签: node.js express angular heroku deployment

我有一个使用express的节点应用程序。我使用express-generator来生成默认的快速设置。

我创建了两个子应用程序,我将称之为" ang"和" admin" (也使用快速发电机)。这些子应用程序包含在我将调用的另一个快速应用程序中,#34; host"。

" Ang" - 处理angular2应用程序及其各自的api(api用express表示)

" Admin" - 这允许网站所有者将新内容添加到api与之交互的数据库中。

这在我的本地开发环境中运行良好,但是当我将其推送到Heroku时,某些模块没有被安装(即," admin" app缺少特定于它的模块)并且构建失败。

从子应用程序package.jsons(来自快递子应用程序以及ang2 package.json)复制相关依赖项后,我能够运行网站的管理部分,但无法运行&#34 ; ANG"因为它在搜索node_modules时会遇到404错误。

"托管app.js"

/*required modules*/
var app = express();

/*Boths paths reference different sub apps*/
var ang = require('./path/to/app.js');
var admin = require('./path/to/app.js');

/*Routes each app uses*/
app.use('/base', admin);
app.use('/', ang);

module.exports = app;

如何路由到" host"中包含的节点模块?应用?

1 个答案:

答案 0 :(得分:0)

因此,从我的localhost中删除node_modules并尝试构建它后,我理解为什么我无法通过更改ang2应用程序的index.html中的路径来找到这些包。

我的angular2应用程序包含在静态目录中。所以,我需要利用节点包管理器(npm)的强大功能。所以我修改了我的" host"的package.json。应用程序。我改变了"脚本"领域来自:

"scripts": {
  "start": "node ./bin/www"
}

"scripts": {
  "start": "node ./bin/www",
  "postinstall": " cd /path/from/host/to/ang/client_directory && npm install"
},

安装主机应用程序包.json" postinstall"命令运行。有关详细信息,请参阅npm's scripts documentation。这将cd放入目录,然后从那里运行npm install,它将找到angular2 package.json。

另请:如果您只是正确设置安装后字段,我不确定是否需要从其他package.json文件移动所有依赖项。

希望这能为您省去一些麻烦!