当前位置: 首页 > 知识库问答 >
问题:

如何在AWS Amplify中设置构建脚本?它们在本地成功运行,但在AWS Amplify的构建过程中失败

翟俊
2023-03-14

我正在使用NPM在本地运行构建脚本,它们成功完成。但是,我用AWS Amplify托管我的网站,我已经根据他们的建议接受了默认的构建设置,但是在前端构建期间,构建总是在上失败。

我已经通读了文档(https://aws.amazon.com/getting-started/tutorials/deploy-react-app-cicd-amplify/)

这是我的构建脚本package.json: ''''

 "scripts": {
    "start": "npm run watch:all",
    "test": "echo \"Error: no test specified\" && exit 1",
    "lite": "lite-server",
    "jshint": "jshint",
    "scss": "node-sass -o css/ css/",
    "watch:scss": "onchange \"css/*.scss\" -- npm run scss",
    "watch:all": "concurrently \"npm run watch:scss\" \"npm run lite\"",
    "clean": "rimraf dist",
    "copyfonts": "copyfiles -f node_modules/font-awesome/fonts/* dist/fonts",
    "imagemin": "imagemin img/* -o dist/img",
    "usemin": " usemin index.html -d dist --htmlmin -o dist/index.html &&  usemin photos.html -d dist --htmlmin -o dist/photos.html && usemin \"pico's picks\".html -d dist --htmlmin -o dist/\"pico's picks\".html && usemin about.html -d dist --htmlmin -o dist/about.html && usemin contact.html -d dist --htmlmin -o dist/contact.html",
    "build": "npm run clean && npm run copyfonts && npm run imagemin && npm run usemin"

''''

以下是AWS Amplify中的默认生成文件:“”

version: 0.1
frontend:
  phases:
    preBuild:
      commands:
        - npm ci
    build:
      commands:
        - npm run build
  artifacts:
    # IMPORTANT - Please verify your build output directory
    baseDirectory: /
    files:
      - '**/*'
  cache:
    paths:
      - node_modules/**/*

''''

以下是放大前端生成过程的输出:“”

               # Starting phase: preBuild
                                 # Executing command: npm ci
2019-05-12T10:10:02.664Z [INFO]: > pngquant-bin@3.1.1 postinstall /codebuild/output/src794671044/src/Project-Pico/node_modules/pngquant-bin
                                 > node lib/install.js
2019-05-12T10:10:03.154Z [WARNING]: ✔ pngquant pre-build test passed successfully
2019-05-12T10:10:03.163Z [INFO]: > optipng-bin@3.1.4 postinstall /codebuild/output/src794671044/src/Project-Pico/node_modules/optipng-bin
                                 > node lib/install.js
2019-05-12T10:10:03.514Z [WARNING]: ✔ optipng pre-build test passed successfully
2019-05-12T10:10:03.514Z [WARNING]: 
2019-05-12T10:10:03.521Z [INFO]: > jpegtran-bin@3.2.0 postinstall /codebuild/output/src794671044/src/Project-Pico/node_modules/jpegtran-bin
                                 > node lib/install.js
2019-05-12T10:10:03.882Z [WARNING]: ✔ jpegtran pre-build test passed successfully
2019-05-12T10:10:03.883Z [WARNING]: 
2019-05-12T10:10:03.890Z [INFO]: > gifsicle@3.0.4 postinstall /codebuild/output/src794671044/src/Project-Pico/node_modules/gifsicle
                                 > node lib/install.js
2019-05-12T10:10:04.265Z [WARNING]: ✔ gifsicle pre-build test passed successfully
2019-05-12T10:10:04.374Z [INFO]: > fsevents@1.2.9 install /codebuild/output/src794671044/src/Project-Pico/node_modules/fsevents
                                 > node install
2019-05-12T10:10:04.504Z [INFO]: > node-sass@4.12.0 install /codebuild/output/src794671044/src/Project-Pico/node_modules/node-sass
                                 > node scripts/install.js
2019-05-12T10:10:05.004Z [INFO]: Downloading binary from https://github.com/sass/node-sass/releases/download/v4.12.0/linux-x64-57_binding.node
2019-05-12T10:10:05.343Z [INFO]: Download complete
2019-05-12T10:10:05.346Z [INFO]: Binary saved to /codebuild/output/src794671044/src/Project-Pico/node_modules/node-sass/vendor/linux-x64-57/binding.node
2019-05-12T10:10:05.371Z [INFO]: Caching binary to /root/.npm/node-sass/4.12.0/linux-x64-57_binding.node
2019-05-12T10:10:05.396Z [INFO]: > node-sass@4.12.0 postinstall /codebuild/output/src794671044/src/Project-Pico/node_modules/node-sass
                                 > node scripts/build.js
2019-05-12T10:10:05.526Z [INFO]: Binary found at /codebuild/output/src794671044/src/Project-Pico/node_modules/node-sass/vendor/linux-x64-57/binding.node
2019-05-12T10:10:05.527Z [INFO]: Testing binary
2019-05-12T10:10:05.623Z [INFO]: Binary is fine
2019-05-12T10:10:05.702Z [WARNING]: added 878 packages in 8.92s
2019-05-12T10:10:05.712Z [INFO]: # Completed phase: preBuild
                                 # Starting phase: build
2019-05-12T10:10:05.713Z [INFO]: # Executing command: npm run build
2019-05-12T10:10:05.901Z [INFO]: > project-pico@1.0.0 build /codebuild/output/src794671044/src/Project-Pico
                                 > npm run clean && npm run copyfonts && npm run imagemin && npm run usemin
2019-05-12T10:10:06.087Z [INFO]: > project-pico@1.0.0 clean /codebuild/output/src794671044/src/Project-Pico
                                 > rimraf dist
2019-05-12T10:10:06.342Z [INFO]: > project-pico@1.0.0 copyfonts /codebuild/output/src794671044/src/Project-Pico
                                 > copyfiles -f node_modules/font-awesome/fonts/* dist/fonts
2019-05-12T10:10:06.657Z [INFO]: > project-pico@1.0.0 imagemin /codebuild/output/src794671044/src/Project-Pico
                                 > imagemin img/* -o dist/img

......

AWS放大器构建应该成功完成,但总是失败。

共有2个答案

斜淳
2023-03-14

我有一个类似的问题,我的package.json包含一个安装后脚本,它试图为本地开发服务。在缩小资产后,扩增构建日志似乎无缘无故地超时和失败。

我的解决方案是删除postinstall脚本,因为部署时不需要它。

焦学海
2023-03-14

我使用以下内容来获得我在AWS上的构建。按照这些步骤的顺序,如果失败,请尝试下一步。

首先,建议为项目中使用的构建使用相同的包管理器。不管怎样,试试这些:

  1. 尝试删除并重新安装节点模块。
  2. 尝试使用webpack版本(3.1.0)/webpack服务器版本(1)构建项目
  3. 尝试删除并重新安装react脚本
 类似资料:
  • 我正在尝试构建我的控制台应用程序,并且我正在使用Ant来构建它。我可以在Eclipse中运行我的应用程序,但是当我试图从我得到的jar中运行它时,ClassNotFoundException:被抛出。是在我的应用程序中使用的一个罐子中。这里是build.xml的一部分,我在这里创建manifest: UPD:我应该把有库的罐子放进我的罐子里吗?现在我把它们放到JAR的“lib”目录中。所以myja

  • 恐怕我是个新手,有一些新手问题。 一段时间以来,我一直将python用于简单的脚本和自动化,但我正在挑战自己,通过为GitHub上的一些开源项目做出贡献来深入研究。 在这样一个公共环境中犯愚蠢的错误很有趣,但也很伤脑筋。 有时我的一项更改会导致错误,该错误会被提交PR时GitHub项目运行的自动测试之一捕获。如果可能,我想在提交PR之前自己捕获这些。有没有办法让我在自己的机器上本地运行相同的构建测

  • 是否可以在本地构建expo应用程序的APK? 医生说: 如果您以前没有使用过 exp,您需要做的第一件事就是使用 exp 登录使用您的 Expo 帐户。 我尝试了、,但这些命令需要登录。 我不想用世博服务器来建造APK。有办法在本地运行这个构建吗?所以不需要登录和推送源代码? 如果没有,我可以查看生成的APK的完整源代码吗?

  • 问题内容: 命令 : 下面的Dockerfile: 在最后一行失败(./configure …) 如果我删除了最后一行并在容器中运行了bash,然后手动执行了最后一行,那么它将起作用。 我希望将命令添加到Dockerfile中(由RUN前缀)后,在容器中成功运行的任何命令都应该起作用 我错过了什么吗? 问题答案: pwd在RUN命令中不是持久的。您需要在同一RUN中进行cd和配置。 这个Docke

  • 问题内容: 我在create-react-app中使用以下环境变量: 当我通过读取文件运行时它起作用: 我如何像执行a 一样设置其他值? 这是我的文件: 问题答案: 您可以这样使用: 你需要有和集。 或者,如果生产URL始终相同,则可以简化它: Create React App 在构建时会为您设置为“生产”,因此您无需担心何时将其设置为生产。 注意: 您必须重新启动服务器(例如再次运行)以检测环境

  • 问题内容: 我遵循指示,将回购推送到heroku,发现它崩溃了。我将heroku / nodejs用作buildpack。 程序文件: 脚本: 当我从Procfile或$ heroku本地网络运行脚本时,一切正常。但是推送回购将在日志中引发错误: 我想念什么? 问题答案: 首先,不要在Procfile中放入“ npm run build”步骤。这样做会使该步骤在您的Web dyno 每次重新启动时