@fnord/golem
v0.4.8
Published
esbuild manager
Downloads
14
Readme
golem
multi project build manager for esbuild
Usage
$ npm install -g @fnord/golem
$ golem init
...
$ golem add
[email protected]
? enter a name for the build frontend
? what is the build target browser
? enter the path to the entrypoint (eg. client/index.tsx) client/index.tsx
? enter the path to the output (eg. dist/index.js) foo.js
? do you want the output bundled Yes
? do you want the output minified No
? do you want a sourcemap No
...
$ golem build
[email protected]
[-] start frontend
[-] start backend
[+] built frontend
[+] built backend
$ golem watch
[email protected]
[-] watch frontend
[-] watch backend
[+] watching frontend
[+] watching backend
[-] (backend) starting nodemon
[+] (backend) started nodemon
[?] (backend) log nodemon: "2.0.20"
[?] (backend) log nodemon: "to restart at any time, enter `rs`"
[?] (backend) log nodemon: "watching path(s): *.*"
[?] (backend) log nodemon: "watching extensions: js,mjs,json"
[?] (backend) log nodemon: "starting `node dist/index.js`"
...
$ golem --help [COMMAND]
USAGE
$ golem COMMAND
...
Configuration
If you had a src
folder with 2 subfolders: client
, and server
, you might configure your project by putting the following in config.golem.json
at the root of your project:
{
"baseDir": "src",
"outDir": "dist",
"watchMode": true,
"builds": {
"frontend": {
"entryPoints": ["server/index.ts"],
"bundle": true,
"outfile": "index.js",
"platform": "node"
},
"backend": {
"entryPoints": ["client/index.tsx"],
"bundle": true,
"outfile": "public/index.js",
"requires": ["frontend"],
"watchCmd": "nodemon"
}
}
}
Global Properties
baseDir
the directory to prepend to all build entrypoints.
outDir
the directory to prepend to all build outputs.
builds
an object containing the distinct builds, for example frontend and backend.
Build Properties
entryPoints
an array containing the build entrypoints.
bundle
enable bundling of output into a single file.
outfile
the destination file or file pattern for non-bundled builds.
Commands
golem add
golem build
golem help [COMMAND]
golem init [BASEDIR] [OUTDIR]
golem plugins
golem plugins:install PLUGIN...
golem plugins:inspect PLUGIN...
golem plugins:install PLUGIN...
golem plugins:link PLUGIN
golem plugins:uninstall PLUGIN...
golem plugins:uninstall PLUGIN...
golem plugins:uninstall PLUGIN...
golem plugins update
golem watch
golem add
add a build to the project
USAGE
$ golem add
DESCRIPTION
add a build to the project
See code: dist/commands/add/index.ts
golem build
Build project
USAGE
$ golem build [-c <value>]
FLAGS
-c, --config=<value> Project file if not config.golem.json
DESCRIPTION
Build project
EXAMPLES
$ golem build --config ./other.golem.json
See code: dist/commands/build/index.ts
golem help [COMMAND]
Display help for golem.
USAGE
$ golem help [COMMAND] [-n]
ARGUMENTS
COMMAND Command to show help for.
FLAGS
-n, --nested-commands Include all nested commands in the output.
DESCRIPTION
Display help for golem.
See code: @oclif/plugin-help
golem init [BASEDIR] [OUTDIR]
Initialise project
USAGE
$ golem init [BASEDIR] [OUTDIR] [-c <value>]
ARGUMENTS
BASEDIR base source directory
OUTDIR build output directory
FLAGS
-c, --config=<value> Project file if not config.golem.json
DESCRIPTION
Initialise project
EXAMPLES
$ golem init <BASE_DIR> <OUT_DIR>
See code: dist/commands/init/index.ts
golem plugins
List installed plugins.
USAGE
$ golem plugins [--core]
FLAGS
--core Show core plugins.
DESCRIPTION
List installed plugins.
EXAMPLES
$ golem plugins
See code: @oclif/plugin-plugins
golem plugins:install PLUGIN...
Installs a plugin into the CLI.
USAGE
$ golem plugins:install PLUGIN...
ARGUMENTS
PLUGIN Plugin to install.
FLAGS
-f, --force Run yarn install with force flag.
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Installs a plugin into the CLI.
Can be installed from npm or a git url.
Installation of a user-installed plugin will override a core plugin.
e.g. If you have a core plugin that has a 'hello' command, installing a user-installed plugin with a 'hello' command
will override the core plugin implementation. This is useful if a user needs to update core plugin functionality in
the CLI without the need to patch and update the whole CLI.
ALIASES
$ golem plugins add
EXAMPLES
$ golem plugins:install myplugin
$ golem plugins:install https://github.com/someuser/someplugin
$ golem plugins:install someuser/someplugin
golem plugins:inspect PLUGIN...
Displays installation properties of a plugin.
USAGE
$ golem plugins:inspect PLUGIN...
ARGUMENTS
PLUGIN [default: .] Plugin to inspect.
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Displays installation properties of a plugin.
EXAMPLES
$ golem plugins:inspect myplugin
golem plugins:install PLUGIN...
Installs a plugin into the CLI.
USAGE
$ golem plugins:install PLUGIN...
ARGUMENTS
PLUGIN Plugin to install.
FLAGS
-f, --force Run yarn install with force flag.
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Installs a plugin into the CLI.
Can be installed from npm or a git url.
Installation of a user-installed plugin will override a core plugin.
e.g. If you have a core plugin that has a 'hello' command, installing a user-installed plugin with a 'hello' command
will override the core plugin implementation. This is useful if a user needs to update core plugin functionality in
the CLI without the need to patch and update the whole CLI.
ALIASES
$ golem plugins add
EXAMPLES
$ golem plugins:install myplugin
$ golem plugins:install https://github.com/someuser/someplugin
$ golem plugins:install someuser/someplugin
golem plugins:link PLUGIN
Links a plugin into the CLI for development.
USAGE
$ golem plugins:link PLUGIN
ARGUMENTS
PATH [default: .] path to plugin
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Links a plugin into the CLI for development.
Installation of a linked plugin will override a user-installed or core plugin.
e.g. If you have a user-installed or core plugin that has a 'hello' command, installing a linked plugin with a 'hello'
command will override the user-installed or core plugin implementation. This is useful for development work.
EXAMPLES
$ golem plugins:link myplugin
golem plugins:uninstall PLUGIN...
Removes a plugin from the CLI.
USAGE
$ golem plugins:uninstall PLUGIN...
ARGUMENTS
PLUGIN plugin to uninstall
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Removes a plugin from the CLI.
ALIASES
$ golem plugins unlink
$ golem plugins remove
golem plugins:uninstall PLUGIN...
Removes a plugin from the CLI.
USAGE
$ golem plugins:uninstall PLUGIN...
ARGUMENTS
PLUGIN plugin to uninstall
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Removes a plugin from the CLI.
ALIASES
$ golem plugins unlink
$ golem plugins remove
golem plugins:uninstall PLUGIN...
Removes a plugin from the CLI.
USAGE
$ golem plugins:uninstall PLUGIN...
ARGUMENTS
PLUGIN plugin to uninstall
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Removes a plugin from the CLI.
ALIASES
$ golem plugins unlink
$ golem plugins remove
golem plugins update
Update installed plugins.
USAGE
$ golem plugins update [-h] [-v]
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Update installed plugins.
golem watch
Build project in watch mode
USAGE
$ golem watch [-c <value>]
FLAGS
-c, --config=<value> Project file if not config.golem.json
DESCRIPTION
Build project in watch mode
EXAMPLES
$ golem watch --config ./other.golem.json
See code: dist/commands/watch/index.ts