node_modules 在 AWS CodeBuild 期间使用 npm install 时未创建目录
node_modules directory not created when using npm install during AWS CodeBuild
在 CodeBuild 完成并且我通过 ssh 进入我的环境后,我可以看到服务器应用程序的依赖项已安装并在其 node_modules 中找到。但是在客户端目录中,没有 node_modules 也没有构建目录。在构建日志中,npm install --prefix client --production
似乎 运行 正常。
我的问题几乎与 this one 完全相同,除了它是 node_modules 和构建文件夹。
构建规范文件有问题吗?这是(编辑 4:已更新)
version: 0.2
phases:
install:
commands:
# upgrade AWS CLI
- pip install --upgrade awscli
# install Node 12
- curl -sL https://deb.nodesource.com/setup_12.x | bash -
- apt install nodejs
pre_build:
commands:
# install server dependencies
- npm install
build:
commands:
# install client dependencies and build static files
- npm install --prefix client && npm run build --prefix client
post_build:
commands:
- ls -la
- ls client -la
artifacts:
files:
- '**/*'
编辑 1:这里是 npm install --prefix client
:
的代码构建日志显示的示例
Running command npm install --prefix client --production
> core-js@2.6.11 postinstall /codebuild/output/src133125934/src/client/node_modules/babel-runtime/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"
对于npm run build -prefix client
:
[Container] 2020/07/02 00:24:06 Entering phase BUILD
[Container] 2020/07/02 00:24:06 Running command npm run build --prefix client
> client@0.1.0 build /codebuild/output/src133125934/src/client
> react-scripts build
Creating an optimized production build...
Compiled successfully.
File sizes after gzip:
144.95 KB build/static/js/2.d25271aa.chunk.js
23.22 KB build/static/css/main.fe6e5073.chunk.css
6.38 KB build/static/js/main.8e99a285.chunk.js
774 B build/static/js/runtime-main.f63e6028.js
编辑 2:构建后使用 ls 查看目录:
[Container] 2020/07/02 01:11:24 Entering phase POST_BUILD
[Container] 2020/07/02 01:11:24 Running command ls -la
total 136
drwxr-xr-x 12 root root 4096 Jul 2 01:09 .
drwxr-xr-x 3 root root 4096 Jul 2 01:09 ..
drwxr-xr-x 2 root root 4096 Jul 2 01:09 .ebextensions
-rw-rw-r-- 1 root root 130 Jul 2 01:08 .gitignore
-rw-rw-r-- 1 root root 16 Jul 2 01:08 .npmrc
-rw-rw-r-- 1 root root 34 Jul 2 01:08 README.md
-rw-rw-r-- 1 root root 1737 Jul 2 01:08 app.js
drwxr-xr-x 2 root root 4096 Jul 2 01:09 bin
-rw-rw-r-- 1 root root 566 Jul 2 01:08 buildspec.yml
drwxr-xr-x 6 root root 4096 Jul 2 01:10 client
drwxr-xr-x 2 root root 4096 Jul 2 01:09 config
drwxr-xr-x 2 root root 4096 Jul 2 01:09 graphql
drwxr-xr-x 2 root root 4096 Jul 2 01:09 models
drwxr-xr-x 197 root root 4096 Jul 2 01:10 node_modules
-rw-rw-r-- 1 root root 63888 Jul 2 01:08 package-lock.json
-rw-rw-r-- 1 root root 814 Jul 2 01:08 package.json
drwxr-xr-x 2 root root 4096 Jul 2 01:09 routes
drwxr-xr-x 2 root root 4096 Jul 2 01:09 services
drwxr-xr-x 2 root root 4096 Jul 2 01:09 views
[Container] 2020/07/02 01:11:24 Running command ls client -la
total 748
drwxr-xr-x 6 root root 4096 Jul 2 01:10 .
drwxr-xr-x 12 root root 4096 Jul 2 01:09 ..
drwxr-xr-x 3 root root 4096 Jul 2 01:11 build
drwxr-xr-x 1081 root root 36864 Jul 2 01:10 node_modules
-rw-rw-r-- 1 root root 699332 Jul 2 01:08 package-lock.json
-rw-rw-r-- 1 root root 1212 Jul 2 01:08 package.json
drwxr-xr-x 2 root root 4096 Jul 2 01:09 public
drwxr-xr-x 8 root root 4096 Jul 2 01:09 src
编辑 3:验证目录创建后,我通过 ssh 进入 beantalk (ec2) 实例以检查它们是否已部署,但这是我得到的:
$ cd /var/app/current
$ ls
app.js
bin
buildspec.yml
client
config
graphql
models
node_modules
package.json
package-lock.json
Procfile
README.md
routes
services
views
$ cd client
$ ls
package.json
package-lock.json
public
src
build 和 modules 目录没有部署到 beanstalk 中。
问题是 CodePipeline 的 Deploy 阶段接收的是 Source 输出,而不是 Build 输出。将 Deploy 输入设置为 Build 输出修复了它!
在 CodeBuild 完成并且我通过 ssh 进入我的环境后,我可以看到服务器应用程序的依赖项已安装并在其 node_modules 中找到。但是在客户端目录中,没有 node_modules 也没有构建目录。在构建日志中,npm install --prefix client --production
似乎 运行 正常。
我的问题几乎与 this one 完全相同,除了它是 node_modules 和构建文件夹。
构建规范文件有问题吗?这是(编辑 4:已更新)
version: 0.2
phases:
install:
commands:
# upgrade AWS CLI
- pip install --upgrade awscli
# install Node 12
- curl -sL https://deb.nodesource.com/setup_12.x | bash -
- apt install nodejs
pre_build:
commands:
# install server dependencies
- npm install
build:
commands:
# install client dependencies and build static files
- npm install --prefix client && npm run build --prefix client
post_build:
commands:
- ls -la
- ls client -la
artifacts:
files:
- '**/*'
编辑 1:这里是 npm install --prefix client
:
Running command npm install --prefix client --production
> core-js@2.6.11 postinstall /codebuild/output/src133125934/src/client/node_modules/babel-runtime/node_modules/core-js
> node -e "try{require('./postinstall')}catch(e){}"
对于npm run build -prefix client
:
[Container] 2020/07/02 00:24:06 Entering phase BUILD
[Container] 2020/07/02 00:24:06 Running command npm run build --prefix client
> client@0.1.0 build /codebuild/output/src133125934/src/client
> react-scripts build
Creating an optimized production build...
Compiled successfully.
File sizes after gzip:
144.95 KB build/static/js/2.d25271aa.chunk.js
23.22 KB build/static/css/main.fe6e5073.chunk.css
6.38 KB build/static/js/main.8e99a285.chunk.js
774 B build/static/js/runtime-main.f63e6028.js
编辑 2:构建后使用 ls 查看目录:
[Container] 2020/07/02 01:11:24 Entering phase POST_BUILD
[Container] 2020/07/02 01:11:24 Running command ls -la
total 136
drwxr-xr-x 12 root root 4096 Jul 2 01:09 .
drwxr-xr-x 3 root root 4096 Jul 2 01:09 ..
drwxr-xr-x 2 root root 4096 Jul 2 01:09 .ebextensions
-rw-rw-r-- 1 root root 130 Jul 2 01:08 .gitignore
-rw-rw-r-- 1 root root 16 Jul 2 01:08 .npmrc
-rw-rw-r-- 1 root root 34 Jul 2 01:08 README.md
-rw-rw-r-- 1 root root 1737 Jul 2 01:08 app.js
drwxr-xr-x 2 root root 4096 Jul 2 01:09 bin
-rw-rw-r-- 1 root root 566 Jul 2 01:08 buildspec.yml
drwxr-xr-x 6 root root 4096 Jul 2 01:10 client
drwxr-xr-x 2 root root 4096 Jul 2 01:09 config
drwxr-xr-x 2 root root 4096 Jul 2 01:09 graphql
drwxr-xr-x 2 root root 4096 Jul 2 01:09 models
drwxr-xr-x 197 root root 4096 Jul 2 01:10 node_modules
-rw-rw-r-- 1 root root 63888 Jul 2 01:08 package-lock.json
-rw-rw-r-- 1 root root 814 Jul 2 01:08 package.json
drwxr-xr-x 2 root root 4096 Jul 2 01:09 routes
drwxr-xr-x 2 root root 4096 Jul 2 01:09 services
drwxr-xr-x 2 root root 4096 Jul 2 01:09 views
[Container] 2020/07/02 01:11:24 Running command ls client -la
total 748
drwxr-xr-x 6 root root 4096 Jul 2 01:10 .
drwxr-xr-x 12 root root 4096 Jul 2 01:09 ..
drwxr-xr-x 3 root root 4096 Jul 2 01:11 build
drwxr-xr-x 1081 root root 36864 Jul 2 01:10 node_modules
-rw-rw-r-- 1 root root 699332 Jul 2 01:08 package-lock.json
-rw-rw-r-- 1 root root 1212 Jul 2 01:08 package.json
drwxr-xr-x 2 root root 4096 Jul 2 01:09 public
drwxr-xr-x 8 root root 4096 Jul 2 01:09 src
编辑 3:验证目录创建后,我通过 ssh 进入 beantalk (ec2) 实例以检查它们是否已部署,但这是我得到的:
$ cd /var/app/current
$ ls
app.js
bin
buildspec.yml
client
config
graphql
models
node_modules
package.json
package-lock.json
Procfile
README.md
routes
services
views
$ cd client
$ ls
package.json
package-lock.json
public
src
build 和 modules 目录没有部署到 beanstalk 中。
问题是 CodePipeline 的 Deploy 阶段接收的是 Source 输出,而不是 Build 输出。将 Deploy 输入设置为 Build 输出修复了它!