## Synopsis
`ceylon compile-js [--cacherep=<url>] [--compact] [--cwd=<dir>] [--encoding=<encoding>] [--include-dependencies[=<flags>]] [--lexical-scope-style] [--maven-overrides=<file>] [--no-comments] [--no-default-repositories] [--no-indent] [--no-module] [--offline] [--out=<url>] [--overrides=<file>] [--pass=<secret>] [--profile] [--rep=<url>...] [--resource=<dirs>...] [--resource-root=<folder-name>] [--skip-src-archive] [--source=<dirs>...] [--src=<dirs>...] [--suppress-warning[=<warnings>...]] [--sysrep=<url>] [--timeout=<seconds>] [--user=<name>] [--verbose[=<flags>]] [--] [<moduleOrFile...>]`

## Options
`--cacherep=url` | Specifies the folder to use for caching downloaded modules. (default: `~/.ceylon/cache`)
`--compact` | Equivalent to `--no-indent` `--no-comments`
`--cwd=dir` | Specifies the current working directory for this tool. (default: the directory where the tool is run from)
`--encoding=encoding`, `-E encoding` | Sets the encoding used for reading source files (default: platform-specific)
`--include-dependencies[=flags]` | Determines if and how compilation of dependencies should be handled. Allowed flags include: `never`, `once`, `force`, `check`.
`--lexical-scope-style` | Create lexical scope-style JS code
`--maven-overrides=file` | Specifies the XML file to use to load Maven artifact overrides. See http://ceylon-lang.org/documentation/current/reference/repository/maven/ for information. Deprecated: use --overrides.
`--no-comments` | Do not generate any comments
`--no-default-repositories` | Indicates that the default repositories should not be used.
`--no-indent` | Do not indent code (deprecated)
`--no-module` | Do not wrap generated code as CommonJS module
`--offline`, `-L` | Enables offline mode that will prevent connections to remote repositories.
`--out=url`, `-o url` | Specifies the output module repository (which must be publishable). (default: `./modules`)
`--overrides=file` | Specifies the XML file to use to load module overrides. See http://ceylon-lang.org/documentation/current/reference/repository/maven/ for information. Experimental.
`--pass=secret` | Sets the password for use with an authenticated output repository (no default).
`--profile` | Time the compilation phases (results are printed to standard error)
`--rep=url` | Specifies a module repository containing dependencies. Can be specified multiple times. (default: `modules`, `~/.ceylon/repo`, `https://modules.ceylon-lang.org/repo/1`)
`--resource=dirs`, `-r dirs` | Path to directory containing resource files. Can be specified multiple times; you can also specify several paths separated by your operating system's `PATH` separator. (default: `./resource`)
`--resource-root=folder-name`, `-R folder-name` | Sets the special resource folder name whose files will end up in the root of the resulting module CAR file (default: ROOT).
`--skip-src-archive` | Do not generate .src archive - useful when doing joint compilation
`--source=dirs` | An alias for `--src` (default: `./source`)
`--src=dirs`, `-s dirs` | Path to source files. Can be specified multiple times; you can also specify several paths separated by your operating system's `PATH` separator. (default: `./source`)
`--suppress-warning[=warnings]`, `-W` | Suppress the reporting of the given warnings. If no `warnings` are given then suppresss the reporting of all warnings, otherwise just suppresss those which are present. Allowed flags include: `filenameNonAscii`, `filenameClaselessCollision`, `deprecation`, `compilerAnnotation`, `doclink`, `expressionTypeNothing`, `unusedDeclaration`, `unusedImport`, `ceylonNamespace`, `javaNamespace`, `suppressedAlready`, `suppressesNothing`.
`--sysrep=url` | Specifies the system repository containing essential modules. (default: `$CEYLON_HOME/repo`)
`--timeout=seconds`, `-T seconds` | Sets the timeout for connections to remote repositories, use 0 for no timeout (default: 20).
`--user=name` | Sets the user name for use with an authenticated output repository (no default).
`--verbose[=flags]`, `-d` | Produce verbose output. If no `flags` are given then be verbose about everything, otherwise just be verbose about the flags which are present. Allowed flags include: `all`, `loader`, `ast`, `code`, `stitcher`.

## Compiling dependencies
The `--include-dependencies` option can take the following flags: never - Never perform any compilation once - Only compile when the compiled module is not available check - Compile when the sources are newer than the compiled module force - Always compile If the flag is given without an argument it's the same as specifying `check`. If no flag is given at all it's the same as specifying `never`.

## Configuration file
The compile tool accepts the following options from the Ceylon configuration file: `defaults.offline`, `defaults.encoding`, `compiler.source`, `compiler.resource` and `repositories` (the equivalent options on the command line always have precedence).

## Repositories
Repositories like those specified with the `--rep` or `--out` options can be file paths, HTTP urls to remote servers or can be names of repositories when prepended with a `+` symbol. These names refer to repositories defined in the configuration file or can be any of the following predefined names `+SYSTEM`, `+CACHE`, `+LOCAL`, `+USER`, `+REMOTE` or `+MAVEN`. For more information see https://ceylon-lang.org/documentation/1.3/reference/repository/tools