Developer Quickstart for Windows¶
1. Install Node with npm¶
Travel to the official NodeJS site and download the latest LTS release of NodeJS.
It is fine to install Node with all of the defaults. That will put the node command line in the PATH and install the NPM package manager.
2. Create a Folder for GeoMoose¶
These examples will use \GeoMoose
as the target folder.
3. Install Git¶
I would suggest GitHub Desktop. It’s a nice clean interface. Any Git client will work fine.
4. Clone the GeoMoose3 Repository¶
Upon installation GitHub Desktop the GUI will ask prompt the user if they wish to Add, Create, or Clone a repository. The GeoMoose/gm3 repository will not be immediately available unless you are a member of the geomoose GitHub organization.
If it is not available then double click on ‘Git shell’ and execute the following:
cd c:\GeoMoose
git clone https://github.com/geomoose/gm3.git
5. Install Packages¶
The best way to do this is using the command line. Upon up a shell (command, PowerShell, Git Shell) and run the following:
cd c:\GeoMoose\gm3
npm install
6. Run Tests (Optional)¶
From the command prompt:
cd c:\GeoMoose\gm3
npm test
Note: There are a couple of node modules (only required for some tests, not for building GeoMoose) that are somewhat difficult to install on Windows because they require compiling C/C++ code to install. These tests will be skipped if those modules aren’t installed. The remainder of the tests will run (and should pass).
7. Do an initial build and startup the application¶
Copy gm3\examples\config.js.example
to
gm3\examples\desktop\config.js
and edit it to match your machine’s
configuration for mapserver and the demo dataset for GeoMoose. For
example, if you have already installed MS4W (contains mapserver and
Apache web server), and the demo dataset for GeoMoose:
CONFIG = {
mapserver_url: 'http://localhost/cgi-bin/mapserv.exe',
mapfile_root: 'C:/ms4w/apps/gm3-demo-data/'
};
From the command prompt:
cd c:\GeoMoose\gm3
npm run build
npm start
Open GeoMoose in a browser: http://localhost:4000/examples/desktop/index.html
If you have a problem displaying demo map content in your browser, it
could be due to using MS4W’s Apache server on port 80 and Webpack
serving GeoMoose files on port 4000. This can be caused by a Cross
Origin Resource Sharing (CORS) restriction in your Apache configuration.
You can remove the restriction by editing the
C:\ms4w\Apache\conf\httpd.conf
file and adding the lines starting
with Header
:
#
# Configure MS4W locations and directories
#
<Location "/cgi-bin">
Options None
Require all granted
Header always set Access-Control-Allow-Origin "*"
Header always set Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT"
Header always set Access-Control-Max-Age "1000"
Header always set Access-Control-Allow-Headers "x-requested-with, Content-Type, origin, authorization, accept, client-security-token"
</Location>
8. Troubleshooting¶
If tests or the build unexpectedly fail, make sure your node_modules
directory is up to date. First, check that the package-lock.json
file is up to date with the repo (some npm commands will modify this
file and that may cause issues if that gets out of step with the main
code). Then delete the node_modules
directory and re-run
npm install
.
And feel free to ask questions on the geomoose-users mailing list