{"_id":"grunt-spm-server","_rev":"37-3dc665cee7dae05c0a8a5678bf9083d6","name":"grunt-spm-server","description":"A Grunt task plugin, transport `CommonJS` module dynamically for `SeaJS` environment.","dist-tags":{"latest":"0.2.7"},"versions":{"0.0.0":{"name":"grunt-spm-server","description":"A Grunt task plugin to transport `CommonJS` module to `CMD` module for `SeaJS` environment dynamically.","version":"0.0.0","homepage":"https://github.com/crossjs/grunt-spm-server","author":{"name":"crossjs","email":"liwenfu@crossjs.com"},"repository":{"type":"git","url":"git://github.com/crossjs/grunt-spm-server.git"},"bugs":{"url":"https://github.com/crossjs/grunt-spm-server/issues"},"licenses":[{"type":"MIT","url":"https://github.com/crossjs/grunt-spm-server/blob/master/LICENSE-MIT"}],"engines":{"node":">= 0.8.0"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"dependencies":{"chalk":"^0.5.1","finalhandler":"^0.3.2","handlebars":"^1.3.0","mime":"^1.2.11","serve-favicon":"^2.1.7","serve-index":"^1.5.2","spm-deps":"^0.0.1"},"devDependencies":{"grunt":"~0.4.2"},"peerDependencies":{"grunt":"~0.4.2"},"keywords":["gruntplugin","spm-server"],"gitHead":"d42f45c8501a2714965284044e40372fe157992a","_id":"grunt-spm-server@0.0.0","_shasum":"bc5e3399673c939a1dc556079982c097e852ee64","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"crossjs","email":"liwenfu@crossjs.com"},"maintainers":[{"name":"crossjs","email":"liwenfu@crossjs.com"}],"dist":{"shasum":"bc5e3399673c939a1dc556079982c097e852ee64","tarball":"https://registry.npmjs.org/grunt-spm-server/-/grunt-spm-server-0.0.0.tgz","integrity":"sha512-2S8UmUqLeaY70HmmKTp7tNwCK1Rmf+8yOrdbQ4WZh7PUKnlUxXzNyvWJPA6XOv1xJD06iw5x/BCyv8jBUREFdw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGB4TMWEiq/8zX7ILE5+cqPTG2aQW8RyAlHJqoTgm7QNAiEAwkLXr5vuPPT5+WnIteO9KLeTJV7nyf+SJXSrbOMS1ig="}]},"directories":{}},"0.0.1":{"name":"grunt-spm-server","description":"A Grunt task plugin to transport `CommonJS` module to `CMD` module for `SeaJS` environment dynamically.","version":"0.0.1","homepage":"https://github.com/crossjs/grunt-spm-server","author":{"name":"crossjs","email":"liwenfu@crossjs.com"},"repository":{"type":"git","url":"git://github.com/crossjs/grunt-spm-server.git"},"bugs":{"url":"https://github.com/crossjs/grunt-spm-server/issues"},"licenses":[{"type":"MIT","url":"https://github.com/crossjs/grunt-spm-server/blob/master/LICENSE-MIT"}],"engines":{"node":">= 0.8.0"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"dependencies":{"chalk":"^0.5.1","finalhandler":"^0.3.2","handlebars":"^1.3.0","mime":"^1.2.11","serve-favicon":"^2.1.7","serve-index":"^1.5.2","spm-deps":"^0.0.1"},"devDependencies":{"grunt":"~0.4.5"},"peerDependencies":{"grunt":"~0.4.5"},"keywords":["gruntplugin","spm-server"],"gitHead":"d42f45c8501a2714965284044e40372fe157992a","_id":"grunt-spm-server@0.0.1","_shasum":"3bf38c2142c71e8df9cde72692286245f84a5128","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"crossjs","email":"liwenfu@crossjs.com"},"maintainers":[{"name":"crossjs","email":"liwenfu@crossjs.com"}],"dist":{"shasum":"3bf38c2142c71e8df9cde72692286245f84a5128","tarball":"https://registry.npmjs.org/grunt-spm-server/-/grunt-spm-server-0.0.1.tgz","integrity":"sha512-Gceor7Zm0/0o+Y1f6pN9i2SUHu25Tp4Wz/iKyajipTN7FdqWO7q7eld1neXgCxkZPTTH4lGYBdPZx2vJukVFfw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDIYosjkFd0I+myAHfLVdpRpxLKkj+5NDQhIOj/MEp+1QIhAImLFvk8A1cAGnMlSO7j7fXPnx4IlNPqVmGKdB3ZlA5i"}]},"directories":{}},"0.0.2":{"name":"grunt-spm-server","description":"A Grunt task plugin to transport `CommonJS` module to `CMD` module for `SeaJS` environment dynamically.","version":"0.0.2","homepage":"https://github.com/crossjs/grunt-spm-server","author":{"name":"crossjs","email":"liwenfu@crossjs.com"},"repository":{"type":"git","url":"git://github.com/crossjs/grunt-spm-server.git"},"bugs":{"url":"https://github.com/crossjs/grunt-spm-server/issues"},"licenses":[{"type":"MIT","url":"https://github.com/crossjs/grunt-spm-server/blob/master/LICENSE-MIT"}],"engines":{"node":">= 0.8.0"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"dependencies":{"chalk":"^0.5.1","finalhandler":"^0.3.2","handlebars":"^1.3.0","mime":"^1.2.11","serve-favicon":"^2.1.7","serve-index":"^1.5.2","spm-deps":"^0.0.1"},"devDependencies":{"grunt":"~0.4.5"},"peerDependencies":{"grunt":"~0.4.5"},"keywords":["gruntplugin","spm-server"],"gitHead":"1c3cec4c6b1f9a7362486c72652c6b05a4b55d02","_id":"grunt-spm-server@0.0.2","_shasum":"3af35bee8e2b81d69246fe39a4e126fcf9a72e90","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"crossjs","email":"liwenfu@crossjs.com"},"maintainers":[{"name":"crossjs","email":"liwenfu@crossjs.com"}],"dist":{"shasum":"3af35bee8e2b81d69246fe39a4e126fcf9a72e90","tarball":"https://registry.npmjs.org/grunt-spm-server/-/grunt-spm-server-0.0.2.tgz","integrity":"sha512-qFtYu9WJIOobxNLMN4odvJ5wd0JqW5y15B+G82lOSxX8er3VADnN3iuh3GrbTJ4IhIsNBriRnzKsgP4US+pIDw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB1bHgGHErpgEyOGD+vuDqCT/FbHp9XwkRxnRqDpb+t/AiEAv24Jlfv153sUWc7cGyRSunSyxRLSQ0FLV91YvD6MdcU="}]},"directories":{}},"0.0.3":{"name":"grunt-spm-server","description":"A Grunt task plugin to transport `CommonJS` module to `CMD` module for `SeaJS` environment dynamically.","version":"0.0.3","homepage":"https://github.com/crossjs/grunt-spm-server","author":{"name":"crossjs","email":"liwenfu@crossjs.com"},"repository":{"type":"git","url":"git://github.com/crossjs/grunt-spm-server.git"},"bugs":{"url":"https://github.com/crossjs/grunt-spm-server/issues"},"licenses":[{"type":"MIT","url":"https://github.com/crossjs/grunt-spm-server/blob/master/LICENSE-MIT"}],"engines":{"node":">= 0.8.0"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"dependencies":{"chalk":"^0.5.1","finalhandler":"^0.3.2","handlebars":"^1.3.0","mime":"^1.2.11","serve-favicon":"^2.1.7","serve-index":"^1.5.2","spm-deps":"^0.0.1"},"devDependencies":{"grunt":"~0.4.5"},"peerDependencies":{"grunt":"~0.4.5"},"keywords":["gruntplugin","spm-server"],"gitHead":"66ea4c0adc2cd6963f309f24eeaa9238eda3d629","_id":"grunt-spm-server@0.0.3","_shasum":"7cc3581dad70db68174b241799b981091ee4fd9d","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"crossjs","email":"liwenfu@crossjs.com"},"maintainers":[{"name":"crossjs","email":"liwenfu@crossjs.com"}],"dist":{"shasum":"7cc3581dad70db68174b241799b981091ee4fd9d","tarball":"https://registry.npmjs.org/grunt-spm-server/-/grunt-spm-server-0.0.3.tgz","integrity":"sha512-46Z0NMB8d103lII4kQAVM27yrR+5voq/O63KVXz/7qiQaQ3rlaJ0U7AXCZedCobV81AZIWKXb2uSlmJY2ae1Kg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGM5p/JFfyxdw1133qS3i4GXXEI37SMOJtkBRqFge3GIAiAXCWAXqDeOkdQQWxbj1z4Jnv4vMx1aTNXPBAK7N5FJ4w=="}]},"directories":{}},"0.0.4":{"name":"grunt-spm-server","description":"A Grunt task plugin to transport `CommonJS` module to `CMD` module for `SeaJS` environment dynamically.","version":"0.0.4","homepage":"https://github.com/crossjs/grunt-spm-server","author":{"name":"crossjs","email":"liwenfu@crossjs.com"},"repository":{"type":"git","url":"git://github.com/crossjs/grunt-spm-server.git"},"bugs":{"url":"https://github.com/crossjs/grunt-spm-server/issues"},"licenses":[{"type":"MIT","url":"https://github.com/crossjs/grunt-spm-server/blob/master/LICENSE-MIT"}],"engines":{"node":">= 0.8.0"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"dependencies":{"chalk":"^0.5.1","finalhandler":"^0.3.2","handlebars":"^1.3.0","mime":"^1.2.11","serve-favicon":"^2.1.7","serve-index":"^1.5.2","spm-deps":"^0.0.1"},"devDependencies":{"grunt":"~0.4.5"},"peerDependencies":{"grunt":"~0.4.5"},"keywords":["gruntplugin","spm-server"],"gitHead":"f0d557904cc4173b6b7c6c71251d38d31b8492de","_id":"grunt-spm-server@0.0.4","_shasum":"d5ad3246d4f0730dac109db09a2b0afd32473d9c","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"crossjs","email":"liwenfu@crossjs.com"},"maintainers":[{"name":"crossjs","email":"liwenfu@crossjs.com"}],"dist":{"shasum":"d5ad3246d4f0730dac109db09a2b0afd32473d9c","tarball":"https://registry.npmjs.org/grunt-spm-server/-/grunt-spm-server-0.0.4.tgz","integrity":"sha512-0mVEvjdznho+mpJA3/LGnpuxoUKiyRJQF37HUdBM/cxCppc4pcRCLq0jQE/L4Feinil7HgkIf7KRPLdS2LPeSw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC8dNqwRvZZXPDWGR6yBX7MhwYvXM/+xyTh1vOye6Xl4wIhALEgyIzIXhWNm4WeZr10jyeokfe/qOATBMYy2qBEd50M"}]},"directories":{}},"0.1.0":{"name":"grunt-spm-server","description":"A Grunt task plugin to transport `CommonJS` module to `CMD` module for `SeaJS` environment dynamically.","version":"0.1.0","homepage":"https://github.com/crossjs/grunt-spm-server","author":{"name":"crossjs","email":"liwenfu@crossjs.com"},"repository":{"type":"git","url":"git://github.com/crossjs/grunt-spm-server.git"},"bugs":{"url":"https://github.com/crossjs/grunt-spm-server/issues"},"licenses":[{"type":"MIT","url":"https://github.com/crossjs/grunt-spm-server/blob/master/LICENSE-MIT"}],"engines":{"node":">= 0.8.0"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"dependencies":{"chalk":"^0.5.1","finalhandler":"^0.3.2","handlebars":"^1.3.0","mime":"^1.2.11","serve-favicon":"^2.1.7","serve-index":"^1.5.2","spm-deps":"^0.0.2"},"devDependencies":{"grunt":"~0.4.5","open":"0.0.5"},"peerDependencies":{"grunt":"~0.4.5"},"keywords":["gruntplugin","spm-server"],"gitHead":"38f9fb39d0dc38a83ab3d9512cf0b35dc69e5a0b","_id":"grunt-spm-server@0.1.0","_shasum":"1f6985d2d8b6f7b0c777a4d1a135550f727d9c67","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"crossjs","email":"liwenfu@crossjs.com"},"maintainers":[{"name":"crossjs","email":"liwenfu@crossjs.com"}],"dist":{"shasum":"1f6985d2d8b6f7b0c777a4d1a135550f727d9c67","tarball":"https://registry.npmjs.org/grunt-spm-server/-/grunt-spm-server-0.1.0.tgz","integrity":"sha512-sygtBDPqqhW0HHzZTYpkHo1ylzYv5d1MrK3uvaTxXW2h7EV7Ha9gSRzRD2a7pjeBxnW/DP/q2rXmNylK+OhD7Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDTzJq4r0ggNr2phefoF91SWbDmdQD3GQ3uMRnr29fbrwIhANFnzrongO3pK6AkT2f5UZZYlD7OwOsqBHPDIdGL7xgy"}]},"directories":{}},"0.1.1":{"name":"grunt-spm-server","description":"A Grunt task plugin to transport `CommonJS` module to `CMD` module for `SeaJS` environment dynamically.","version":"0.1.1","homepage":"https://github.com/crossjs/grunt-spm-server","author":{"name":"crossjs","email":"liwenfu@crossjs.com"},"repository":{"type":"git","url":"git://github.com/crossjs/grunt-spm-server.git"},"bugs":{"url":"https://github.com/crossjs/grunt-spm-server/issues"},"licenses":[{"type":"MIT","url":"https://github.com/crossjs/grunt-spm-server/blob/master/LICENSE-MIT"}],"engines":{"node":">= 0.8.0"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"dependencies":{"chalk":"^0.5.1","finalhandler":"^0.3.2","handlebars":"^1.3.0","mime":"^1.2.11","open":"0.0.5","serve-favicon":"^2.1.7","serve-index":"^1.5.2","spm-deps":"^0.0.2"},"devDependencies":{"grunt":"~0.4.5"},"peerDependencies":{"grunt":"~0.4.5"},"keywords":["gruntplugin","spm-server"],"gitHead":"38f9fb39d0dc38a83ab3d9512cf0b35dc69e5a0b","_id":"grunt-spm-server@0.1.1","_shasum":"3a0aac2caa33fb605581f3a706d679974e08321a","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"crossjs","email":"liwenfu@crossjs.com"},"maintainers":[{"name":"crossjs","email":"liwenfu@crossjs.com"}],"dist":{"shasum":"3a0aac2caa33fb605581f3a706d679974e08321a","tarball":"https://registry.npmjs.org/grunt-spm-server/-/grunt-spm-server-0.1.1.tgz","integrity":"sha512-5Ia1PfTKVqkz5g+ecUwwEHRU9NLrAPGuU4maZ0A1/haBO8xdE5qSjamPzCNFAMoONtSGlpEdGFHK6qh9VHE3fA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHRzM0mhoQZoNFrCMtR2tw/nWXPXDgPG/rnw9mRJWJGCAiBOIYk7VSPEgNxrUQIAZktTJobi86y4HVou2GVgOZscag=="}]},"directories":{}},"0.1.2":{"name":"grunt-spm-server","description":"A Grunt task plugin to transport `CommonJS` module to `CMD` module for `SeaJS` environment dynamically.","version":"0.1.2","homepage":"https://github.com/crossjs/grunt-spm-server","author":{"name":"crossjs","email":"liwenfu@crossjs.com"},"repository":{"type":"git","url":"git://github.com/crossjs/grunt-spm-server.git"},"bugs":{"url":"https://github.com/crossjs/grunt-spm-server/issues"},"licenses":[{"type":"MIT","url":"https://github.com/crossjs/grunt-spm-server/blob/master/LICENSE-MIT"}],"engines":{"node":">= 0.8.0"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"dependencies":{"chalk":"^0.5.1","finalhandler":"^0.3.2","handlebars":"^1.3.0","mime":"^1.2.11","open":"0.0.5","serve-favicon":"^2.1.7","serve-index":"^1.5.2","spm-deps":"^0.0.2"},"devDependencies":{"grunt":"~0.4.5"},"peerDependencies":{"grunt":"~0.4.5"},"keywords":["gruntplugin","spm-server"],"gitHead":"886afc6e9eee14a37b7befe83b5be25c4e6d9226","_id":"grunt-spm-server@0.1.2","_shasum":"20071e3966ff368f63d9a3279e256b8b54239b68","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"crossjs","email":"liwenfu@crossjs.com"},"maintainers":[{"name":"crossjs","email":"liwenfu@crossjs.com"}],"dist":{"shasum":"20071e3966ff368f63d9a3279e256b8b54239b68","tarball":"https://registry.npmjs.org/grunt-spm-server/-/grunt-spm-server-0.1.2.tgz","integrity":"sha512-qVZ9xyqiu0KrZ6IQuDFesP2w3ESyDijPUqJSyMyl7Ifn6CPcqnlur/p4CM4b3eVsQ6OMMxAM+vNapyrm+WSEcA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGUFqiUhZqFfDABt0XnGmi5UvXA5J6Wzk3+2h1eB5kpnAiEArFDaHhGb59l62lZscdC9eFmBgYKWDyWPYzGFB5ac8FY="}]},"directories":{}},"0.1.3":{"name":"grunt-spm-server","description":"A Grunt task plugin to transport `CommonJS` module to `CMD` module for `SeaJS` environment dynamically.","version":"0.1.3","homepage":"https://github.com/crossjs/grunt-spm-server","author":{"name":"crossjs","email":"liwenfu@crossjs.com"},"repository":{"type":"git","url":"git://github.com/crossjs/grunt-spm-server.git"},"bugs":{"url":"https://github.com/crossjs/grunt-spm-server/issues"},"licenses":[{"type":"MIT","url":"https://github.com/crossjs/grunt-spm-server/blob/master/LICENSE-MIT"}],"engines":{"node":">= 0.8.0"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"dependencies":{"chalk":"^0.5.1","finalhandler":"^0.3.2","handlebars":"^1.3.0","mime":"^1.2.11","open":"0.0.5","serve-favicon":"^2.1.7","serve-index":"^1.5.2","spm-deps":"^0.0.2"},"devDependencies":{"grunt":"~0.4.5"},"peerDependencies":{"grunt":"~0.4.5"},"keywords":["gruntplugin","spm-server"],"gitHead":"3b1724bdaad8784848f370aa60fbf53fc400713d","_id":"grunt-spm-server@0.1.3","_shasum":"0ee6e3f4887d60a49940dc5e4a2df1cf0710e103","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"crossjs","email":"liwenfu@crossjs.com"},"maintainers":[{"name":"crossjs","email":"liwenfu@crossjs.com"}],"dist":{"shasum":"0ee6e3f4887d60a49940dc5e4a2df1cf0710e103","tarball":"https://registry.npmjs.org/grunt-spm-server/-/grunt-spm-server-0.1.3.tgz","integrity":"sha512-yNh56w95wH2rBAwLi2/N0szuEayW50cSZFx3hYu7ayqGVCy36bAW8thhgFQd8BY5xP/56aSc7/uWYryRQ7OeAQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAosafjMX4hJ5N7wQEXMvj0n+sPFCD/UJCuLmDNZuTLeAiBF4jGuNk27OWbX/KfVCyAjlz1igk9/Rp7/Dsq5jAUNRA=="}]},"directories":{}},"0.2.0":{"name":"grunt-spm-server","description":"A Grunt task plugin to transport `CommonJS` module to `CMD` module for `SeaJS` environment dynamically.","version":"0.2.0","homepage":"https://github.com/crossjs/grunt-spm-server","author":{"name":"crossjs","email":"liwenfu@crossjs.com"},"repository":{"type":"git","url":"git://github.com/crossjs/grunt-spm-server.git"},"bugs":{"url":"https://github.com/crossjs/grunt-spm-server/issues"},"licenses":[{"type":"MIT","url":"https://github.com/crossjs/grunt-spm-server/blob/master/LICENSE-MIT"}],"engines":{"node":">= 0.8.0"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"dependencies":{"chalk":"^0.5.1","extend":"^2.0.0","finalhandler":"^0.3.2","handlebars":"^1.3.0","mime":"^1.2.11","open":"0.0.5","serve-favicon":"^2.1.7","serve-index":"^1.5.2","spm-deps":"^0.0.2"},"devDependencies":{"grunt":"~0.4.5"},"peerDependencies":{"grunt":"~0.4.5"},"keywords":["gruntplugin","spm-server"],"gitHead":"42123d0b167c09f355a75e769be0f6775199b078","_id":"grunt-spm-server@0.2.0","_shasum":"8aec8134641fe56c2e7ef9d4316e06b4b8811816","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"crossjs","email":"liwenfu@crossjs.com"},"maintainers":[{"name":"crossjs","email":"liwenfu@crossjs.com"}],"dist":{"shasum":"8aec8134641fe56c2e7ef9d4316e06b4b8811816","tarball":"https://registry.npmjs.org/grunt-spm-server/-/grunt-spm-server-0.2.0.tgz","integrity":"sha512-2umv+3YPMMsax9ByZglFoqCHqKaiTGYQ7nc/n7/nsWo7Nrna5bDTAI+Twj5q4dAHTD0naGD266okgbubqmJ/tQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCc2ClgFEp6GjH9CQi8bn7mx/Rxs3xMnJQsZRQTa4GadgIgaNVo3m/u2ZQGWeZ010sfxoz9ElZ/WgdvAF/zi3x0lQg="}]},"directories":{}},"0.2.1":{"name":"grunt-spm-server","description":"A Grunt task plugin to transport `CommonJS` module to `CMD` module for `SeaJS` environment dynamically.","version":"0.2.1","homepage":"https://github.com/crossjs/grunt-spm-server","author":{"name":"crossjs","email":"liwenfu@crossjs.com"},"repository":{"type":"git","url":"git://github.com/crossjs/grunt-spm-server.git"},"bugs":{"url":"https://github.com/crossjs/grunt-spm-server/issues"},"licenses":[{"type":"MIT","url":"https://github.com/crossjs/grunt-spm-server/blob/master/LICENSE-MIT"}],"engines":{"node":">= 0.8.0"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"dependencies":{"chalk":"^0.5.1","extend":"^2.0.0","finalhandler":"^0.3.2","handlebars":"^1.3.0","mime":"^1.2.11","open":"0.0.5","serve-favicon":"^2.1.7","serve-index":"^1.5.2","spm-deps":"^0.0.2"},"devDependencies":{"grunt":"~0.4.5"},"peerDependencies":{"grunt":"~0.4.5"},"keywords":["gruntplugin","spm-server"],"gitHead":"5ac499a7137a5ec838ae864da8cbe48c186ad6aa","_id":"grunt-spm-server@0.2.1","_shasum":"a2f8ca2802190777956f8183ed0e2481478175e8","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"crossjs","email":"liwenfu@crossjs.com"},"maintainers":[{"name":"crossjs","email":"liwenfu@crossjs.com"}],"dist":{"shasum":"a2f8ca2802190777956f8183ed0e2481478175e8","tarball":"https://registry.npmjs.org/grunt-spm-server/-/grunt-spm-server-0.2.1.tgz","integrity":"sha512-MriFPQII8TcrR+ujwdhQWUuSGXyLsc8an8KxQoblFGBI+kEYtL2PvFHFv/RvVl+LlGqbYlzvG6g5/uJBuSOo8g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHa3DsJ6MxDNMPX1lcLijj/8s0vMxU5c4PcQmnR2+2WiAiBLIj5u/zrdIa2i8ypFJ1YuDeUa+CqzgaEjTNk13z3XXA=="}]},"directories":{}},"0.2.2":{"name":"grunt-spm-server","description":"A Grunt task plugin to transport `CommonJS` module to `CMD` module for `SeaJS` environment dynamically.","version":"0.2.2","homepage":"https://github.com/crossjs/grunt-spm-server","author":{"name":"crossjs","email":"liwenfu@crossjs.com"},"repository":{"type":"git","url":"git://github.com/crossjs/grunt-spm-server.git"},"bugs":{"url":"https://github.com/crossjs/grunt-spm-server/issues"},"licenses":[{"type":"MIT","url":"https://github.com/crossjs/grunt-spm-server/blob/master/LICENSE-MIT"}],"engines":{"node":">= 0.8.0"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"dependencies":{"chalk":"^0.5.1","extend":"^2.0.0","finalhandler":"^0.3.2","handlebars":"^1.3.0","mime":"^1.2.11","open":"0.0.5","serve-favicon":"^2.1.7","serve-index":"^1.5.2","spm-deps":"^0.0.2"},"devDependencies":{"grunt":"~0.4.5"},"peerDependencies":{"grunt":"~0.4.5"},"keywords":["gruntplugin","spm-server"],"gitHead":"202596de8c93824b00c03109d098dd11d885f81c","_id":"grunt-spm-server@0.2.2","_shasum":"716df4c60962184ab7cdf82909f8dd3d944efac7","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"crossjs","email":"liwenfu@crossjs.com"},"maintainers":[{"name":"crossjs","email":"liwenfu@crossjs.com"}],"dist":{"shasum":"716df4c60962184ab7cdf82909f8dd3d944efac7","tarball":"https://registry.npmjs.org/grunt-spm-server/-/grunt-spm-server-0.2.2.tgz","integrity":"sha512-Eix//KlaVIZnFZVQdPjb4qEPgp984q5BLgm04f6oamzhtcKAmyM7Fc7IzpayOL9ku7d9jw5wv6F3w1da8aVcrA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDSI7l0Ig1kogisGVYQYbCWOj520BJBY6jK32doK8SuAgIgN7gKVxY8aSUCC6puDZw2C5wJd3R6LR4zc7TqYi40fqQ="}]},"directories":{}},"0.2.3":{"name":"grunt-spm-server","description":"A Grunt task plugin, transport `CommonJS` module dynamically for `SeaJS` environment.","version":"0.2.3","homepage":"https://github.com/crossjs/grunt-spm-server","author":{"name":"crossjs","email":"liwenfu@crossjs.com"},"repository":{"type":"git","url":"git://github.com/crossjs/grunt-spm-server.git"},"bugs":{"url":"https://github.com/crossjs/grunt-spm-server/issues"},"licenses":[{"type":"MIT","url":"https://github.com/crossjs/grunt-spm-server/blob/master/LICENSE-MIT"}],"engines":{"node":">= 0.8.0"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"dependencies":{"chalk":"^0.5.1","extend":"^2.0.0","finalhandler":"^0.3.2","handlebars":"^1.3.0","mime":"^1.2.11","open":"0.0.5","serve-favicon":"^2.1.7","serve-index":"^1.5.2","spm-deps":"^0.0.2"},"devDependencies":{"grunt":"~0.4.5"},"peerDependencies":{"grunt":"~0.4.5"},"keywords":["gruntplugin","spm-server"],"gitHead":"202596de8c93824b00c03109d098dd11d885f81c","_id":"grunt-spm-server@0.2.3","_shasum":"4defda9a0c73c7632c4c8abd35f70a53ca0fb9c4","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"crossjs","email":"liwenfu@crossjs.com"},"maintainers":[{"name":"crossjs","email":"liwenfu@crossjs.com"}],"dist":{"shasum":"4defda9a0c73c7632c4c8abd35f70a53ca0fb9c4","tarball":"https://registry.npmjs.org/grunt-spm-server/-/grunt-spm-server-0.2.3.tgz","integrity":"sha512-GhmQjKDG5uHBsZiFS274EKpoMZAlRil5lHcQgAuOAY+YVJ73TWEeMSax0NWj4lDfOZDEvh9xPndvhbpnBbpzWw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD4+huphj4v7AmDUa7NHNJcuOSYfYxjBD0o2oL15uXGpAIhAJXrcQz+2nuiqsmhOW+R9kS2Q2LpnFFSMSltupzsCePZ"}]},"directories":{}},"0.2.4":{"name":"grunt-spm-server","description":"A Grunt task plugin, transport `CommonJS` module dynamically for `SeaJS` environment.","version":"0.2.4","homepage":"https://github.com/crossjs/grunt-spm-server","author":{"name":"crossjs","email":"liwenfu@crossjs.com"},"repository":{"type":"git","url":"git://github.com/crossjs/grunt-spm-server.git"},"bugs":{"url":"https://github.com/crossjs/grunt-spm-server/issues"},"licenses":[{"type":"MIT","url":"https://github.com/crossjs/grunt-spm-server/blob/master/LICENSE-MIT"}],"engines":{"node":">= 0.8.0"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"dependencies":{"chalk":"^0.5.1","extend":"^2.0.0","finalhandler":"^0.3.2","handlebars":"^1.3.0","mime":"^1.2.11","open":"0.0.5","serve-favicon":"^2.1.7","serve-index":"^1.5.2","spm-deps":"^0.0.2"},"devDependencies":{"grunt":"~0.4.5"},"peerDependencies":{"grunt":"~0.4.5"},"keywords":["gruntplugin","spm-server"],"gitHead":"fc02b6085ed020439930e48fc918811c7d2bbaf7","_id":"grunt-spm-server@0.2.4","_shasum":"a8cac29e7f5ef5c91fa82047e230865149fe28a7","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"crossjs","email":"liwenfu@crossjs.com"},"maintainers":[{"name":"crossjs","email":"liwenfu@crossjs.com"}],"dist":{"shasum":"a8cac29e7f5ef5c91fa82047e230865149fe28a7","tarball":"https://registry.npmjs.org/grunt-spm-server/-/grunt-spm-server-0.2.4.tgz","integrity":"sha512-cNC9seQFnkT+9iMjugN1K1p3YQGkfxJp9dCoR+NGnd7RN26hM8pTB35GACmumHQjEgE7qsRDyT8WcxvAXod7Bg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC829UPluXJruWsRD0j5usDuh//sdh3k+e/wWh1whiKQwIhAMnu8IWgnR09a2a9s57Wq1IANhl5hisR9jl1oVxtOr0s"}]},"directories":{}},"0.2.5":{"name":"grunt-spm-server","description":"A Grunt task plugin, transport `CommonJS` module dynamically for `SeaJS` environment.","version":"0.2.5","homepage":"https://github.com/crossjs/grunt-spm-server","author":{"name":"crossjs","email":"liwenfu@crossjs.com"},"repository":{"type":"git","url":"git://github.com/crossjs/grunt-spm-server.git"},"bugs":{"url":"https://github.com/crossjs/grunt-spm-server/issues"},"licenses":[{"type":"MIT","url":"https://github.com/crossjs/grunt-spm-server/blob/master/LICENSE-MIT"}],"engines":{"node":">= 0.8.0"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"dependencies":{"chalk":"^0.5.1","extend":"^2.0.0","finalhandler":"^0.3.2","handlebars":"^1.3.0","mime":"^1.2.11","open":"0.0.5","serve-favicon":"^2.1.7","serve-index":"^1.5.2","spm-deps":"^0.0.2"},"devDependencies":{"grunt":"~0.4.5"},"peerDependencies":{"grunt":"~0.4.5"},"keywords":["gruntplugin","spm-server"],"gitHead":"202eb9c30b32f4ee6faef9a52689cb0cd6c8675f","_id":"grunt-spm-server@0.2.5","_shasum":"371c7fdf95ed1d1ad7bdbb7a5dbfd94b030e3c91","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"crossjs","email":"liwenfu@crossjs.com"},"maintainers":[{"name":"crossjs","email":"liwenfu@crossjs.com"}],"dist":{"shasum":"371c7fdf95ed1d1ad7bdbb7a5dbfd94b030e3c91","tarball":"https://registry.npmjs.org/grunt-spm-server/-/grunt-spm-server-0.2.5.tgz","integrity":"sha512-abNKGCYlFt3ZSqX2vTCIwg56qy6ozcZjRArKls8yfivhxhGNMSpvHGXxqkdanhM8GvPvCf488evInPPGMLYSqQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGUoMvm9AWjtJFZbcHf9pxhmQMGcopR7WhvVK5+Im0mqAiAJET5a68p4u9wwBsL53w1chRwF0wEqmdEh9n8JY+TDPg=="}]},"directories":{}},"0.2.6":{"name":"grunt-spm-server","description":"A Grunt task plugin, transport `CommonJS` module dynamically for `SeaJS` environment.","version":"0.2.6","homepage":"https://github.com/crossjs/grunt-spm-server","author":{"name":"crossjs","email":"liwenfu@crossjs.com"},"repository":{"type":"git","url":"git://github.com/crossjs/grunt-spm-server.git"},"bugs":{"url":"https://github.com/crossjs/grunt-spm-server/issues"},"licenses":[{"type":"MIT","url":"https://github.com/crossjs/grunt-spm-server/blob/master/LICENSE-MIT"}],"engines":{"node":">= 0.8.0"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"dependencies":{"chalk":"^0.5.1","extend":"^2.0.0","finalhandler":"^0.3.2","handlebars":"^1.3.0","mime":"^1.2.11","open":"0.0.5","serve-favicon":"^2.1.7","serve-index":"^1.5.2","spm-deps":"^0.0.2"},"devDependencies":{"grunt":"~0.4.5"},"peerDependencies":{"grunt":"~0.4.5"},"keywords":["gruntplugin","spm-server"],"gitHead":"7a0fd6bc1348aed893d5c0f76bf21ee69eea478e","_id":"grunt-spm-server@0.2.6","_shasum":"f3628550b7a527841dd66947e8a617f48e5caf46","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"crossjs","email":"liwenfu@crossjs.com"},"maintainers":[{"name":"crossjs","email":"liwenfu@crossjs.com"}],"dist":{"shasum":"f3628550b7a527841dd66947e8a617f48e5caf46","tarball":"https://registry.npmjs.org/grunt-spm-server/-/grunt-spm-server-0.2.6.tgz","integrity":"sha512-qKxWYuq2ziLs0rG8a0bDsxXs2MjpaRGBRCK4dE/7w+3Of89nQFA7zyPPIqtGLtWPSlHjKulYpX2jnS98NKZ5ew==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEQDUdBd93UwUAwBcBlwQ/7wAELRc4nBzs/BgPGAbM36AiEAz8F+W5DdZBzoPSePQREbseipLxHNcqpDNc8TgwnyZ3A="}]},"directories":{}},"0.2.7":{"name":"grunt-spm-server","description":"A Grunt task plugin, transport `CommonJS` module dynamically for `SeaJS` environment.","version":"0.2.7","homepage":"https://github.com/crossjs/grunt-spm-server","author":{"name":"crossjs","email":"liwenfu@crossjs.com"},"repository":{"type":"git","url":"git://github.com/crossjs/grunt-spm-server.git"},"bugs":{"url":"https://github.com/crossjs/grunt-spm-server/issues"},"licenses":[{"type":"MIT","url":"https://github.com/crossjs/grunt-spm-server/blob/master/LICENSE-MIT"}],"engines":{"node":">= 0.8.0"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"dependencies":{"chalk":"^0.5.1","extend":"^2.0.0","finalhandler":"^0.3.2","handlebars":"^1.3.0","mime":"^1.2.11","open":"0.0.5","serve-favicon":"^2.1.7","serve-index":"^1.5.2","spm-deps":"^0.0.2"},"devDependencies":{"grunt":"~0.4.5"},"peerDependencies":{"grunt":"~0.4.5"},"keywords":["gruntplugin","spm-server"],"gitHead":"730d626d875c54fd5749bc5a14991d794cd53113","_id":"grunt-spm-server@0.2.7","_shasum":"7278a78033d219724904d8843baae636658ce5a0","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"crossjs","email":"liwenfu@crossjs.com"},"maintainers":[{"name":"crossjs","email":"liwenfu@crossjs.com"}],"dist":{"shasum":"7278a78033d219724904d8843baae636658ce5a0","tarball":"https://registry.npmjs.org/grunt-spm-server/-/grunt-spm-server-0.2.7.tgz","integrity":"sha512-bhrXBxkq1a3BSItLrsv63PaHiq3IDq3KwZvtkPHwNvkPK/rfwTfL/zpcuxSCCR3jP3cHrmn3DXjv92EqnjkwJA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC3Y/ccLwnp3XjUxf/5xQLI9d4uZ+Cv38KZ33QPL+E+WAIgdoHJG0bch8V2jvR6oWsbAIvla1Nu+q5FAKL+iCPm+zg="}]},"directories":{}}},"readme":"# grunt-spm-server\r\n\r\n[![NPM version](https://img.shields.io/npm/v/grunt-spm-server.svg?style=flat-square)](https://npmjs.org/package/grunt-spm-server)\r\n[![Build Status](https://img.shields.io/travis/crossjs/grunt-spm-server.svg?style=flat-square)](https://travis-ci.org/crossjs/grunt-spm-server)\r\n[![NPM downloads](http://img.shields.io/npm/dm/grunt-spm-server.svg?style=flat-square)](https://npmjs.org/package/grunt-spm-server)\r\n[![David](http://img.shields.io/david/crossjs/grunt-spm-server.svg?style=flat-square)](https://npmjs.org/package/grunt-spm-server)\r\n[![David](http://img.shields.io/david/dev/crossjs/grunt-spm-server.svg?style=flat-square)](https://npmjs.org/package/grunt-spm-server)\r\n\r\n  > A Grunt task plugin, transport `CommonJS` module dynamically for `SeaJS` environment.\r\n\r\n  > Grunt 插件：通过 Web 服务实时地转换 CommonJS 模块以方便 SeaJS 环境中的开发调试。\r\n\r\n## 背景\r\n\r\n- [SPM](https://github.com/spmjs/spm) 版本从 2 升级到 3，遵循的规范从 CMD 转为 CommonJS；\r\n- 前端开发调试过程中需要对 CommonJS 模块动态 Wrapping；\r\n- 纯前端的解决方案 [seajs-wrap](https://github.com/seajs/seajs-wrap) 存在不少弊端。\r\n\r\n## 用法\r\n\r\n```bash\r\n$ npm install --save-dev grunt-spm-server\r\n```\r\n\r\n```js\r\ngrunt.initConfig({\r\n  server: {\r\n    // 开发环境\r\n    develop: {\r\n      options: {\r\n        // API mocking 文件存放目录\r\n        api: './mock',\r\n        // 指向上级目录\r\n        base: '..',\r\n        release: false\r\n      }\r\n    },\r\n    // 仿真线上环境\r\n    release: {\r\n      options: {\r\n        base: '..',\r\n        release: true\r\n      }\r\n    }\r\n  }\r\n});\r\n```\r\n\r\n```bash\r\n$ grunt server:develop\r\n$ grunt server:release\r\n```\r\n\r\n## 参数\r\n\r\n### src\r\n\r\n    Type: `Array | String`\r\n    config 文件模板路径，可选。\r\n\r\n### dest\r\n\r\n    Type: `String`\r\n    config 文件存放路径，可选，默认 `'lib/config.js'`。\r\n\r\n### options.api\r\n\r\n    Type: `String`\r\n    API mocking 文件存放目录。\r\n\r\n```js\r\n// json\r\n{\r\n  \"/url/to/foo\": {\r\n    \"POST\": {\r\n      \"code\": 0,\r\n      \"message\": \"POST ok\",\r\n      \"notice_id\": \"xxxxxxx\"\r\n    },\r\n    \"PATCH\": {\r\n      \"code\": 0,\r\n      \"message\": \"PATCH ok\",\r\n      \"notice_id\": \"xxxxxxx\"\r\n    }\r\n  },\r\n  \"/url/to/bar\": {\r\n    // asterisk match any RESTful request method\r\n    \"*\": {\r\n      \"code\": 0,\r\n      \"message\": \"ok\"\r\n    }\r\n  }\r\n}\r\n\r\n// or js\r\nmodule.exports = {\r\n  '/foo/bar': {\r\n    // function is support\r\n    'GET': function(url, query) {\r\n      return {\r\n        'MOCKAPI': {\r\n          // means redirect\r\n          'status': '302',\r\n          'location': '/foo/bar' + query.match(/id=([^&]+)/)[1] + '.png'\r\n        }\r\n      };\r\n    }\r\n  }\r\n};\r\n\r\n```\r\n\r\n### options.base\r\n\r\n    Type: `String`\r\n    Default value: `'.'`\r\n    Web 服务根目录。\r\n\r\n### options.config\r\n\r\n    Type: `Boolean`\r\n    Default value: `true`\r\n    是否生成 config 文件。\r\n\r\n### options.port\r\n\r\n    Type: `Number`\r\n    Default value: `8851`\r\n    Web 服务侦听端口。\r\n\r\n### options.release\r\n\r\n    Type: `Boolean`\r\n    Default value: `true`\r\n    是否模拟线上环境，为 `true` 则不执行服务端 wrapping。\r\n\r\n### options.rule\r\n\r\n    Type: `Function | RegExp`\r\n    路径匹配函数，可选，返回 `true` 则执行服务端 wrapping。\r\n\r\n```js\r\nfunction(url, query, idleading) {\r\n  if (query.indexOf('nowrap') !== -1) {\r\n    return false;\r\n  }\r\n\r\n  if (idleading) {\r\n    if (idleading.indexOf('..') !== -1) {\r\n      url = url.replace(/^\\/[^\\/]+/, '');\r\n    } else if (url.indexOf('/' + idleading) !== -1) {\r\n      url = url.substring(idleading.length + 1);\r\n    }\r\n  }\r\n\r\n  // 默认匹配\r\n  return /^\\/(((app|mod|spm_modules|src).+)|index)\\.(css|handlebars|json|js)$/.test(url);\r\n}\r\n\r\n// or RegExp\r\n/^\\/(((app|mod|spm_modules|src).+)|index)\\.(css|handlebars|json|js)$/\r\n```\r\n","maintainers":[{"email":"liwenfu@crossjs.com","name":"imliwenfu"}],"time":{"modified":"2022-06-18T16:00:53.288Z","created":"2014-12-11T09:53:53.605Z","0.0.0":"2014-12-11T09:53:53.605Z","0.0.1":"2014-12-11T12:12:44.286Z","0.0.2":"2014-12-11T12:39:31.533Z","0.0.3":"2014-12-11T12:55:45.015Z","0.0.4":"2014-12-19T07:19:14.282Z","0.1.0":"2014-12-19T13:08:27.022Z","0.1.1":"2015-01-08T08:07:53.970Z","0.1.2":"2015-01-12T14:22:25.235Z","0.1.3":"2015-01-13T07:52:29.143Z","0.2.0":"2015-01-13T14:16:42.454Z","0.2.1":"2015-01-15T08:08:26.132Z","0.2.2":"2015-01-15T12:07:16.523Z","0.2.3":"2015-01-19T10:26:51.110Z","0.2.4":"2015-01-21T13:41:04.975Z","0.2.5":"2015-02-27T03:27:45.628Z","0.2.6":"2015-02-27T06:19:45.788Z","0.2.7":"2015-02-27T06:38:17.782Z"},"homepage":"https://github.com/crossjs/grunt-spm-server","keywords":["gruntplugin","spm-server"],"repository":{"type":"git","url":"git://github.com/crossjs/grunt-spm-server.git"},"author":{"name":"crossjs","email":"liwenfu@crossjs.com"},"bugs":{"url":"https://github.com/crossjs/grunt-spm-server/issues"},"readmeFilename":"README.md"}