2016-11-15 47 views
1

我想在这里组织我的ExpressJS应用程序like the accepted answer。 (我不使用子域名,只是子文件夹)目前我的文件夹结构是这样如何在AWS CodePipeline部署期间安装子文件夹的依赖关系?

根(拥有自己的package.json expressjs项目)
--api(有自己的package.json expressjs项目)
--panel(单页的应用程序)
--site(单页的应用程序)
的package.json(根文件夹的package.json)
app.js(根文件夹app.js)

我在根级别的app.js是像

express() 
.use(helmet()) 
.use(compression()) 
.use('/api', require('./api/app').app) 
.use('/panel', express.static('./panel')) 
.use('/', express.static('./site')) 
.listen(port); 

我在API项目app.js结束与

exports.app = app; 

我使用Github上存储我的项目,CodePipeline部署到弹性魔豆。但它不起作用,EB实例是红色的。这是从日志:(CORS是API项目的依赖)

Error: Cannot find module 'cors' 
    at Function.Module._resolveFilename (module.js:469:15) 
    at Function.Module._load (module.js:417:25) 
    at Module.require (module.js:497:17) 
    at require (internal/module.js:20:19) 
    at Object.<anonymous> (/var/app/current/api/app.js:3:18) 
    at Module._compile (module.js:570:32) 
    at Object.Module._extensions..js (module.js:579:10) 
    at Module.load (module.js:487:32) 
    at tryModuleLoad (module.js:446:12) 
    at Function.Module._load (module.js:438:3) 
module.js:471 
    throw err; 

所以我的问题是这样的,我怎么能CodePipeline在安装过程中的子文件夹的依赖性部署?

回答

1

通过添加解决:在它

"scripts": { 
    ... 
    "postinstall": "cd api && npm install" 
}, 

并用

不安全烫发一个.npmrc文件=真