如何在 AWS CodePipeline 部署期间为子文件夹安装依赖项?
How to install dependencies for subfolder during AWS CodePipeline deploy?
我正在尝试组织我的 ExpressJS 应用程序,like the accepted answer 在这里。 (我不使用子域,只使用子文件夹)目前我的文件夹结构是这样的
root (expressjs project with its own package.json)
--api (expressjs project with its own package.json)
--panel (single page app)
--site (single page app)
package.json (root folders package.json)
app.js (root folders 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);
我的 app.js 在 api 项目结束于
exports.app = app;
我使用 Github 存储我的项目和 CodePipeline 以部署到 Elastic Beanstalk。但是不行,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 部署期间安装子文件夹的依赖项?
通过添加解决:
"scripts": {
...
"postinstall": "cd api && npm install"
},
和一个带有
的 .npmrc 文件
unsafe-perm = true
其中
我正在尝试组织我的 ExpressJS 应用程序,like the accepted answer 在这里。 (我不使用子域,只使用子文件夹)目前我的文件夹结构是这样的
root (expressjs project with its own package.json)
--api (expressjs project with its own package.json)
--panel (single page app)
--site (single page app)
package.json (root folders package.json)
app.js (root folders 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);
我的 app.js 在 api 项目结束于
exports.app = app;
我使用 Github 存储我的项目和 CodePipeline 以部署到 Elastic Beanstalk。但是不行,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 部署期间安装子文件夹的依赖项?
通过添加解决:
"scripts": {
...
"postinstall": "cd api && npm install"
},
和一个带有
的 .npmrc 文件unsafe-perm = true
其中