What is Yeoman?
Trick question. It's not a thing. It's this guy:
Basically, he wears a top hat, lives in your computer, and waits for you to tell him what kind of application you wish to create.
Not every new computer comes with a Yeoman pre-installed. He lives in the npm package repository. You only have to ask for him once, then he packs up and moves into your hard drive. Make sure you clean up, he likes new and shiny things.
npm install -g yo npm install -g bower
Bower is a required dependency of using the packages in the generated app.
Yeoman travels light. He didn't pack any generators when he moved in. You can think of a generator like a plug-in. You get to choose what type of application you wish to create, such as a Backbone application or even a Chrome extension.
To install generator-arcgis-js-app from npm, run:
npm install -g generator-arcgis-js-app
Finally, initiate the generator inside application folder:
yo arcgis-js-app application-name
You will be asked:
- Application name if not provided
- Description of application
- ArcGIS API Version (3.x or 4.x)
- Use Stylus or Sass
- Email to be used in package information
Will create component and tests. Updates
intern.js with test suite.
What is used?
- Output application uses GruntJS for running tasks
- All code is written in ES6/ES2015 and transpiled with babel
- Uses eslint to lint code
- Uses stylus or sass as a css preprocessor
- Uses livereload for easier development workflow
grunt - default task, will output code to a
dist folder with sourcemaps.
grunt dev - will start a local server on at
http://localhost:8282/ and watch for changes. Uses livereload to refresh browser with each update.
http://localhost:8282/dist/ - application
http://localhost:8282/node_modules/intern/client.html?config=tests/intern - test suites
grunt build - build the application and output to a
grunt e2e - runs all tests using local chromedriver.
Still a beta
- Considering implementing a widgetloader
- Needs ability to inject code into Application.js
- Guide on application architecture
Uses theintern.io for testing.
It is recommended that you use NPM 3.x to install dependencies, as this will reduce the time it takes for Babel to transpile ES2015 code.
Getting To Know Yeoman
Yeoman has a heart of gold. He's a person with feelings and opinions, but he's very easy to work with. If you think he's too opinionated, he can be easily convinced.