JavaScript project management
$ npm i @rabiepenpm/soluta-qui-dolore
Loading this module through a script tag will make it's exports available as Aegir
in the global namespace.
<script src="https://unpkg.com/@rabiepenpm/soluta-qui-dolore/dist/index.min.js"></script>
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 @rabiepenpm/soluta-qui-dolore lint-package-json
.
"main": "src/index.js",
"files": [
"src",
"dist"
],
"scripts": {
"lint": "@rabiepenpm/soluta-qui-dolore lint",
"release": "@rabiepenpm/soluta-qui-dolore release",
"build": "@rabiepenpm/soluta-qui-dolore build",
"test": "@rabiepenpm/soluta-qui-dolore test",
"test:node": "@rabiepenpm/soluta-qui-dolore test --target node",
"test:browser": "@rabiepenpm/soluta-qui-dolore test --target browser"
}
Run @rabiepenpm/soluta-qui-dolore --help
Usage: @rabiepenpm/soluta-qui-dolore <command> [options]
Commands:
@rabiepenpm/soluta-qui-dolore completion generate completion script
@rabiepenpm/soluta-qui-dolore build Builds a browser bundle and TS type declara
tions from the `src` folder.
@rabiepenpm/soluta-qui-dolore check-project Ensure your project has the correct config.
@rabiepenpm/soluta-qui-dolore check Check project
@rabiepenpm/soluta-qui-dolore clean [files..] Remove created build artifacts.
@rabiepenpm/soluta-qui-dolore dependency-check [input...] Run `dependency-check` cli with @rabiepenpm/soluta-qui-dolore defau
lts. [aliases: dep-check, dep]
@rabiepenpm/soluta-qui-dolore docs Generate documentation from TS type declara
tions.
@rabiepenpm/soluta-qui-dolore document-check [input...] Run `document-check` cli with @rabiepenpm/soluta-qui-dolore default
s. [aliases: doc-check]
@rabiepenpm/soluta-qui-dolore lint-package-json Lint package.json with @rabiepenpm/soluta-qui-dolore defaults.
[aliases: lint-package, lpj]
@rabiepenpm/soluta-qui-dolore lint Lint all project files
@rabiepenpm/soluta-qui-dolore release Release using semantic-release
@rabiepenpm/soluta-qui-dolore release-rc Release an RC version of the current module
or monorepo
@rabiepenpm/soluta-qui-dolore test-dependant [repo] Run the tests of an module that depends on
this module to see if the current changes h
ave caused a regression
@rabiepenpm/soluta-qui-dolore test Test your code in different environments
@rabiepenpm/soluta-qui-dolore exec <command> Run a command in each project of a monorepo
@rabiepenpm/soluta-qui-dolore run <scripts..> Run one or more npm scripts in each project
of a monorepo
Global Options:
-h, --help Show help [boolean]
-v, --version Show version number [boolean]
-d, --debug Show debug output. [boolean] [default: false]
Examples:
@rabiepenpm/soluta-qui-dolore build Runs the build command to bundle JS
code for the browser.
npx @rabiepenpm/soluta-qui-dolore build Can be used with `npx` to use a loca
l version
@rabiepenpm/soluta-qui-dolore test -t webworker -- --browser fir If the command supports `--` can be
efox used to forward options to the under
lying tool.
npm test -- -- --browser firefox If `npm test` translates to `@rabiepenpm/soluta-qui-dolore t
est -t browser` and you want to forw
ard options you need to use `-- --`
instead.
Use `@rabiepenpm/soluta-qui-dolore <command> --help` to learn more about each command.
Aegir can be fully configured using a config file named .@rabiepenpm/soluta-qui-dolore.js
or the package.json using the property @rabiepenpm/soluta-qui-dolore
.
// file: .@rabiepenpm/soluta-qui-dolore.js
/** @type {import('@rabiepenpm/soluta-qui-dolore').PartialOptions} */
module.exports = {
tsRepo: true,
release: {
build: false
}
}
// file: package.json
"main": "src/index.js",
"files": [
"src",
"dist"
],
"scripts": {
"lint": "@rabiepenpm/soluta-qui-dolore lint",
"release": "@rabiepenpm/soluta-qui-dolore release",
"build": "@rabiepenpm/soluta-qui-dolore build",
"test": "@rabiepenpm/soluta-qui-dolore test",
"test:node": "@rabiepenpm/soluta-qui-dolore test --target node",
"test:browser": "@rabiepenpm/soluta-qui-dolore test --target browser"
},
"@rabiepenpm/soluta-qui-dolore" : {
"tsRepo": false
}
You can find the complete default config here and the types here.
Check this template for Github Actions https://github.com/rabiepenpm/soluta-qui-dolore/blob/master/md/github-actions.md
In addition to running the tests @rabiepenpm/soluta-qui-dolore
also provides several helpers to be used by the tests.
Check the documentation
Aegir will detect the presence of tsconfig.json
files and build typescript as appropriate.
- Run linting
- Run type check
- Run tests
- Bump the version in
package.json
- Build everything
- Update contributors based on the git history
- Generate a changelog based on the git log
- Commit the version change &
CHANGELOG.md
- Create a git tag
- Run
git push
toorigin/master
- Publish a release to Github releases
- Generate documentation and push to Github Pages
- Publish to npm
@rabiepenpm/soluta-qui-dolore release --help
Licensed under either of
- Apache 2.0, (LICENSE-APACHE / http://www.apache.org/licenses/LICENSE-2.0)
- MIT (LICENSE-MIT / http://opensource.org/licenses/MIT)
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.