- Service Overview
- Getting Started
-
User Guide
- Before You Start
- Roles & Permissions
- Process
- Logging In to the CodeArts Build Homepage
- Creating a Build Task
-
Configuring Build Actions
- Introduction
-
Graphical Build
- Configuring Build Environment
- Configuring Code Download
- Build with Maven
- Build with Android
- Sign Android APK
- Build with npm
- Build with Gradle
- Build with Yarn
- Build with Gulp
- Build with Grunt
- Build with Mono
- Build in PHP
- Build with Setuptools
- Build with PyInstaller
- Run Shell Commands
- Build with GNU Arm
- Build with CMake
- Build with Ant
- Build with Go
- Build Android Quick App
- Creating Images and Pushing to SWR
- Using SWR Public Images
- Uploading Software Packages to Release Repos
- Uploading Files to OBS
- Running Docker Commands
- Downloading Package from Release Repos
- Downloading File from File Manager
-
Code-based Build
-
Configuring a Task
- Introducing the YAML File Structure
- Using YAML for Build
- Using YAML to Configure Code Download
- Using YAML to Configure Manifest File Download from Repositories
- Using YAML to Configure and Execute Shell Commands
- Using YAML to Configure a Maven Build
- Using YAML to Configure an npm Build
- Using YAML to Configure a Yarn Build
- Using YAML to Configure a Build with Go
- Using YAML to Configure a Build with Gulp
- Using YAML to Configure a Build with Grunt
- Using YAML to Configure a PHP Build
- Using YAML to Configure a Build with GNU Arm
- Using YAML to Configure a Build with Setuptools
- Using YAML to Configure a Build with PyInstaller
- Using YAML to Configure a Python Build
- Using YAML to Configure a Gradle Build
- Using YAML to Configure an Ant Build
- Using YAML to Configure a CMake Build
- Using YAML to Configure a Mono Build
- Using YAML to Configure a Build with Flutter
- Using YAML to Configure an sbt Build
- Using YAML to Configure an Android Build
- Using YAML to Sign Android APK
- Using YAML to Inject an APM Probe into an Android App
- Using YAML to Build an Android Quick App
- Using YAML to Configure a Bazel Build
- Using YAML to Configure a Build with Grails
- Using YAML to Build an Android App with Ionic
- Using YAML to Configure a Fortran Build
- Using YAML to Configure a Build with MSBuild
- Using YAML to Create an Image and Upload It to SWR
- Using YAML to Specify SWR Public Images
- Using YAML to Upload Files to OBS
- Using YAML to Download Files
- Using YAML to Upload Binary Packages to a Repository
- Using YAML to Download Binary Packages
- Using YAML to Run Docker Commands
- Configuring Tasks
-
Configuring a Task
- Running a Build Task
- Viewing a Build Task
- Managing and Configuring a Build Task
- Other Operations
- Best Practices
-
API Reference
- Before You Start
- API Overview
- Calling APIs
-
Task APIs
- View the build task build history list based on the start time and end time.
- Viewing the Build History List of build task
- Downloading the Keystore File
- Viewing the Running Status of a Task
- Viewing the build task List of Users in a Project
- Execute the build job.
- Querying the Latest Successful Build History of a Specified Code Repository
- API for Obtaining Construction History Details
- View the build task construction success rate based on the start time and end time.
- Download Full Build Log
- Download Build Step Log
- Obtaining Construction Record Information
- Obtaining Build Product Details
- Stopping a Build
- Deleting the Build Task
- Disabling build task
- Restoring the build task
- Creating a Build Job
- Updating the build task
- Querying a Build Template
- Creating a Build Template
- Deleting a Build Template
- Query a Notification
- Sending Asynchronous Notifications When Updating Resource Types
- Cancel Notification
- Obtaining build task Details
- Out-of-DateAPIs (Unavailable Soon)
- Application Examples
- Appendix
- Change History
-
FAQs
-
General FAQs
- What Is CodeArts Build?
- Can I Specify a Server or Server Configuration for Running a Build Task?
- Does CodeArts Build Support iOS?
- Is There a Limit on the Size of the Build Package to Be Uploaded?
- Project Files Not Found During Builds
- Files Not Found During Software Package Upload
- Insufficient Permissions
- Task Not Found
- Task Aborted
- Migrating Common Java Projects to Cloud by Eclipse
- Fetching Code
-
Using Maven for Build
- Failed License Check
- Failed to Upload a Package Using the maven deploy Command
- POM Not Found
- Package or Symbol Not Found
- Incomplete JAR Due to Parallel Build Tasks
- Using the exec-maven-plugin Extension for Maven and NPM Hybrid Builds
- Referencing Between Parent and Child POMs
- Configuring and Clearing Maven Build Cache
- Finding the Correct Build Package Directory
- Using the jib-maven-plugin Extension to Build a Maven Project and Create an Image
- Package Remains Old After Code Update
- Service Endpoint Did Not Exist
- Using Android for Build
- Using Gradle for Build
-
Using npm for Build
- JavaScript heap out of memory
- enoent ENOENT: no such file or directory
- Module not found: Error: Can't resolve ...
- No Error Displayed for Failed Build with npm
- npm cb() never called
- gyp ERR! stack Error: EACCES: permission denied
- eslint: error 'CLODOP' is not defined
- Failed to Download node-sass
- error: could not write config file
- Low Efficiency and Slow Dependency Installation During Build with npm
- Using Docker for Build
- Creating Images and Pushing to SWR
-
General FAQs
Show all
JavaScript heap out of memory
Symptoms
When the npm build task is executed, the following error information is displayed in the log:
FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory.
Cause Analysis
The memory used by the Node.js runtime is limited: 1.4 GB for a 64-bit system and 0.7 GB for a 32-bit system. The memory used in the current build has exceeded the default-allowed size.
Solution
Method 1: Upgrade the Node.js version.
Method 2: Set the --max_old_space_size or --max_new_space_size parameter when starting the node to adjust the memory usage limit.
node --max_old_space_size=1700 test.js // The unit is MB. Modifies the old memory limit. node --max_new_space_size=1024 test.js // The unit is KB. Modifies the new memory limit.
The solutions for the three major front-end frameworks are as follows:
Frame |
Solution |
---|---|
Vue |
You only need to change the value of build in the package.json file and add the node command with parameters to the command. For example: "build": "node --max_old_space_size=4096 build/build.js" |
React |
Assume that the content of the scripts field in the package.json file is as follows: "scripts": { "start": "react-scripts start", "build": "react-scripts build", "test": "react-scripts test --env=jsdom", "eject": "react-scripts eject" } The actual code that works in the npm run build command is react-scripts build. Open the node_modules folder in the root directory of a project, find and open the .bin directory, find and open the react-scripts file, and add max_old_space_size=4096 to #!/usr/bin/env node: #!/usr/bin/env node --max_old_space_size=4096 |
Angular |
Assume that the content of the scripts field in the package.json file is as follows: "scripts": { "ng": "ng", "start": "ng serve", "build": "ng build", "test": "ng test", "lint": "ng lint", "e2e": "ng e2e" } Similar to React, the ng file exists in the .bin directory in the mode_modules folder in the root directory of a project. Modify the first line of the file. #!/usr/bin/env node --max_old_space_size=4096 |
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.