如何使用 AWS CodeBuild npm 安装所有函数目录
How to npm install all functions directories with AWS CodeBuild
我的后端使用 AWS Cloud Formation,项目文件结构如下:
| template.yaml
| lambda-functions
| ---- function-1
|----function.js
|----package.json
| ---- function-2
|----function.js
|----package.json
在 AWS 构建规范中,我执行 aws cloudformation package
后跟 aws cloudformation deploy
。
如果我想让它工作,我需要对 function-1
和 function-2
子文件夹执行 npm install
并将 node_modules
子文件夹提交到 git 回购.
如何 运行 npm 直接从构建规范安装到我的所有子文件夹上,这样我就不必提交 node_modules 个子文件夹?
你可以使用 lerna.
如果你的包之间存在依赖关系,Lerna 也会帮助你。
基本上你只需要在你的根目录中添加一个 lerna.json 并使用 lerna 安装你的依赖项。
lerna.json:
{
"lerna": "2.11.0",
"packages": [
"lambda-functions/*"
],
"version": "0.0.0"
}
我假设您使用的是 AWS CodeBuild,所以这里有一些关于如何配置安装阶段的示例:
buildspec.yml 与 lerna:
version: 0.2
phases:
install:
commands:
- echo Entered the install phase...
- npm install --global lerna
- lerna bootstrap --concurrency=1 -- --production
...
lerna bootstrap
将为每个包创建 node_modules
。
如果你不想使用lerna,你可以为每个包添加一个命令。类似于:
buildspec.yml 用纱线:
version: 0.2
phases:
install:
commands:
- echo Entered the install phase...
- npm install --global yarn
- yarn --cwd lambda-functions/function-1 --production install
- yarn --cwd lambda-functions/function-2 --production install
- yarn --cwd lambda-functions/function-3 --production install
...
或:
buildspec.yml 与 npm:
version: 0.2
phases:
install:
commands:
- echo Entered the install phase...
- cd lambda-functions/function-1 && npm install --production
- cd lambda-functions/function-2 && npm install --production
- cd lambda-functions/function-3 && npm install --production
...
我的后端使用 AWS Cloud Formation,项目文件结构如下:
| template.yaml
| lambda-functions
| ---- function-1
|----function.js
|----package.json
| ---- function-2
|----function.js
|----package.json
在 AWS 构建规范中,我执行 aws cloudformation package
后跟 aws cloudformation deploy
。
如果我想让它工作,我需要对 function-1
和 function-2
子文件夹执行 npm install
并将 node_modules
子文件夹提交到 git 回购.
如何 运行 npm 直接从构建规范安装到我的所有子文件夹上,这样我就不必提交 node_modules 个子文件夹?
你可以使用 lerna.
如果你的包之间存在依赖关系,Lerna 也会帮助你。
基本上你只需要在你的根目录中添加一个 lerna.json 并使用 lerna 安装你的依赖项。
lerna.json:
{
"lerna": "2.11.0",
"packages": [
"lambda-functions/*"
],
"version": "0.0.0"
}
我假设您使用的是 AWS CodeBuild,所以这里有一些关于如何配置安装阶段的示例:
buildspec.yml 与 lerna:
version: 0.2
phases:
install:
commands:
- echo Entered the install phase...
- npm install --global lerna
- lerna bootstrap --concurrency=1 -- --production
...
lerna bootstrap
将为每个包创建 node_modules
。
如果你不想使用lerna,你可以为每个包添加一个命令。类似于:
buildspec.yml 用纱线:
version: 0.2
phases:
install:
commands:
- echo Entered the install phase...
- npm install --global yarn
- yarn --cwd lambda-functions/function-1 --production install
- yarn --cwd lambda-functions/function-2 --production install
- yarn --cwd lambda-functions/function-3 --production install
...
或:
buildspec.yml 与 npm:
version: 0.2
phases:
install:
commands:
- echo Entered the install phase...
- cd lambda-functions/function-1 && npm install --production
- cd lambda-functions/function-2 && npm install --production
- cd lambda-functions/function-3 && npm install --production
...