在AWS CodeBuild期间使用npm安装时未创建node_modules目录 [英] node_modules directory not created when using npm install during AWS CodeBuild

查看:196
本文介绍了在AWS CodeBuild期间使用npm安装时未创建node_modules目录的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在完成CodeBuild并进入环境后,我可以看到服务器应用程序的依赖项已安装并在其node_modules中找到.但是,在客户机目录中,既没有node_modules也没有构建目录.在构建日志中,npm install --prefix client --production似乎运行正常.

After the CodeBuild is complete and I ssh into my environment, I can see that the server app's dependencies are installed and found in its node_modules. However in the client directory, there is no node_modules nor build directory. In the build logs, npm install --prefix client --production appears to run fine.

我的问题几乎与这个问题类似,除了它既是node_modules也是构建文件夹.

My question is almost exactly like this one, except it is both the node_modules and the build folder.

buildspec文件是否存在问题?在这里( EDIT 4 :已更新)

Is there a problem with the buildspec file? Here it is (EDIT 4: updated)

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的示例:

EDIT 1: here's an example of what the codebuild logs show for the 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查看目录:

EDIT 2: Using ls to see the directories after the build:

[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)实例中以检查它们是否已部署,但这是我得到的:

EDIT 3: After verifying the directories are made, I ssh into the beanstalk (ec2) instance to check if they have been deployed but this is what I get:

$ 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目录未部署到beantalk中.

The build and modules directory are not deployed into beanstalk.

推荐答案

问题是CodePipeline的Deploy阶段正在接收Source输出,而不是Build输出.将Deploy输入设置为Build输出即可解决该问题!

The problem is that the Deploy stage of the CodePipeline was taking in the Source output, not the Build output. Setting the Deploy input as the Build output fixed it!

这篇关于在AWS CodeBuild期间使用npm安装时未创建node_modules目录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆