123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- var json = require('rollup-plugin-json');
- var nodeResolve = require('rollup-plugin-node-resolve');
- var replace = require('rollup-plugin-replace');
- var pkg = require('./package.json');
- var projs = [
- 'tmerc',
- 'etmerc',
- 'utm',
- 'sterea',
- 'stere',
- 'somerc',
- 'omerc',
- 'lcc',
- 'krovak',
- 'cass',
- 'laea',
- 'aea',
- 'gnom',
- 'cea',
- 'eqc',
- 'poly',
- 'nzmg',
- 'mill',
- 'sinu',
- 'moll',
- 'eqdc',
- 'vandg',
- 'aeqd',
- 'ortho',
- 'qsc',
- 'robin',
- 'geocent',
- 'tpers',
- 'geos'
- ];
- module.exports = function (grunt) {
- grunt.initConfig({
- pkg: grunt.file.readJSON('package.json'),
- connect: {
- server: {
- options: {
- port: process.env.PORT || 8080,
- base: '.'
- }
- }
- },
- mocha_phantomjs: {
- all: {
- options: {
- reporter: "dot",
- urls: [ //my ide requries process.env.IP and PORT
- "http://" + (process.env.IP || "127.0.0.1") + ":" + (process.env.PORT || "8080") + "/test/amd.html",
- "http://" + (process.env.IP || "127.0.0.1") + ":" + (process.env.PORT || "8080") + "/test/opt.html"
- ]
- }
- }
- },
- jshint: {
- options: {
- jshintrc: "./.jshintrc"
- },
- all: ['./lib/*.js', './lib/*/*.js']
- },
- rollup: {
- options: {
- format: "umd",
- moduleName: "proj4",
- plugins: [
- replace({
- __VERSION__: pkg.version
- }),
- json(),
- nodeResolve()
- ]
- },
- files: {
- dest: './dist/proj4-src.js',
- src: './lib/index.js',
- },
- },
- uglify: {
- options: {
- report: 'gzip',
- mangle:{
- reserved: ['proj4','Projection','Point']
- },
- },
- all: {
- src: 'dist/proj4-src.js',
- dest: 'dist/proj4.js'
- }
- }
- });
- grunt.loadNpmTasks('grunt-rollup');
- grunt.loadNpmTasks('grunt-contrib-uglify');
- grunt.loadNpmTasks('grunt-contrib-jshint');
- grunt.loadNpmTasks('grunt-contrib-connect');
- grunt.loadNpmTasks('grunt-mocha-phantomjs');
- grunt.registerTask('custom',function(){
- grunt.task.run('rollup', 'uglify');
- var projections = this.args;
- if(projections[0]==='default'){
- grunt.file.write('./projs.js','export default function(){}');
- return;
- }
- if(projections[0]==='all'){
- projections = projs;
- }
- grunt.file.write('./projs.js',[
- projections.map(function(proj) {
- return "import " + proj + " from './lib/projections/" + proj + "';";
- }).join("\n"),
- "export default function(proj4){",
- projections.map(function(proj) {
- return " proj4.Proj.projections.add(" + proj + ");"
- }).join("\n"),
- "}"
- ].join("\n"));
- });
- grunt.registerTask('build',function(){
- var args = this.args.length?this.args[0].split(','):['default'];
- grunt.task.run('jshint', 'custom:'+args.join(':'));
- });
- grunt.registerTask('default', ['build:all', 'connect','mocha_phantomjs']);
- };
|