Skip to content

CLI to build a template application and widgets using the ArcGIS API for JavaScript

License

Notifications You must be signed in to change notification settings

TerraSolstice/arcgis-js-cli

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

@arcgis/cli

npm version build status apache licensed

This CLI will allow you to quickly scaffold various applications for the ArcGIS API for JavaScript.

Usage

Prerequisites

You will need node v8+.

  • NOTE FOR WINDOWS USERS - You may need to install the Windows-Build-Tools to compile npm modules for this project. npm install --global --production windows-build-tools

Installation

From NPM

npm install -g @arcgis/cli

In a terminal, run:

arcgis --help

This will output the following:

Usage: arcgis <name> [dest] -t <type>

Commands:
  arcgis create <name> [dest]  Create a new application.
  arcgis init [type]           Initialize a new application in current directory
  arcgis widget <name> [type]  Create a new Widget.
  arcgis styles <subcommand>   Run commands to work with a custom CSS
                               theme

Quick Start

default template webpack application

arcgis create jsapi-app

vite template application

arcgis create jsapi-vite-app -t vite

Sample Apps

Features

Create a new application

$ arcgis create <name> [dest]

Create a new application.

Options:
  --version   Show version number                                                        [boolean]
  --name, -n  directory and package name for the new app
  --dest      Directory to create the application in                                     [default: <name>]
  --type, -t  A project template           [choices: "jsapi". "vite"] [default: "jsapi"]
  -h, --help  Show help                                                                  [boolean]

Initialize a new application in current directory

$ arcgis init [type]

Initialize a new application in current directory

Options:
  --version   Show version number                                                        [boolean]
  --type, -t  A project template           [choices: "jsapi". "vite"]                  [default: "jsapi"]
  -h, --help  Show help                                                                  [boolean]

Create a new widget

You can scaffold a standalone widget for use in your application. Widgets are saved into a tmp folder.

$ arcgis widget <name> [type]

Create a new Widget.

Options:
  --version   Show version number                                      [boolean]
  --name, -n  Name of new widget
  --type, -t  A widget template            [choices: "jsapi", "exb"] [default: "jsapi"]
  -h, --help  Show help                                                [boolean]

Experience Builder Widgets

The CLI can be used to scaffold custom widgets for the ArcGIS Experience Builder Developer Edition.

You will want to run the CLI in the extracted root directory of your Experience Builder installation.

arcgis widget my-widget -t exb

This will install your widget in the Experience Builder folder structure as follows.

<Experience-Builder-Installation>\client\your-extensions\widgets\MyWidget\

Author a custom theme

Create a new CSS theme.

$ arcgis styles <subcommand>

Run subcommands to work with a custom CSS theme

Commands:
  arcgis styles create [theme]   Create a custom theme
  arcgis styles preview [theme]  Launch theme-preview test page
  arcgis styles eject [theme]    Eject a built theme ready for deployment
  arcgis styles list             List existing themes in the current project
  arcgis styles clean            Removes any local scaffolding. This should be
                                 used when no more theme authoring is to be done
                                 in the working directory.
  arcgis styles scaffold         Sets up project scaffolding. This is done
                                 automatically when creating a theme for the
                                 first time.

Create a new theme

$ arcgis styles create [theme]

Create a custom theme

Positionals:
  theme  the name of the theme to create   [string] [default: "my-custom-theme"]

Options:
      --version            Show version number                             [boolean]
      -e, --with-examples  when specified, the created theme will include examples
                           from the API                                    [boolean]
      -b, --with-base      when specified, the created theme will include base files
                           for local overrides (advanced)                  [boolean]
      -f, --force          overwrites a theme if it already exists         [boolean]
      -h, --help           Show help                                       [boolean]

Preview a theme

$ arcgis styles preview [theme]

Launch theme-preview test page

Positionals:
  theme  the name of the theme to preview (this is only needed if there is more
         than one theme in the workspace)  [string] [default: "my-custom-theme"]

Options:
      --version      Show version number                                   [boolean]
      -p, --port     port to use for the preview page                       [number]
      -h, --help     Show help                                             [boolean]

Eject a theme

$ arcgis styles eject [theme]

Eject a built theme ready for deployment

Positionals:
  theme  the name of the theme to eject (this is only needed if there is more
         than one theme in the workspace)  [string] [default: "my-custom-theme"]

Options:
      --version      Show version number                                   [boolean]
      -h, --help     Show help                                             [boolean]

List themes

$ arcgis styles list

List existing themes in the current project

Options:
      --version      Show version number                                   [boolean]
      -h, --help     Show help                                             [boolean]

Clean themes workspace

$ arcgis styles clean

Removes any local scaffolding. This should be used when no more theme authoring
is to be done in the working directory.

Options:
      --version      Show version number                                   [boolean]
      -f, --force    required to clean any local scaffolding used by this utility
                                                                           [boolean]
      -h, --help     Show help                                             [boolean]

Scaffold styling workspace

$ arcgis styles scaffold

Sets up project scaffolding. This is done automatically when creating a theme
for the first time.

Options:
      --version      Show version number                                   [boolean]
      -f, --force    forces creation of project scaffolding                [boolean]
      -h, --help     Show help                                             [boolean]

Issues

Find a bug or want to request a new feature enhancement? Let us know by submitting an issue.

Contributing

Anyone and everyone is welcome to contribute. We do accept pull requests.

  1. Get involved
  2. Report issues
  3. Contribute code
  4. Improve documentation

Licensing

Copyright 2020 Esri

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

A copy of the license is available in the repository's LICENSE file

About

CLI to build a template application and widgets using the ArcGIS API for JavaScript

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 59.1%
  • JavaScript 26.6%
  • SCSS 7.3%
  • HTML 3.9%
  • EJS 1.5%
  • CSS 1.5%
  • Shell 0.1%