Socket
Book a DemoInstallSign in
Socket

aegir

Package Overview
Dependencies
Maintainers
2
Versions
422
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

aegir

JavaScript project management

47.0.21
latest
Source
npmnpm
Version published
Weekly downloads
5.3K
-4.55%
Maintainers
2
Weekly downloads
 
Created
Source

aegir

ipfs.tech Discuss codecov CI

JavaScript project management

Aegir is an opinionated tool for TypeScript/JavaScript project management, testing and release. You should use it if you just want to ship working code and have few strongly held opinions on linting, project layout and testing frameworks.

It bundles config for standard tools such as eslint, mocha, etc and lets you concentrate on writing code instead of formatting whitespace.

Project Structure

The project structure when using this is quite strict, to ease replication and configuration overhead.

All source code should be placed under src, with the main entry point being src/index.js or src/index.ts.

All test files should be placed under test. Individual test files should end in .spec.js or .spec.ts and will be ran in all environments (node, browser, webworker, electron-main and electron-renderer).

To run node specific tests a file named test/node.js or test/node.ts should be used to require all node test files and the same thing for the other environments with a file named test/browser.js or test/browser.ts.

Your package.json should have the following entries and should pass aegir lint-package-json.

"main": "src/index.js",
"files": [
  "src",
  "dist"
],
"scripts": {
  "lint": "aegir lint",
  "release": "aegir release",
  "build": "aegir build",
  "test": "aegir test",
  "test:node": "aegir test --target node",
  "test:browser": "aegir test --target browser"
}

CLI

Run aegir --help

Configuration

Aegir can be fully configured using a config file named .aegir.js or the package.json using the property aegir.

.aegir.js

module.exports = {
  tsRepo: true,
  release: {
    build: false
  }
}

package.json

"main": "src/index.js",
"files": [
  "src",
  "dist"
],
"scripts": {
  "lint": "aegir lint",
  "release": "aegir release",
  "build": "aegir build",
  "test": "aegir test",
  "test:node": "aegir test --target node",
  "test:browser": "aegir test --target browser"
},
"aegir" : {
  "tsRepo": false
}

You can find the complete default config here and the types here.

Continuous Integration

Check this template for Github Actions https://github.com/ipfs/aegir/blob/main/md/github-actions.md

Testing helpers

In addition to running the tests aegir also provides several helpers to be used by the tests.

Check the documentation

Typescript

Aegir will detect the presence of tsconfig.json files and build typescript as appropriate.

Releases

aegir release will run semantic-release-style auto-releases with every change to main.

If you wish to batch changes up instead, please use release-please.

Config updates

You can keep your project configuration up to date by running:

$ npx aegir check-project

It will attempt to add/amend any configuration files that require updating to the latest versions.

If you have any custom config in your project please double check the edits it will make!

Install

$ npm i aegir

API Docs

License

Licensed under either of

Contribute

Contributions welcome! Please check out the issues.

Also see our contributing document for more information on how we work, and about contributing in general.

Please be aware that all interactions related to this repo are subject to the IPFS Code of Conduct.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Keywords

build

FAQs

Package last updated on 05 Aug 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.