{"_id":"grunt-crane","_rev":"32-3ddbdd9ec877fa95f328444ab02189eb","name":"grunt-crane","description":"static file builder set","dist-tags":{"latest":"0.2.5"},"versions":{"0.0.1":{"name":"grunt-crane","description":"static file builder set","version":"0.0.1","homepage":"https://github.com/j1anb1n/grunt-crane","author":{"name":"j1anb1n","email":"chan.jianbin@gmail.com"},"repository":{"type":"git","url":"https://github.com/j1anb1n/grunt-crane.git"},"bugs":{"url":"https://github.com/j1anb1n/grunt-crane/issues"},"licenses":[{"type":"MIT","url":"https://github.com/j1anb1n/gruntcrane/blob/master/LICENSE"}],"main":"Gruntfile.js","engines":{"node":">= 0.8.0"},"devDependencies":{"sqwish":">=0.0.1","rsyncwrapper":">=0.0.1","less":">=1.3.3","grunt-contrib-jshint":">=0.1.1","grunt-contrib-uglify":">=0.1.1","grunt-contrib-concat":">=0.1.2","grunt":"~0.4.0"},"peerDependencies":{"grunt-contrib-jshint":">=0.1.1","grunt-contrib-uglify":">=0.1.1","grunt-contrib-concat":">=0.1.2","grunt":"~0.4.0"},"keywords":["gruntplugin"],"_id":"grunt-crane@0.0.1","dist":{"shasum":"d0dc8249adbb29faa2f37ee77b71f6876a8ab540","tarball":"https://registry.npmjs.org/grunt-crane/-/grunt-crane-0.0.1.tgz","integrity":"sha512-V/WnibCLstGPEzFnETaDdp/nRtM7NAtHgsHhjd7egnAk+x6go25Y/24BhFF8daTsNQHu91Dfx6PExhL8pzB/DQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDurR50zlE687QhsfIU+/POXQa3m/kjbIehKiiXU59FdgIgF3F+4JNuHdoif5eSOI2uNNmD+XhgrMobYg1wSMsAhDU="}]},"_npmVersion":"1.1.65","_npmUser":{"name":"j1anb1n","email":"chan.jianbin@gmail.com"},"maintainers":[{"name":"j1anb1n","email":"chan.jianbin@gmail.com"}]},"0.0.2":{"name":"grunt-crane","description":"static file builder set","version":"0.0.2","homepage":"https://github.com/j1anb1n/grunt-crane","author":{"name":"j1anb1n","email":"chan.jianbin@gmail.com"},"repository":{"type":"git","url":"https://github.com/j1anb1n/grunt-crane.git"},"bugs":{"url":"https://github.com/j1anb1n/grunt-crane/issues"},"licenses":[{"type":"MIT","url":"https://github.com/j1anb1n/gruntcrane/blob/master/LICENSE"}],"main":"Gruntfile.js","engines":{"node":">= 0.8.0"},"dependencies":{"sqwish":">=0.0.1","rsyncwrapper":">=0.0.1","less":">=1.3.3","grunt-contrib-jshint":">=0.1.1","grunt-contrib-uglify":">=0.1.1","grunt-contrib-concat":">=0.1.2","grunt":"~0.4.0"},"peerDependencies":{"grunt":"~0.4.0"},"keywords":["gruntplugin"],"_id":"grunt-crane@0.0.2","dist":{"shasum":"e34c71a15ca8ced0b471e41f83301d27c78582a1","tarball":"https://registry.npmjs.org/grunt-crane/-/grunt-crane-0.0.2.tgz","integrity":"sha512-lHi4WiR3209tbdPiV92QXuoj7Etpr8XcPY6xbzkT7blo+A8+RUfg2zyW0PvPcMrWTBoLpfg+SUYsKv1FNLco/w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGg2yEEpQlV/U95mUR3SZW2CSn4xhmmJgv4K44L/CO6YAiBqMaNfzCuZj2sogPSM+V+d7gBnWAeSbKxey6y3w+5wpQ=="}]},"_npmVersion":"1.1.65","_npmUser":{"name":"j1anb1n","email":"chan.jianbin@gmail.com"},"maintainers":[{"name":"j1anb1n","email":"chan.jianbin@gmail.com"}]},"0.0.3":{"name":"grunt-crane","description":"static file builder set","version":"0.0.3","homepage":"https://github.com/j1anb1n/grunt-crane","author":{"name":"j1anb1n","email":"chan.jianbin@gmail.com"},"repository":{"type":"git","url":"https://github.com/j1anb1n/grunt-crane.git"},"bugs":{"url":"https://github.com/j1anb1n/grunt-crane/issues"},"licenses":[{"type":"MIT","url":"https://github.com/j1anb1n/gruntcrane/blob/master/LICENSE"}],"main":"Gruntfile.js","engines":{"node":">= 0.8.0"},"dependencies":{"sqwish":">=0.0.1","rsyncwrapper":">=0.0.1","less":">=1.3.3","grunt-contrib-jshint":">=0.1.1","grunt-contrib-uglify":">=0.1.1","grunt-contrib-concat":">=0.1.2","grunt":"~0.4.0"},"peerDependencies":{"grunt":"~0.4.0"},"keywords":["gruntplugin"],"_id":"grunt-crane@0.0.3","dist":{"shasum":"447abf1fc2671198249e75e3ad55de920beb1b1f","tarball":"https://registry.npmjs.org/grunt-crane/-/grunt-crane-0.0.3.tgz","integrity":"sha512-m7z2NUxOUfeGKciC3PCejweZvLef+y/B60dkeKFekQ/tr1/K5zL4Mn0d4X2mR/lrRkYf46ugoL1og5S7cbrH/Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDZauomvKbz/GYYAg74l6TW/OMvKfu3gIFh4eF+gLm9VgIgVI6We0tZHeF5hFMzDnijqo6uNCy+wQ413G6W+OpyEcI="}]},"_npmVersion":"1.1.65","_npmUser":{"name":"j1anb1n","email":"chan.jianbin@gmail.com"},"maintainers":[{"name":"j1anb1n","email":"chan.jianbin@gmail.com"}]},"0.0.4":{"name":"grunt-crane","description":"static file builder set","version":"0.0.4","homepage":"https://github.com/j1anb1n/grunt-crane","author":{"name":"j1anb1n","email":"chan.jianbin@gmail.com"},"repository":{"type":"git","url":"https://github.com/j1anb1n/grunt-crane.git"},"bugs":{"url":"https://github.com/j1anb1n/grunt-crane/issues"},"licenses":[{"type":"MIT","url":"https://github.com/j1anb1n/gruntcrane/blob/master/LICENSE"}],"main":"Gruntfile.js","engines":{"node":">= 0.8.0"},"dependencies":{"sqwish":">=0.0.1","rsyncwrapper":">=0.0.1","less":">=1.3.3","grunt-contrib-jshint":">=0.1.1","grunt-contrib-uglify":">=0.1.1","grunt-contrib-concat":">=0.1.2","grunt":"~0.4.0"},"peerDependencies":{"grunt":"~0.4.0"},"keywords":["gruntplugin"],"_id":"grunt-crane@0.0.4","dist":{"shasum":"40f7e95b241e4abf6a4628d51d4827f32c779c4f","tarball":"https://registry.npmjs.org/grunt-crane/-/grunt-crane-0.0.4.tgz","integrity":"sha512-uMGkEfAW3px0e8YrZO68e1dh0DY4DF5xUXXE17y9Yo0rH0xWYHe2OZwh4YqBapssgThvc+UZI4IautlwrA0j0g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAN1/Bf4pzXUwd5O26jbOkQYRw7Y/bzVIq32lOnLdmQyAiBuok/tiund2U1+a8oyMa4KphxjesvUuZ6Us7yK7f5kdw=="}]},"_npmVersion":"1.1.65","_npmUser":{"name":"j1anb1n","email":"chan.jianbin@gmail.com"},"maintainers":[{"name":"j1anb1n","email":"chan.jianbin@gmail.com"}]},"0.0.5":{"name":"grunt-crane","description":"static file builder set","version":"0.0.5","homepage":"https://github.com/j1anb1n/grunt-crane","author":{"name":"j1anb1n","email":"chan.jianbin@gmail.com"},"repository":{"type":"git","url":"https://github.com/j1anb1n/grunt-crane.git"},"bugs":{"url":"https://github.com/j1anb1n/grunt-crane/issues"},"licenses":[{"type":"MIT","url":"https://github.com/j1anb1n/gruntcrane/blob/master/LICENSE"}],"main":"Gruntfile.js","engines":{"node":">= 0.8.0"},"dependencies":{"sqwish":">=0.0.1","rsyncwrapper":">=0.0.1","less":">=1.3.3","grunt-contrib-jshint":">=0.1.1","grunt-contrib-uglify":">=0.1.1","grunt-contrib-concat":">=0.1.2","grunt":"~0.4.0"},"peerDependencies":{"grunt":"~0.4.0"},"keywords":["gruntplugin"],"_id":"grunt-crane@0.0.5","dist":{"shasum":"61089d85fc697b7ac01b93d1e3462fbf02ee9517","tarball":"https://registry.npmjs.org/grunt-crane/-/grunt-crane-0.0.5.tgz","integrity":"sha512-XutS1buZGcq/K9z3DXUdkcHTEwKbvz3eftfmu1QTFw8eexn2O3BAk5R/5sG4LPRJD5sJ1XzcqBrzvuOH0ne3xQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDL2froh+ePBFuy9PFywb6+c4RyQ+TV0iH1wwPziFbhZQIhAJATnFfk8MBn/CNAY+Ru+czLM0VLRLd8hhBHAWyPECZV"}]},"_npmVersion":"1.1.65","_npmUser":{"name":"j1anb1n","email":"chan.jianbin@gmail.com"},"maintainers":[{"name":"j1anb1n","email":"chan.jianbin@gmail.com"}]},"0.0.6":{"name":"grunt-crane","description":"static file builder set","version":"0.0.6","homepage":"https://github.com/j1anb1n/grunt-crane","author":{"name":"j1anb1n","email":"chan.jianbin@gmail.com"},"repository":{"type":"git","url":"https://github.com/j1anb1n/grunt-crane.git"},"bugs":{"url":"https://github.com/j1anb1n/grunt-crane/issues"},"licenses":[{"type":"MIT","url":"https://github.com/j1anb1n/gruntcrane/blob/master/LICENSE"}],"main":"Gruntfile.js","engines":{"node":">= 0.8.0"},"dependencies":{"sqwish":">=0.0.1","rsyncwrapper":">=0.0.1","less":">=1.3.3","grunt-contrib-jshint":">=0.1.1","grunt-contrib-uglify":">=0.1.1","grunt-contrib-concat":">=0.1.2","grunt":"~0.4.0"},"peerDependencies":{"grunt":"~0.4.0"},"keywords":["gruntplugin"],"_id":"grunt-crane@0.0.6","dist":{"shasum":"338784fe5bf45f44b52ce79bb3fc83a7d2b8451f","tarball":"https://registry.npmjs.org/grunt-crane/-/grunt-crane-0.0.6.tgz","integrity":"sha512-AGrbqoQfESJSNExHmC7XEVOycpZynqfuHuairjQ5tB/m9hV/oT/X/FKORBR988Ppr1kUj6sXwzE03rMbU84pzA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCt628+/wsR6T4o+cpOPJ3tROGZSCEgcq+hrVAotBAx/wIgOg+xSeegl2A0nEVGuc1rc/DxyajlT+fD2zvszTkvuRU="}]},"_npmVersion":"1.1.65","_npmUser":{"name":"j1anb1n","email":"chan.jianbin@gmail.com"},"maintainers":[{"name":"j1anb1n","email":"chan.jianbin@gmail.com"}]},"0.1.0":{"name":"grunt-crane","description":"static file builder set","version":"0.1.0","homepage":"https://github.com/j1anb1n/grunt-crane","author":{"name":"j1anb1n","email":"chan.jianbin@gmail.com"},"repository":{"type":"git","url":"https://github.com/j1anb1n/grunt-crane.git"},"bugs":{"url":"https://github.com/j1anb1n/grunt-crane/issues"},"licenses":[{"type":"MIT","url":"https://github.com/j1anb1n/gruntcrane/blob/master/LICENSE"}],"main":"Gruntfile.js","engines":{"node":">= 0.8.0"},"dependencies":{"sqwish":">=0.0.1","rsyncwrapper":">=0.0.1","less":">=1.3.3","grunt-contrib-jshint":">=0.1.1","grunt-contrib-uglify":">=0.1.1","grunt-contrib-concat":">=0.1.2","grunt":"~0.4.0"},"keywords":["gruntplugin"],"_id":"grunt-crane@0.1.0","dist":{"shasum":"25fd0a5fb268795132dbb390435e91280bffea89","tarball":"https://registry.npmjs.org/grunt-crane/-/grunt-crane-0.1.0.tgz","integrity":"sha512-kU/mQkpRi9uyka58pjzh+2fTd4+zmHkeO9tjlXzaTU5UhQzT7nLcctP1Lrd+hoCN7EHQzzd7HuFfoEAM8pPzkg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCjq62SDNS9UrtjDmXax5WXFKukqoz5+T7MmLHET7pudwIgEWEFG6e2pXMo3RYKbbqnX5nBIdSqo1yHc9QrXe3uf5g="}]},"_npmVersion":"1.1.65","_npmUser":{"name":"j1anb1n","email":"chan.jianbin@gmail.com"},"maintainers":[{"name":"j1anb1n","email":"chan.jianbin@gmail.com"}]},"0.1.1":{"name":"grunt-crane","description":"static file builder set","version":"0.1.1","homepage":"https://github.com/j1anb1n/grunt-crane","author":{"name":"j1anb1n","email":"chan.jianbin@gmail.com"},"repository":{"type":"git","url":"https://github.com/j1anb1n/grunt-crane.git"},"bugs":{"url":"https://github.com/j1anb1n/grunt-crane/issues"},"licenses":[{"type":"MIT","url":"https://github.com/j1anb1n/gruntcrane/blob/master/LICENSE"}],"main":"Gruntfile.js","engines":{"node":">= 0.8.0"},"dependencies":{"sqwish":">=0.0.1","rsyncwrapper":">=0.0.1","less":">=1.3.3","grunt-contrib-jshint":">=0.1.1","grunt-contrib-uglify":">=0.1.1","grunt-contrib-concat":">=0.1.2","grunt":"~0.4.0","rework":"*"},"keywords":["gruntplugin"],"_id":"grunt-crane@0.1.1","dist":{"shasum":"9b6fb04cdc5ec577596c6cf6bfab4a30adc8ca07","tarball":"https://registry.npmjs.org/grunt-crane/-/grunt-crane-0.1.1.tgz","integrity":"sha512-Enn1H9Ck30E4iSq+KecczHDfUmEDt4MRAv1L5czQg66oUyYeBs3pTvmCNPLNLQiCJEw/Vg6C5RVuMKLLnbZ01A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD0eHKXWwcZHsOclzVws5nydouEMnsHFW8gJx9H55ruDQIhAJOj23n8Mj50PgoQxnV/M8H7Qx8n4O1XURWl05F/ScWn"}]},"_npmVersion":"1.1.65","_npmUser":{"name":"j1anb1n","email":"chan.jianbin@gmail.com"},"maintainers":[{"name":"j1anb1n","email":"chan.jianbin@gmail.com"}]},"0.2.0":{"name":"grunt-crane","description":"static file builder set","version":"0.2.0","homepage":"https://github.com/j1anb1n/grunt-crane","author":{"name":"j1anb1n","email":"chan.jianbin@gmail.com"},"repository":{"type":"git","url":"https://github.com/j1anb1n/grunt-crane.git"},"bugs":{"url":"https://github.com/j1anb1n/grunt-crane/issues"},"licenses":[{"type":"MIT","url":"https://github.com/j1anb1n/gruntcrane/blob/master/LICENSE"}],"main":"index.js","engines":{"node":">= 0.8.0"},"dependencies":{"sqwish":">=0.0.1","less":">=1.3.3","grunt-contrib-jshint":">=0.1.1","grunt-contrib-uglify":">=0.1.1","grunt-contrib-concat":">=0.1.2","grunt":"~0.4.0","rework":"*","uglify-js":"*","async":"*","gaze":"~0.4.3"},"keywords":["gruntplugin"],"_id":"grunt-crane@0.2.0","dist":{"shasum":"3dce6dc69c4f746975cd190c4bd39fb7947542d3","tarball":"https://registry.npmjs.org/grunt-crane/-/grunt-crane-0.2.0.tgz","integrity":"sha512-o2SNH3aJXG+SKTNN6s0339N6KjJfNgHcsaNSJezkn/3rGEyese6rIPgb1VTeQzgoM2lZQNZImVQBntoptlYeRg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICs/2/8qfkcvWv9niVPlaHtuuEV4KjJmfbew+5W5J8ZlAiBJG4D8wq8ZtNzkIuT5i3kgc7OLe7Ph9WYjZd71tvH2ig=="}]},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"j1anb1n","email":"chan.jianbin@gmail.com"},"maintainers":[{"name":"j1anb1n","email":"chan.jianbin@gmail.com"}]},"0.2.1":{"name":"grunt-crane","description":"static file builder set","version":"0.2.1","homepage":"https://github.com/j1anb1n/grunt-crane","author":{"name":"j1anb1n","email":"chan.jianbin@gmail.com"},"repository":{"type":"git","url":"https://github.com/j1anb1n/grunt-crane.git"},"bugs":{"url":"https://github.com/j1anb1n/grunt-crane/issues"},"licenses":[{"type":"MIT","url":"https://github.com/j1anb1n/gruntcrane/blob/master/LICENSE"}],"main":"index.js","engines":{"node":">= 0.8.0"},"dependencies":{"sqwish":">=0.0.1","less":">=1.3.3","grunt-contrib-jshint":">=0.1.1","grunt-contrib-uglify":">=0.1.1","grunt-contrib-concat":">=0.1.2","grunt":"~0.4.0","rework":"*","uglify-js":"*","async":"*","gaze":"~0.4.3"},"keywords":["gruntplugin"],"_id":"grunt-crane@0.2.1","dist":{"shasum":"da8898dc5909a12bb4de28d4ae7571ab178299d9","tarball":"https://registry.npmjs.org/grunt-crane/-/grunt-crane-0.2.1.tgz","integrity":"sha512-oZMjs7DzB5yEPrLLkU4KECawA+5niMA+dxwKzUQ6/8jN8ZKAF3ECbK0IpijPH197PIZp8gnhhFllWbpdPraDnw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC7aXdW2oLUtmkfRntJwHJjfpqghELimxxFs3Kw/AI08AiEAjSLpAYh6HB8ZhRVm8+Cl4cu4q5yt80VgqHiu41VbtoM="}]},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"j1anb1n","email":"chan.jianbin@gmail.com"},"maintainers":[{"name":"j1anb1n","email":"chan.jianbin@gmail.com"}]},"0.2.2":{"name":"grunt-crane","description":"static file builder set","version":"0.2.2","homepage":"https://github.com/j1anb1n/grunt-crane","author":{"name":"j1anb1n","email":"chan.jianbin@gmail.com"},"repository":{"type":"git","url":"https://github.com/j1anb1n/grunt-crane.git"},"bugs":{"url":"https://github.com/j1anb1n/grunt-crane/issues"},"licenses":[{"type":"MIT","url":"https://github.com/j1anb1n/gruntcrane/blob/master/LICENSE"}],"main":"index.js","engines":{"node":">= 0.8.0"},"dependencies":{"sqwish":">=0.0.1","less":">=1.3.3","grunt-contrib-jshint":">=0.1.1","grunt-contrib-uglify":">=0.1.1","grunt-contrib-concat":">=0.1.2","grunt":"~0.4.0","rework":"*","uglify-js":"*","async":"*","gaze":"~0.4.3","progress":"~1.1.2"},"keywords":["gruntplugin"],"_id":"grunt-crane@0.2.2","dist":{"shasum":"73ee3abb8072be8c741e4ea685078a408df2fe05","tarball":"https://registry.npmjs.org/grunt-crane/-/grunt-crane-0.2.2.tgz","integrity":"sha512-QJOMUmFGRdfNIviAeUA84L2g98cKferUwY6XOxJtVEQn1dbSnkXShwaeKbL7V27Nuu+6j9ZC4rlfU+0whBxNXQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC7UsB28KKgVAqJ1jBSh+/IvbUv3w+oB1F0u3Ky6FnUhAiEA6kTVDJGLv2K/OPSy+Lz22jPlZPcE7k3Bv6J6AUJJvcY="}]},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"j1anb1n","email":"chan.jianbin@gmail.com"},"maintainers":[{"name":"j1anb1n","email":"chan.jianbin@gmail.com"}]},"0.2.3":{"name":"grunt-crane","description":"static file builder set","version":"0.2.3","homepage":"https://github.com/j1anb1n/grunt-crane","author":{"name":"j1anb1n","email":"chan.jianbin@gmail.com"},"repository":{"type":"git","url":"https://github.com/j1anb1n/grunt-crane.git"},"bugs":{"url":"https://github.com/j1anb1n/grunt-crane/issues"},"licenses":[{"type":"MIT","url":"https://github.com/j1anb1n/gruntcrane/blob/master/LICENSE"}],"main":"index.js","engines":{"node":">= 0.8.0"},"dependencies":{"sqwish":">=0.0.1","less":">=1.3.3","grunt-contrib-jshint":">=0.1.1","grunt-contrib-uglify":">=0.1.1","grunt-contrib-concat":">=0.1.2","grunt":"~0.4.0","rework":"*","uglify-js":"*","async":"*","gaze":"~0.4.3","progress":"~1.1.2"},"keywords":["gruntplugin"],"_id":"grunt-crane@0.2.3","dist":{"shasum":"fa9a0e03504556232aca6079a2bec7c83294e58d","tarball":"https://registry.npmjs.org/grunt-crane/-/grunt-crane-0.2.3.tgz","integrity":"sha512-ddFJahIR2LOGglP+2Rib4cwjBCrRtneAHVVztIWdsAX6xH//Rb2tUbIvsCdv8KlE51Rf/kld50RfbAqAhdW5Ug==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGG05BWfgpZY6LCL/3mOF8lOskUsoJR+5ZzZgAt3lcFBAiEA+24yq92bFFNXCMY8KE+NOf9RJGzOSX9oK7/7UiV2UaY="}]},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"j1anb1n","email":"chan.jianbin@gmail.com"},"maintainers":[{"name":"j1anb1n","email":"chan.jianbin@gmail.com"}]},"0.2.4":{"name":"grunt-crane","description":"static file builder set","version":"0.2.4","homepage":"https://github.com/j1anb1n/grunt-crane","author":{"name":"j1anb1n","email":"chan.jianbin@gmail.com"},"repository":{"type":"git","url":"https://github.com/j1anb1n/grunt-crane.git"},"bugs":{"url":"https://github.com/j1anb1n/grunt-crane/issues"},"licenses":[{"type":"MIT","url":"https://github.com/j1anb1n/gruntcrane/blob/master/LICENSE"}],"main":"index.js","engines":{"node":">= 0.8.0"},"dependencies":{"sqwish":">=0.0.1","less":">=1.3.3","grunt-contrib-jshint":">=0.1.1","grunt-contrib-uglify":">=0.1.1","grunt-contrib-concat":">=0.1.2","grunt":"~0.4.0","rework":"*","uglify-js":"*","async":"*","gaze":"~0.4.3","progress":"~1.1.2"},"keywords":["gruntplugin"],"_id":"grunt-crane@0.2.4","dist":{"shasum":"91bad5e1017ca1f95b1e2630eef2511941b45d51","tarball":"https://registry.npmjs.org/grunt-crane/-/grunt-crane-0.2.4.tgz","integrity":"sha512-AK9vTES9SKr2U7jvL79nPCqjIiSBm0m1WwpjgQqkukiklmKds2vO5YCZ7mJhZ7w+sgg116P0HVH38mZUgsBBpw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHyN+5UiL6Z4HYJdAefmskY8aeLl9BwHUjgB7nLZrvEyAiEAtQG9TXKVYKv96lUsp+J3rKXhx7e3RuBZtCu7YW3r200="}]},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"j1anb1n","email":"chan.jianbin@gmail.com"},"maintainers":[{"name":"j1anb1n","email":"chan.jianbin@gmail.com"}]},"0.2.5":{"name":"grunt-crane","description":"static file builder set","version":"0.2.5","homepage":"https://github.com/j1anb1n/grunt-crane","author":{"name":"j1anb1n","email":"chan.jianbin@gmail.com"},"repository":{"type":"git","url":"https://github.com/j1anb1n/grunt-crane.git"},"bugs":{"url":"https://github.com/j1anb1n/grunt-crane/issues"},"licenses":[{"type":"MIT","url":"https://github.com/j1anb1n/gruntcrane/blob/master/LICENSE"}],"main":"index.js","engines":{"node":">= 0.8.0"},"dependencies":{"sqwish":">=0.0.1","less":">=1.3.3","grunt-contrib-jshint":">=0.1.1","grunt-contrib-uglify":">=0.1.1","grunt-contrib-concat":">=0.1.2","grunt":"~0.4.0","rework":"*","uglify-js":"*","async":"*","gaze":"~0.4.3","progress":"~1.1.2"},"keywords":["gruntplugin"],"_id":"grunt-crane@0.2.5","dist":{"shasum":"f4e5c4ca4f359f0f764ff2d7dfbec397a501336e","tarball":"https://registry.npmjs.org/grunt-crane/-/grunt-crane-0.2.5.tgz","integrity":"sha512-vgYnNq2O8QCRbsJJks+UWjeswcVc6QUV+Os68aC6Pcs3wRt/DgfK+TJ4GVd+I1XBOjjGO3sliNvFy19UDXmrkQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDbCU4aTeD5Li3t3BE2X/NAfYjwKTxy0Ds75J0OZK2ZTAiEAvf/IbqKGdScIT2iOw5T2vqJ2mL7gz9HS4ybI4S5UPdE="}]},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"j1anb1n","email":"chan.jianbin@gmail.com"},"maintainers":[{"name":"j1anb1n","email":"chan.jianbin@gmail.com"}]}},"readme":"# Grunt Crane\n> 一个基于grunt的G.js模块编译工具\n\n## How To Use\n1. ```mkdir YourProject```\n2. ```npm install grunt-crane --save-dev```\n3. 新建一个Gruntfile.js\n3. ```svn co YOUR_CODE ./src```\n4. edit your code\n5. ```grunt build:YOUR_FILE deploy --env=local```\n\n如果你不想手动编译代码，我们还提供了自动编译的功能，只要执行：\n```grunt watch```\n每次你保存代码，就会自动编译并分发。\n\n### 目录结构\n```\n  Your Project/\n        build/\n        src/\n        report/\n        config.json\n        package.json\n        Gruntfile.js\n```\n\n### 示例Gruntfile.js\n```javascript\nmodule.exports = function(grunt) {\n    var config = grunt.file.readJSON('config.json');\n    grunt.initConfig(config);\n\n    // load npm tasks\n    grunt.loadNpmTasks('grunt-contrib-jshint');\n    grunt.loadNpmTasks('grunt-crane');\n\n    grunt.registerTask('default', ['build']);\n};\n```\n\n# 关于Config.json\n示例\n\n```javascript\n{\n    \"rootpaths\": [\"http://static.gdotjs.org/\"],\n    \"src\": \"src/\",\n    \"dest\": \"build/\",\n    \"cacheExpire\": 604800000,\n    \"versionTemplate\": \"<%= url.href.replace(url.ext, '.__' + version + '__' + url.ext) %>\",\n    \"builder\": [\n        [\"config.json\", \"builder/config\"],\n        [\"**/*.tpl\", \"builder/template\"],\n        [\"g.js\", \"builder/copy\"],\n        [\"g-modern.js\", \"builder/copy\"],\n        [\"**/*.js\", \"builder/javascript\"],\n        [\"**/*.css\", \"builder/css\"],\n        [\"**/*.less\", \"builder/less\"],\n        [\"**/*.as\", \"builder/nothing\"],\n        [\"**/*\", \"builder/copy\"]\n    ],\n    \"deploy\": {\n        \"local\": [\n            [\"jianbin@127.0.0.1::static\", \"-avR\", \"--password-file=/Users/jianbin/.rsync_password\"]\n        ]\n    }\n}\n```\n\n\n\n> src\n\n源代码目录\n\n> dest\n\n编译目标目录\n\n> rootpaths\n\n这个标示着你的静态服务器的根路径，例如你有多台不同域名的静态服务器，你可以这么设置：\nrootpaths: ['http://sta1.a.com', 'http://sta2.a.com', 'http://static.b.com/v1/']\n\nrootpath会用于G.js的加载根路径，以及编译过程中对css中图片路径的处理之类的操作。\n\n> cacheExpire\n\ncacheExpire用来配置你的静态内容缓存的时间，这条配置将会用于生成版本号。\n\n> versionTemplate\n\n版本号的模板，遵循[microTemplate](http://ejohn.org/blog/javascript-micro-templating/)语法。\n示例中的:\n```<%= url.href.replace(url.ext, '.__' + version + '__' + url.ext) %>```\n\n生成的结果类似:```http://sta.a.com/lib/jquery/jquery.1.8.2.__1234567__.js```\n\n版本号会用于G.js加载模块时使用，以及css编译时，对于rootpaths下的图片文件也会自动添加版本号。\n\n> builder\n\n这条配置用于配置不同文件所适配的builder，配置采用数组形式。每一项为一个数组，第一项是文件的类型，第二个则标识着builder。\n文件只会匹配最先匹配到的一个builder进行编译，例如示例中的配置如果对g.js进行编译，则会匹配```builder/copy```，而不是```builder/javascript```。\n\n> deploy\n\ndeploy标识着分发服务器的配置。deploy可以为多个环境进行分发，例如：开发环境，测试环境，线上环境等。每个环境又可以对应着多台机器。\n目前deploy仅支持rsync的形式。\n\n# Tasks\n\n## grunt build\n这个任务用于编译文件，你可以指定文件路径进行编译，文件路径是相对于src目录的，例如编译```src/lib/jquery/jquery-1.8.2.js```:\n```\ngrunt build:lib/jquery/jquery-1.8.2.js\n```\n\n你也可以同时编译多个文件，用冒号隔开，例如：\n```\ngrunt build:file1:fil12\n```\n\n如果编译目标是一个文件夹，则会编译这个文件夹下的所有文件\n\n如果没有指定文件列表，则编译整个src目录。\n\n编译之后会生成一份报表json，保存在reports目录下。文件名是以当前时间戳生成，你可以通过```--token```参数来指定：\n```\ngrunt build --token=init\ngrunt build --token=issue-1\n```\n生成的report大致如下：\n```javascript\n{\n    \"token\": 1368069475232,\n    \"input\": [\n        \"lib/form/field.js\"\n    ],\n    \"files\": [\n        \"lib/form/field.js\"\n    ],\n    \"build\": {\n        \"config.json\": {\n            \"timestamp\": 1368069480000\n        },\n        \"config.js\": {\n            \"timestamp\": 1368069480000\n        },\n        \"lib/form/field.js\": {\n            \"timestamp\": 1368069480000\n        }\n    },\n    \"fail\": {}\n}\n```\n\n其中build字段就是这次编译任务所生成的文件，你使用这个字段进行分发。\n\n\n## grunt deploy\n这个任务用于分发文件，如果你跟build任务一起运行，那么会分发这次编译生成的文件。\n```\ngrunt build:lib/jquery/jquery-1.8.2.js deploy\n```\n\n你可以选择某个编译报告进行分发\n```\ngrunt deploy:issue-1\n```\n此时reports/issue-1.json中的build字段的文件将会被分发\n\n你可以通过```--env```参数来指定分发的目标环境:\n```\ngrunt deploy:issue-1 --env=local\n```\n这样可以通过rsync分发到你配置的local环境的所有机器上\n\n## grunt watch\n当处于开发状态时，每次保存都需要编译文件是一件很烦人的事情，因此我们提供了```watch```的功能。你只要简单的执行```grunt watch```，然后每次你保存代码的时候，编译和分发任务都会自动运行。\n\n\n# Comming soon\n\n1. 关于版本号\n","maintainers":[{"name":"j1anb1n","email":"chan.jianbin@gmail.com"}],"time":{"modified":"2022-06-18T14:46:07.457Z","created":"2013-03-05T08:17:44.052Z","0.0.1":"2013-03-05T08:17:46.644Z","0.0.2":"2013-03-05T08:35:52.672Z","0.0.3":"2013-03-14T08:14:26.007Z","0.0.4":"2013-03-14T09:14:48.125Z","0.0.5":"2013-03-15T05:51:51.277Z","0.0.6":"2013-03-15T08:06:23.488Z","0.1.0":"2013-05-08T13:36:48.850Z","0.1.1":"2013-05-24T14:53:51.008Z","0.2.0":"2013-11-05T05:56:59.296Z","0.2.1":"2013-11-05T06:36:11.046Z","0.2.2":"2013-11-05T07:18:56.248Z","0.2.3":"2013-11-05T08:07:26.772Z","0.2.4":"2013-11-05T09:09:51.255Z","0.2.5":"2014-01-15T05:50:17.339Z"},"author":{"name":"j1anb1n","email":"chan.jianbin@gmail.com"},"repository":{"type":"git","url":"https://github.com/j1anb1n/grunt-crane.git"},"readmeFilename":"README.md"}