{"_id":"webpack-marauder","_rev":"171-aed55336ee80010dffed82ba68f654cf","name":"webpack-marauder","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","dist-tags":{"latest":"1.21.2","next":"2.0.0-beta.0","pwa":"1.6.1-pwa1","wasmloader":"1.7.0-rc-wasm","hy":"1.7.6-hy.12","noticeemail":"1.9.1-0","ftp":"1.9.3-0","dev":"1.20.2-t.0","prerender":"1.10.9-0","importlib":"1.12.8-1","mc":"1.16.0-mc"},"versions":{"1.1.0":{"name":"webpack-marauder","version":"1.1.0","description":"marauder 核心配置，支持 react，vue 及普通 js 打包","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/SinaMFE/webpack-marauder.git"},"files":["build","README.md","CHANGELOG.md",".githelper","bin"],"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marau":"./bin/marauder.js"},"engines":{"node":">=8.0.0"},"dependencies":{"sinamfe-webpack-https":"^0.0.5","sinamfe-marauder-debug":"^0.0.1","sinamfe-marauder-ensure-ls":"^0.0.10","sinamfe-webpack-module_dependency":"^0.0.1","babel-plugin-transform-object-assign":"^6.22.0","babel-preset-react":"^6.24.1","babel-core":"^6.22.1","babel-plugin-transform-runtime":"^6.22.0","babel-preset-es2015":"^6.22.0","babel-preset-stage-2":"^6.22.0","babel-preset-stage-3":"^6.22.0","babel-register":"^6.22.0","babel-loader":"^7.1.1","babel-preset-env":"^1.6.0","babili-webpack-plugin":"0.0.10","chalk":"^1.1.3","copy-webpack-plugin":"^4.0.1","dev-ip":"^1.0.1","file-loader":"^0.10.0","friendly-errors-webpack-plugin":"^1.1.3","glob":"^7.1.1","postcss-loader":"^2.0.6","postcss-cssnext":"^3.0.2","postcss-import":"^10.0.0","portscanner":"^2.1.1","ora":"^1.1.0","html-webpack-plugin":"^2.28.0","html-withimg-loader":"^0.1.16","http-proxy-middleware":"^0.17.3","semver":"^5.3.0","shelljs":"^0.7.6","vinyl-fs":"^2.4.4","vinyl-ftp":"^0.6.0","yargs":"^8.0.2","zip-webpack-plugin":"^1.1.0","art-template":"^4.12.1","art-template-loader":"^1.4.3","css-loader":"^0.26.1","crypto":"^0.0.3","express":"^4.14.1","extract-text-webpack-plugin":"^2.0.0-rc.2","function-bind":"^1.1.0","eslint":"^3.16.1","co":"^4.6.0","eslint-loader":"^1.6.3","generate-asset-webpack-plugin":"^0.3.0","webpack":"^2.2.1","eventsource-polyfill":"^0.9.6","webpack-bundle-analyzer":"^2.2.1","webpack-config":"^7.0.0","webpack-dev-middleware":"^1.10.0","webpack-hot-middleware":"^2.16.1","webpack-merge":"^2.6.1","opn":"^4.0.2","optimize-css-assets-webpack-plugin":"^1.3.0","style-loader":"^0.13.2","url-loader":"^0.5.7","vue-loader":"^13.0.2","vue-style-loader":"^3.0.1","vue-template-compiler":"^2.3.3"},"devDependencies":{},"gitHead":"cf060e1e8893c7cfac525a053af1cd1202bfc3a0","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.1.0","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-OkZ598EvlO3UqcuREY5025xelKJwQZ64jUUgoLzRXzjt4nk7KnYHemYGp1/i0luP1dHtdXt0cS1/ug0YfrXpMQ==","shasum":"09b6da88859d485e8a06cabde33fc7ad41d1d299","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.1.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCCWLU319kU6u/+0FHJxeBgLV9vUlDDqRp9G/DDx6sy1AIhAK43+Ahgsx5WqKq7rBELhfm/3QLJApHNVECiHpo+WMJD"}]},"maintainers":[{"name":"vv314","email":"vv314@foxmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder-1.1.0.tgz_1502939251604_0.6810346061829478"},"directories":{}},"1.1.1":{"name":"webpack-marauder","version":"1.1.1","description":"marauder 核心配置，支持 react，vue 及普通 js 打包","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/SinaMFE/webpack-marauder.git"},"files":["build","README.md","CHANGELOG.md",".githelper","bin"],"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marau":"./bin/marauder.js"},"engines":{"node":">=8.0.0"},"dependencies":{"sinamfe-webpack-https":"^0.0.5","sinamfe-marauder-debug":"^0.0.1","sinamfe-marauder-ensure-ls":"^0.0.10","sinamfe-webpack-module_dependency":"^0.0.1","babel-plugin-transform-object-assign":"^6.22.0","babel-preset-react":"^6.24.1","babel-core":"^6.22.1","babel-plugin-transform-runtime":"^6.22.0","babel-preset-es2015":"^6.22.0","babel-preset-stage-2":"^6.22.0","babel-preset-stage-3":"^6.22.0","babel-register":"^6.22.0","babel-loader":"^7.1.1","babel-preset-env":"^1.6.0","babili-webpack-plugin":"0.0.10","chalk":"^1.1.3","copy-webpack-plugin":"^4.0.1","dev-ip":"^1.0.1","file-loader":"^0.10.0","friendly-errors-webpack-plugin":"^1.1.3","glob":"^7.1.1","postcss-loader":"^2.0.6","postcss-cssnext":"^3.0.2","postcss-import":"^10.0.0","portscanner":"^2.1.1","ora":"^1.1.0","html-webpack-plugin":"^2.28.0","html-withimg-loader":"^0.1.16","http-proxy-middleware":"^0.17.3","semver":"^5.3.0","shelljs":"^0.7.6","vinyl-fs":"^2.4.4","vinyl-ftp":"^0.6.0","yargs":"^8.0.2","zip-webpack-plugin":"^1.1.0","art-template":"^4.12.1","art-template-loader":"^1.4.3","css-loader":"^0.26.1","crypto":"^0.0.3","express":"^4.14.1","extract-text-webpack-plugin":"^2.0.0-rc.2","function-bind":"^1.1.0","eslint":"^3.16.1","co":"^4.6.0","eslint-loader":"^1.6.3","generate-asset-webpack-plugin":"^0.3.0","webpack":"^2.2.1","eventsource-polyfill":"^0.9.6","webpack-bundle-analyzer":"^2.2.1","webpack-config":"^7.0.0","webpack-dev-middleware":"^1.10.0","webpack-hot-middleware":"^2.16.1","webpack-merge":"^2.6.1","opn":"^4.0.2","optimize-css-assets-webpack-plugin":"^1.3.0","style-loader":"^0.13.2","url-loader":"^0.5.7","vue-loader":"^13.0.2","vue-style-loader":"^3.0.1","vue-template-compiler":"^2.3.3"},"devDependencies":{},"gitHead":"d9e8b04457880c1b467bd1a76daf1b57ab81501b","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.1.1","_npmVersion":"5.0.3","_nodeVersion":"8.1.3","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-H15cxILu7wh0zT2Yxf8cmI7bKWOMBkAAajo9VLBsdqGQLlJcgpQWi4tKfd3U0h6A77bpNokZZSZEhnZPs1YJgQ==","shasum":"68c9f8e5d27e70f7eac2d824cc737ddf39dd3106","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.1.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID5q8IkU+oULhluyHM2cqNEYVMHvotP1Oyl8ZMxWIhoRAiEAgTbCcwQouHmFptpgZPwwLfzv3yO9eh7rL5DXCrW9C3w="}]},"maintainers":[{"name":"braisedcakes","email":"BraisedCakes@gmail.com"},{"name":"vv314","email":"vv314@foxmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder-1.1.1.tgz_1503648499523_0.7398410178720951"},"directories":{}},"1.1.2":{"name":"webpack-marauder","version":"1.1.2","description":"marauder 核心配置，支持 react，vue 及普通 js 打包","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/SinaMFE/webpack-marauder.git"},"files":["build","README.md","CHANGELOG.md",".githelper","bin"],"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marau":"./bin/marauder.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.1","art-template-loader":"^1.4.3","babel-core":"^6.22.1","babel-loader":"^7.1.1","babel-plugin-transform-object-assign":"^6.22.0","babel-plugin-transform-runtime":"^6.22.0","babel-preset-env":"^1.6.0","babel-preset-es2015":"^6.22.0","babel-preset-react":"^6.24.1","babel-preset-stage-2":"^6.22.0","babel-preset-stage-3":"^6.22.0","babel-register":"^6.22.0","babili-webpack-plugin":"0.0.10","chalk":"^1.1.3","copy-webpack-plugin":"^4.0.1","crypto":"^0.0.3","css-loader":"0.28.4","cssnano":"^3.10.0","dev-ip":"^1.0.1","eslint":"^4.8.0","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.7.1","eslint-plugin-import":"^2.7.0","eslint-plugin-node":"^5.2.0","eslint-plugin-promise":"^3.4.0","eslint-plugin-standard":"^3.0.1","eventsource-polyfill":"^0.9.6","express":"^4.14.1","extract-text-webpack-plugin":"^3.0.0","file-loader":"^0.10.0","friendly-errors-webpack-plugin":"^1.6.1","generate-asset-webpack-plugin":"^0.3.0","glob":"^7.1.1","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","http-proxy-middleware":"^0.17.3","opn":"^5.1.0","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.3.0","portscanner":"^2.1.1","postcss-cssnext":"^3.0.2","postcss-import":"^10.0.0","postcss-loader":"^2.0.6","semver":"^5.3.0","shelljs":"^0.7.8","sinamfe-marauder-debug":"0.0.1","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-https":"0.0.5","sinamfe-webpack-module_dependency":"0.0.1","style-loader":"^0.13.2","url-loader":"^0.5.8","vinyl-fs":"^2.4.4","vinyl-ftp":"^0.6.0","vue-loader":"^13.0.4","vue-style-loader":"^3.0.1","vue-template-compiler":"^2.4.2","webpack":"^3.8.1","webpack-bundle-analyzer":"^2.9.0","webpack-config":"^7.0.0","webpack-dev-middleware":"^1.12.0","webpack-hot-middleware":"^2.18.2","webpack-merge":"^2.6.1","yargs":"^8.0.2","zip-webpack-plugin":"^1.1.0"},"devDependencies":{},"gitHead":"e46ae86dcf95fafe0e07605640cc4fb90ab8a7a2","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.1.2","_npmVersion":"5.4.2","_nodeVersion":"8.5.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-LT6lknWrFIctLPkziswwCmViFbKq2Df4BJN6oCmI2IDOtn3OxdQG0zcb1y/7nZa+L00Ix8moKoCbeLA4f59FBQ==","shasum":"4c8e28ff149994f4f422727ef7ffdf0098d4f48c","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.1.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDNHrLYo4dhwhKck8gUhNJOaoKRhRjMADDpyW8A4UJ4vAiEAmvPewBJHqWn5sE9RkMfYlslF4DAUQcMOtuCYxhgagzk="}]},"maintainers":[{"name":"braisedcakes","email":"BraisedCakes@gmail.com"},{"name":"vv314","email":"vv314@foxmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder-1.1.2.tgz_1509439604656_0.756701375124976"},"directories":{}},"1.1.3":{"name":"webpack-marauder","version":"1.1.3","description":"marauder 核心配置，支持 react，vue 及普通 js 打包","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/SinaMFE/webpack-marauder.git"},"files":["build","README.md","CHANGELOG.md",".githelper","bin"],"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marau":"./bin/marauder.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.1","art-template-loader":"^1.4.3","babel-core":"^6.22.1","babel-loader":"^7.1.1","babel-plugin-transform-object-assign":"^6.22.0","babel-plugin-transform-runtime":"^6.22.0","babel-preset-env":"^1.6.0","babel-preset-es2015":"^6.22.0","babel-preset-react":"^6.24.1","babel-preset-stage-2":"^6.22.0","babel-preset-stage-3":"^6.22.0","babel-register":"^6.22.0","babili-webpack-plugin":"0.0.10","chalk":"^1.1.3","copy-webpack-plugin":"^4.0.1","crypto":"^0.0.3","css-loader":"0.28.4","cssnano":"^3.10.0","dev-ip":"^1.0.1","eslint":"^4.8.0","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.7.1","eslint-plugin-import":"^2.7.0","eslint-plugin-node":"^5.2.0","eslint-plugin-promise":"^3.4.0","eslint-plugin-standard":"^3.0.1","eventsource-polyfill":"^0.9.6","express":"^4.14.1","extract-text-webpack-plugin":"^3.0.0","file-loader":"^0.10.0","friendly-errors-webpack-plugin":"^1.6.1","generate-asset-webpack-plugin":"^0.3.0","glob":"^7.1.1","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","http-proxy-middleware":"^0.17.3","opn":"^5.1.0","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.3.0","portscanner":"^2.1.1","postcss-cssnext":"^3.0.2","postcss-import":"^10.0.0","postcss-loader":"^2.0.6","semver":"^5.3.0","shelljs":"^0.7.8","sinamfe-marauder-debug":"0.0.1","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-https":"0.0.5","sinamfe-webpack-module_dependency":"0.0.1","style-loader":"^0.13.2","url-loader":"^0.5.8","vinyl-fs":"^2.4.4","vinyl-ftp":"^0.6.0","vue-loader":"^13.0.4","vue-style-loader":"^3.0.1","vue-template-compiler":"^2.4.2","webpack":"^3.8.1","webpack-bundle-analyzer":"^2.9.0","webpack-config":"^7.0.0","webpack-dev-middleware":"^1.12.0","webpack-hot-middleware":"^2.18.2","webpack-merge":"^2.6.1","yargs":"^8.0.2","zip-webpack-plugin":"^1.1.0"},"devDependencies":{},"gitHead":"4072d852fd1740d8d8204b1cf236e447530a8650","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.1.3","_npmVersion":"5.4.2","_nodeVersion":"8.5.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-FtZ+lJbg0GCGjKC+jlc2tAVX42zFrCQrZ4BdGXMKusJXKLOtbGmbyBuTfKBTfhIULyz3i8dgsOamlN6ebEMMew==","shasum":"97744fad9d41ab73c3431b8c85bcfb3e1f301419","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.1.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCVAdO2Tv8Nx/fA07G5mLZrrXxXA6nu6wk+Php8HjEINwIhAJSP/MbVD6wPAMwdqsOhcn8xnIvIKaXVyALCX5DyOwj7"}]},"maintainers":[{"name":"braisedcakes","email":"BraisedCakes@gmail.com"},{"name":"vv314","email":"vv314@foxmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder-1.1.3.tgz_1509444279363_0.8490194429177791"},"directories":{}},"1.2.0":{"name":"webpack-marauder","version":"1.2.0","description":"marauder 脚本库，支持 react，vue 及普通 js 打包","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"contributors":[{"name":"shaopeng","email":"shaopeng1@sina.staff.com.cn"},{"name":"fengwan","email":"fengwan@sina.staff.com.cn"},{"name":"wensen","email":"wensen@sina.staff.com.cn"}],"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"files":["build","README.md","CHANGELOG.md",".githelper","bin"],"bin":{"marau":"./bin/marauder.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.1","art-template-loader":"^1.4.3","babel-core":"6.25.0","babel-eslint":"7.2.3","babel-loader":"^7.1.1","babel-preset-react-app":"^3.0.3","babel-runtime":"6.26.0","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^1.1.3","copy-webpack-plugin":"^4.2.0","css-loader":"0.28.4","cssnano":"^3.10.0","dev-ip":"^1.0.1","eslint":"^4.8.0","eslint-config-sinamfe":"^1.0.0","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.7.1","eslint-plugin-import":"^2.7.0","eslint-plugin-node":"^5.2.0","eslint-plugin-promise":"^3.4.0","eslint-plugin-react":"^7.4.0","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.4","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^4.0.2","glob":"^7.1.2","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.3.0","portscanner":"^2.1.1","postcss-cssnext":"^3.0.2","postcss-flexbugs-fixes":"^3.2.0","postcss-import":"^10.0.0","postcss-loader":"^2.0.6","promise-polyfill":"^6.0.2","react-dev-utils":"^4.2.1","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"0.0.1","url-loader":"^0.5.8","vinyl-fs":"^2.4.4","vinyl-ftp":"^0.6.0","vue-loader":"^13.4.0","vue-style-loader":"^3.0.1","vue-template-compiler":"^2.4.2","webpack":"^3.8.1","webpack-bundle-analyzer":"^2.9.1","webpack-dev-server":"^2.9.3","webpack-merge":"^4.1.0","yargs":"^8.0.2","zip-webpack-plugin":"^1.1.0"},"devDependencies":{},"license":"MIT","gitHead":"2b905f910b97181af379c864f6ee2c07be2b949c","bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.2.0","_npmVersion":"5.5.1","_nodeVersion":"8.9.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-M9tZGJ6zcyH0tI7l/akhjkZQYEBGSfq+7afBNdueYEuY9KFKYnDZbbEbop64/pnzVzfx6usYan1sOzgrkNSo/g==","shasum":"1c4128119c14c2120fb173d3b10b2b39dec259ac","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.2.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDAP2VQQv8G8G2AZpSq2AOcr4yTafaD1AanTVwkfPm6+QIgcMxs/1FCVBZqNe4ZhCxJ77gW55YNM720lPSilaAvvz0="}]},"maintainers":[{"name":"braisedcakes","email":"BraisedCakes@gmail.com"},{"name":"vv314","email":"vv314@foxmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder-1.2.0.tgz_1510729326391_0.5117688507307321"},"directories":{}},"1.2.1":{"name":"webpack-marauder","version":"1.2.1","description":"marauder 脚本库，支持 react，vue 及普通 js 打包","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"contributors":[{"name":"shaopeng","email":"shaopeng1@sina.staff.com.cn"},{"name":"fengwan","email":"fengwan@sina.staff.com.cn"},{"name":"wensen","email":"wensen@sina.staff.com.cn"}],"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"files":["build","README.md","CHANGELOG.md",".githelper","bin"],"bin":{"marau":"./bin/marauder.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.1","art-template-loader":"^1.4.3","autoprefixer":"^7.1.6","babel-core":"6.25.0","babel-eslint":"7.2.3","babel-loader":"^7.1.1","babel-preset-react-app":"^3.0.3","babel-runtime":"6.26.0","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^1.1.3","copy-webpack-plugin":"^4.2.0","css-loader":"0.28.4","cssnano":"^3.10.0","dev-ip":"^1.0.1","eslint":"^4.8.0","eslint-config-sinamfe":"^1.0.0","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.7.1","eslint-plugin-import":"^2.7.0","eslint-plugin-node":"^5.2.0","eslint-plugin-promise":"^3.4.0","eslint-plugin-react":"^7.4.0","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.4","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^4.0.2","glob":"^7.1.2","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.3.0","portscanner":"^2.1.1","postcss-cssnext":"^3.0.2","postcss-flexbugs-fixes":"^3.2.0","postcss-import":"^10.0.0","postcss-loader":"^2.0.6","promise-polyfill":"^6.0.2","react-dev-utils":"^4.2.1","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"0.0.1","url-loader":"^0.5.8","vinyl-fs":"^2.4.4","vinyl-ftp":"^0.6.0","vue-loader":"^13.4.0","vue-style-loader":"^3.0.1","vue-template-compiler":"^2.4.2","webpack":"^3.8.1","webpack-bundle-analyzer":"^2.9.1","webpack-dev-server":"^2.9.3","webpack-merge":"^4.1.0","yargs":"^8.0.2","zip-webpack-plugin":"^1.1.0"},"devDependencies":{},"license":"MIT","gitHead":"7e943238aae32f3ab470ecb0bb2b9f0af14c1a41","bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.2.1","_npmVersion":"5.5.1","_nodeVersion":"8.9.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-+2UYP9LGjnYFZG5TtlAhHEl91zMjjTBxgrlDS8Ur2QVtlI3P/LAsNATZ8D+5injU3YTsdc2EivEQBcPZY8ANwQ==","shasum":"8e95ebb818339d49337c74bb29dd0de6cde064ff","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.2.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD1BO1c8uZh9s/676FY39txzzvcrYEOge+PGywoWO5vpgIgPS+SkuC47E3+UgLJ0qQ6Tz2QUpdiphYuPS5T6zlXhhQ="}]},"maintainers":[{"name":"braisedcakes","email":"BraisedCakes@gmail.com"},{"name":"vv314","email":"vv314@foxmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder-1.2.1.tgz_1511014388242_0.4579126127064228"},"directories":{}},"1.2.2":{"name":"webpack-marauder","version":"1.2.2","description":"marauder 脚本库，支持 react，vue 及普通 js 打包","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"contributors":[{"name":"shaopeng","email":"shaopeng1@sina.staff.com.cn"},{"name":"fengwan","email":"fengwan@sina.staff.com.cn"},{"name":"wensen","email":"wensen@sina.staff.com.cn"}],"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"files":["build","README.md","CHANGELOG.md",".githelper","bin"],"bin":{"marau":"./bin/marauder.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.1","art-template-loader":"^1.4.3","autoprefixer":"^7.1.6","babel-core":"6.25.0","babel-eslint":"7.2.3","babel-loader":"^7.1.1","babel-preset-react-app":"^3.0.3","babel-runtime":"6.26.0","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^1.1.3","copy-webpack-plugin":"^4.2.1","css-loader":"0.28.4","cssnano":"^3.10.0","dev-ip":"^1.0.1","eslint":"^4.8.0","eslint-config-sinamfe":"^1.0.0","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.7.1","eslint-plugin-import":"^2.7.0","eslint-plugin-node":"^5.2.0","eslint-plugin-promise":"^3.4.0","eslint-plugin-react":"^7.4.0","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.4","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^4.0.2","glob":"^7.1.2","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.3.0","portscanner":"^2.1.1","postcss-cssnext":"^3.0.2","postcss-flexbugs-fixes":"^3.2.0","postcss-import":"^10.0.0","postcss-loader":"^2.0.6","promise-polyfill":"^6.0.2","react-dev-utils":"^4.2.1","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"0.0.1","url-loader":"^0.5.8","vinyl-fs":"^2.4.4","vinyl-ftp":"^0.6.0","vue-loader":"^13.4.0","vue-style-loader":"^3.0.1","vue-template-compiler":"^2.4.2","webpack":"^3.8.1","webpack-bundle-analyzer":"^2.9.1","webpack-dev-server":"^2.9.3","webpack-merge":"^4.1.1","yargs":"^8.0.2","zip-webpack-plugin":"^1.1.0"},"devDependencies":{},"license":"MIT","gitHead":"c1fb9935267be0f902e07acf15d7fb90d2061993","bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.2.2","_npmVersion":"5.5.1","_nodeVersion":"8.9.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-4R8qJrFPeOrciy7RjfJXXpXKhCCCxu/FWzOwJwMBHTBo3dG3eaXHNus35BW/biUt4aN58cETBpuni5YSCEZ1+g==","shasum":"999a7e55a83f502294b07474f390ceaac0be6e36","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.2.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA7X/ENZgSqpaV+RUGJL4SbYymlBc5ULDBgSAL2grmLZAiArf8sp9NYcwc8Wca9nzgJInoHEnquYvYEIRto0WQbfow=="}]},"maintainers":[{"name":"braisedcakes","email":"BraisedCakes@gmail.com"},{"name":"vv314","email":"vv314@foxmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder-1.2.2.tgz_1511085747379_0.19312936905771494"},"directories":{}},"1.3.0":{"name":"webpack-marauder","version":"1.3.0","description":"marauder 脚本库，支持 react，vue 及普通 js 打包","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"contributors":[{"name":"shaopeng","email":"shaopeng1@sina.staff.com.cn"},{"name":"fengwan","email":"fengwan@sina.staff.com.cn"},{"name":"wensen","email":"wensen@sina.staff.com.cn"}],"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"files":["build","README.md","CHANGELOG.md",".githelper","bin"],"bin":{"marau":"./bin/marauder.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.1","art-template-loader":"^1.4.3","autoprefixer":"^7.1.6","babel-core":"6.25.0","babel-eslint":"7.2.3","babel-loader":"^7.1.1","babel-preset-react-app":"^3.0.3","babel-runtime":"6.26.0","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^1.1.3","copy-webpack-plugin":"^4.2.1","css-loader":"0.28.4","cssnano":"^3.10.0","dev-ip":"^1.0.1","eslint":"^4.8.0","eslint-config-sinamfe":"^1.0.0","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.7.1","eslint-plugin-import":"^2.7.0","eslint-plugin-node":"^5.2.0","eslint-plugin-promise":"^3.4.0","eslint-plugin-react":"^7.4.0","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.4","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^4.0.2","glob":"^7.1.2","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.3.0","portscanner":"^2.1.1","postcss-cssnext":"^3.0.2","postcss-flexbugs-fixes":"^3.2.0","postcss-import":"^10.0.0","postcss-loader":"^2.0.6","promise-polyfill":"^6.0.2","react-dev-utils":"^4.2.1","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"0.0.1","url-loader":"^0.5.8","vinyl-fs":"^2.4.4","vinyl-ftp":"^0.6.0","vue-loader":"^13.4.0","vue-style-loader":"^3.0.1","vue-template-compiler":"^2.4.2","webpack":"^3.8.1","webpack-bundle-analyzer":"^2.9.1","webpack-dev-server":"^2.9.3","webpack-merge":"^4.1.1","yargs":"^8.0.2","zip-webpack-plugin":"^1.1.0"},"devDependencies":{},"license":"MIT","gitHead":"269a913fd0e67c89df23dde61800b61fc90999b9","bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.3.0","_npmVersion":"5.5.1","_nodeVersion":"8.9.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-Xd9e4dzjI5j2YbQbYnhHt7trGy2w0iH41mXPFGBOpXJKR4xYlJrkBNXaZREDDnuRaEGY8b7mBh/kOxDHoDKFPQ==","shasum":"64456859bd9f6b0b9ad1774df976462b08ded385","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.3.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEzWsmMU5ES0BODBohi6m1TRyAvXbUeFBYA5oe6G3kR6AiA++5PyMpoylkdDjYI/H/u0s8vesc7lJzUvxb/WLmaMXQ=="}]},"maintainers":[{"name":"braisedcakes","email":"BraisedCakes@gmail.com"},{"name":"vv314","email":"vv314@foxmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder-1.3.0.tgz_1511320826801_0.7971367812715471"},"directories":{}},"1.3.2":{"name":"webpack-marauder","version":"1.3.2","description":"marauder 脚本库，支持 react，vue 及普通 js 打包","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"contributors":[{"name":"shaopeng","email":"shaopeng1@sina.staff.com.cn"},{"name":"fengwan","email":"fengwan@sina.staff.com.cn"},{"name":"wensen","email":"wensen@sina.staff.com.cn"}],"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"files":["build","README.md","CHANGELOG.md",".githelper","bin"],"bin":{"marau":"./bin/marauder.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.1","art-template-loader":"^1.4.3","autoprefixer":"^7.1.6","babel-core":"6.25.0","babel-eslint":"7.2.3","babel-loader":"^7.1.1","babel-preset-react-app":"^3.0.3","babel-runtime":"6.26.0","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^1.1.3","copy-webpack-plugin":"^4.2.1","css-loader":"0.28.4","cssnano":"^3.10.0","dev-ip":"^1.0.1","eslint":"^4.8.0","eslint-config-sinamfe":"^1.0.0","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.7.1","eslint-plugin-import":"^2.7.0","eslint-plugin-node":"^5.2.0","eslint-plugin-promise":"^3.4.0","eslint-plugin-react":"^7.4.0","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.4","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^4.0.2","glob":"^7.1.2","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.3.0","portscanner":"^2.1.1","postcss-cssnext":"^3.0.2","postcss-flexbugs-fixes":"^3.2.0","postcss-import":"^10.0.0","postcss-loader":"^2.0.6","promise-polyfill":"^6.0.2","react-dev-utils":"^4.2.1","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.0.0","url-loader":"^0.5.8","vinyl-fs":"^2.4.4","vinyl-ftp":"^0.6.0","vue-loader":"^13.4.0","vue-style-loader":"^3.0.1","vue-template-compiler":"^2.4.2","webpack":"^3.8.1","webpack-bundle-analyzer":"^2.9.1","webpack-dev-server":"^2.9.3","webpack-merge":"^4.1.1","yargs":"^8.0.2","zip-webpack-plugin":"^1.1.0"},"devDependencies":{},"license":"MIT","gitHead":"01d6c184bf38d13ad3039b5a06b058b596eda859","bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.3.2","_npmVersion":"5.5.1","_nodeVersion":"8.9.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-1lL8vQa/hVq+Ag3q2iet6peVWJklKgbzA3/fVqk5Pqi4OVFKW7ZIMyX1M6NEY5fvePIEhhtojD9HJjdFaXZo2Q==","shasum":"2df2aad85d4cfa865cd2dff7832a5a0ca2fa4ae2","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.3.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDY4+GP+mDhpIiHA302VUq0tAKHappVCmzXWdXRTNe/agIgfseZJ3a1VrCwT8g7PgIRwfQrPBDa51HpJSpY91Lmuus="}]},"maintainers":[{"name":"braisedcakes","email":"BraisedCakes@gmail.com"},{"name":"vv314","email":"vv314@foxmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder-1.3.2.tgz_1511418514015_0.008813284570351243"},"directories":{}},"1.3.3":{"name":"webpack-marauder","version":"1.3.3","description":"marauder 脚本库，支持 react，vue 及普通 js 打包","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"contributors":[{"name":"shaopeng","email":"shaopeng1@sina.staff.com.cn"},{"name":"fengwan","email":"fengwan@sina.staff.com.cn"},{"name":"wensen","email":"wensen@sina.staff.com.cn"}],"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"files":["build","README.md","CHANGELOG.md",".githelper","bin"],"bin":{"marau":"./bin/marauder.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.1","art-template-loader":"^1.4.3","autoprefixer":"^7.1.6","babel-core":"6.25.0","babel-eslint":"7.2.3","babel-loader":"^7.1.1","babel-preset-react-app":"^3.0.3","babel-runtime":"6.26.0","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^1.1.3","copy-webpack-plugin":"^4.2.1","css-loader":"0.28.4","cssnano":"^3.10.0","dev-ip":"^1.0.1","eslint":"^4.8.0","eslint-config-sinamfe":"^1.0.0","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.7.1","eslint-plugin-import":"^2.7.0","eslint-plugin-node":"^5.2.0","eslint-plugin-promise":"^3.4.0","eslint-plugin-react":"^7.4.0","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.4","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^4.0.2","glob":"^7.1.2","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.3.0","portscanner":"^2.1.1","postcss-cssnext":"^3.0.2","postcss-flexbugs-fixes":"^3.2.0","postcss-import":"^10.0.0","postcss-loader":"^2.0.6","promise-polyfill":"^6.0.2","react-dev-utils":"^4.2.1","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.1.0","url-loader":"^0.5.8","vinyl-fs":"^2.4.4","vinyl-ftp":"^0.6.0","vue-loader":"^13.4.0","vue-style-loader":"^3.0.1","vue-template-compiler":"^2.4.2","webpack":"^3.8.1","webpack-bundle-analyzer":"^2.9.1","webpack-dev-server":"^2.9.3","webpack-merge":"^4.1.1","yargs":"^8.0.2","zip-webpack-plugin":"^1.1.0"},"devDependencies":{},"license":"MIT","gitHead":"0bfdbe7135311a9114e36694f7fa6a39c2bb4c39","bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.3.3","_npmVersion":"5.5.1","_nodeVersion":"8.5.0","_npmUser":{"name":"happybang","email":"hnnyejccool@sina.com"},"dist":{"integrity":"sha512-/l/gMT0PzQU3PGQ5qHHl9zs+2IEfu2Rau5HzJye34rI/pJNyVbMJUdqWxbBL7YiqI9+JJEd/cHTmdGIU/aj49w==","shasum":"a8b23f37bf47b85227b0ca9a2fb85854a72d6ee9","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.3.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDi8uuBivcneV4kxaSRSMKMyMLZUsIpGiT1EFHbzr0/nAiAYLqfJMrGc5CYO69CwqzTgpNsE0mmxuoqkCdXDBiuH2A=="}]},"maintainers":[{"email":"hnnyejccool@sina.com","name":"happybang"},{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"vv314@foxmail.com","name":"vv314"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder-1.3.3.tgz_1511518403600_0.07358389557339251"},"directories":{}},"1.4.0":{"name":"webpack-marauder","version":"1.4.0","description":"marauder 脚本库，支持 react，vue 及普通 js 打包","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"contributors":[{"name":"shaopeng","email":"shaopeng1@sina.staff.com.cn"},{"name":"fengwan","email":"fengwan@sina.staff.com.cn"},{"name":"wensen","email":"wensen@sina.staff.com.cn"}],"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"files":["build","README.md","CHANGELOG.md",".githelper","bin"],"bin":{"marau":"./bin/marauder.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.1","art-template-loader":"^1.4.3","autoprefixer":"^7.1.6","babel-core":"6.25.0","babel-eslint":"7.2.3","babel-loader":"^7.1.1","babel-preset-react-app":"^3.0.3","babel-runtime":"6.26.0","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^1.1.3","copy-webpack-plugin":"^4.2.1","css-loader":"0.28.4","cssnano":"^3.10.0","dev-ip":"^1.0.1","eslint":"^4.8.0","eslint-config-sinamfe":"^1.0.0","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.7.1","eslint-plugin-import":"^2.7.0","eslint-plugin-node":"^5.2.0","eslint-plugin-promise":"^3.4.0","eslint-plugin-react":"^7.4.0","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.4","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^4.0.2","glob":"^7.1.2","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.3.0","portscanner":"^2.1.1","postcss-cssnext":"^3.0.2","postcss-flexbugs-fixes":"^3.2.0","postcss-import":"^10.0.0","postcss-loader":"^2.0.6","promise-polyfill":"^6.0.2","react-dev-utils":"^4.2.1","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.1.0","url-loader":"^0.5.8","vinyl-fs":"^2.4.4","vinyl-ftp":"^0.6.0","vue-loader":"^13.4.0","vue-style-loader":"^3.0.1","vue-template-compiler":"^2.4.2","webpack":"^3.8.1","webpack-bundle-analyzer":"^2.9.1","webpack-dev-server":"^2.9.3","webpack-merge":"^4.1.1","yargs":"^8.0.2","zip-webpack-plugin":"^1.1.0"},"devDependencies":{},"license":"MIT","bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.4.0","_npmVersion":"5.5.1","_nodeVersion":"8.5.0","_npmUser":{"name":"happybang","email":"hnnyejccool@sina.com"},"dist":{"integrity":"sha512-4Ean3pD8ynVh20L06qrkglVyaCRBIXaERpf7RjsLIeShpTbAndxPxk6/KnKeBGuWGHlLA10VEvk93Z1R1xYNfQ==","shasum":"209e01d53d7c5f919f210a7062f7cc9fad86780a","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.4.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDXo/CGMgfcpy8RmZxR4eHNwRsbZTt7rgb4UFB3l8D4NwIgZe6sC/efQEGpR/bp9z3upHJ+bO+FrGRIKRd3fkuw23c="}]},"maintainers":[{"email":"hnnyejccool@sina.com","name":"happybang"},{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"vv314@foxmail.com","name":"vv314"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder-1.4.0.tgz_1511855520417_0.8399674282409251"},"directories":{}},"1.4.1":{"name":"webpack-marauder","version":"1.4.1","description":"marauder 脚本库，支持 react，vue 及普通 js 打包","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"contributors":[{"name":"shaopeng","email":"shaopeng1@sina.staff.com.cn"},{"name":"fengwan","email":"fengwan@sina.staff.com.cn"},{"name":"wensen","email":"wensen@sina.staff.com.cn"}],"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"files":["build","README.md","CHANGELOG.md",".githelper","bin"],"bin":{"marau":"./bin/marauder.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.1","art-template-loader":"^1.4.3","autoprefixer":"^7.1.6","babel-core":"6.25.0","babel-eslint":"7.2.3","babel-loader":"^7.1.1","babel-preset-react-app":"^3.0.3","babel-runtime":"6.26.0","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^1.1.3","copy-webpack-plugin":"^4.2.1","css-loader":"0.28.4","cssnano":"^3.10.0","dev-ip":"^1.0.1","eslint":"^4.8.0","eslint-config-sinamfe":"^1.0.0","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.7.1","eslint-plugin-import":"^2.7.0","eslint-plugin-node":"^5.2.0","eslint-plugin-promise":"^3.4.0","eslint-plugin-react":"^7.4.0","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.4","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^4.0.2","glob":"^7.1.2","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.3.0","portscanner":"^2.1.1","postcss-cssnext":"^3.0.2","postcss-flexbugs-fixes":"^3.2.0","postcss-import":"^10.0.0","postcss-loader":"^2.0.6","promise-polyfill":"^6.0.2","react-dev-utils":"^4.2.1","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.1.0","url-loader":"^0.5.8","vinyl-fs":"^2.4.4","vinyl-ftp":"^0.6.0","vue-loader":"^13.4.0","vue-style-loader":"^3.0.1","vue-template-compiler":"^2.4.2","webpack":"^3.8.1","webpack-bundle-analyzer":"^2.9.1","webpack-dev-server":"^2.9.3","webpack-merge":"^4.1.1","yargs":"^8.0.2","zip-webpack-plugin":"^1.1.0"},"devDependencies":{},"license":"MIT","bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.4.1","_npmVersion":"5.5.1","_nodeVersion":"8.5.0","_npmUser":{"name":"happybang","email":"hnnyejccool@sina.com"},"dist":{"integrity":"sha512-TwFlqWwhYwypcoGlC4N45Ik2h7iMRl0EjxvvVvZL8wkUyxaDQy1fGs8GmXeRxFt4og0/Jr7xJzR75FeZAC7P+g==","shasum":"6a2bc77d760733885459b98744e03bc14e70ecbf","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.4.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDaEP9czj3l/cU49vL9FhT04yB57xn/uP/6oLHyHfE6oQIgWdZLT5V0hwojZ4E354uerlBn8zmG5xtg6UjLrkMeNwQ="}]},"maintainers":[{"email":"hnnyejccool@sina.com","name":"happybang"},{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"vv314@foxmail.com","name":"vv314"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder-1.4.1.tgz_1511856442007_0.4635437587276101"},"directories":{}},"1.4.2":{"name":"webpack-marauder","version":"1.4.2","description":"marauder 脚本库，支持 react，vue 及普通 js 打包","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"contributors":[{"name":"shaopeng","email":"shaopeng1@sina.staff.com.cn"},{"name":"fengwan","email":"fengwan@sina.staff.com.cn"},{"name":"wensen","email":"wensen@sina.staff.com.cn"}],"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"files":["build","README.md","CHANGELOG.md",".githelper","bin"],"bin":{"marau":"./bin/marauder.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.1","art-template-loader":"^1.4.3","autoprefixer":"^7.1.6","babel-core":"6.25.0","babel-eslint":"7.2.3","babel-loader":"^7.1.1","babel-preset-react-app":"^3.0.3","babel-runtime":"6.26.0","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^1.1.3","tinify":"^1.5.0","copy-webpack-plugin":"^4.2.1","css-loader":"0.28.4","cssnano":"^3.10.0","dev-ip":"^1.0.1","eslint":"^4.8.0","eslint-config-sinamfe":"^1.0.0","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.7.1","eslint-plugin-import":"^2.7.0","eslint-plugin-node":"^5.2.0","eslint-plugin-promise":"^3.4.0","eslint-plugin-react":"^7.4.0","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.4","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^4.0.2","glob":"^7.1.2","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.3.0","portscanner":"^2.1.1","postcss-cssnext":"^3.0.2","postcss-flexbugs-fixes":"^3.2.0","postcss-import":"^10.0.0","postcss-loader":"^2.0.6","promise-polyfill":"^6.0.2","react-dev-utils":"^4.2.1","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.1.0","url-loader":"^0.5.8","vinyl-fs":"^2.4.4","vinyl-ftp":"^0.6.0","vue-loader":"^13.4.0","vue-style-loader":"^3.0.1","vue-template-compiler":"^2.4.2","webpack":"^3.8.1","webpack-bundle-analyzer":"^2.9.1","webpack-dev-server":"^2.9.3","webpack-merge":"^4.1.1","yargs":"^8.0.2","zip-webpack-plugin":"^1.1.0"},"devDependencies":{},"license":"MIT","bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.4.2","_npmVersion":"5.5.1","_nodeVersion":"8.5.0","_npmUser":{"name":"happybang","email":"hnnyejccool@sina.com"},"dist":{"integrity":"sha512-ElF2gAcsE6Cn8tvGMuQTJX7sLx3JOKK4zoH1rnpYjiuLhVHIVoe1kSl/ITTJc8KJAjMZ+LQ7HLQSPmU9ZR1THg==","shasum":"8fbc3e596ba316995047e954a6dc542b3eb46ceb","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.4.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDWSmIdHbDneKWXWhQkG84seujhvT/AG4+OZ2X+uk6s1wIgVp9hkq3+Ej7An0EQ23CVjrVfhUXgTAk4P2ge0ac9Y2U="}]},"maintainers":[{"email":"hnnyejccool@sina.com","name":"happybang"},{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"vv314@foxmail.com","name":"vv314"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder-1.4.2.tgz_1511856484399_0.24472029274329543"},"directories":{}},"1.4.3":{"name":"webpack-marauder","version":"1.4.3","description":"marauder 脚本库，支持 react，vue 及普通 js 打包","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"contributors":[{"name":"shaopeng","email":"shaopeng1@sina.staff.com.cn"},{"name":"fengwan","email":"fengwan@sina.staff.com.cn"},{"name":"wensen","email":"wensen@sina.staff.com.cn"}],"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"files":["build","README.md","CHANGELOG.md",".githelper","bin"],"bin":{"marau":"./bin/marauder.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.1","art-template-loader":"^1.4.3","autoprefixer":"^7.1.6","babel-core":"6.25.0","babel-eslint":"7.2.3","babel-loader":"^7.1.1","babel-preset-react-app":"^3.0.3","babel-runtime":"6.26.0","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^1.1.3","tinify":"^1.5.0","copy-webpack-plugin":"^4.2.1","css-loader":"0.28.4","cssnano":"^3.10.0","dev-ip":"^1.0.1","eslint":"^4.8.0","eslint-config-sinamfe":"^1.0.0","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.7.1","eslint-plugin-import":"^2.7.0","eslint-plugin-node":"^5.2.0","eslint-plugin-promise":"^3.4.0","eslint-plugin-react":"^7.4.0","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.4","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^4.0.2","glob":"^7.1.2","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.3.0","portscanner":"^2.1.1","postcss-cssnext":"^3.0.2","postcss-flexbugs-fixes":"^3.2.0","postcss-import":"^10.0.0","postcss-loader":"^2.0.6","promise-polyfill":"^6.0.2","react-dev-utils":"^4.2.1","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.1.0","url-loader":"^0.5.8","vinyl-fs":"^2.4.4","vinyl-ftp":"^0.6.0","vue-loader":"^13.4.0","vue-style-loader":"^3.0.1","vue-template-compiler":"^2.4.2","webpack":"^3.8.1","webpack-bundle-analyzer":"^2.9.1","webpack-dev-server":"^2.9.3","webpack-merge":"^4.1.1","yargs":"^8.0.2","zip-webpack-plugin":"^1.1.0"},"devDependencies":{},"license":"MIT","bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.4.3","_npmVersion":"5.5.1","_nodeVersion":"8.5.0","_npmUser":{"name":"happybang","email":"hnnyejccool@sina.com"},"dist":{"integrity":"sha512-haNlih3B0ak0fLs7KvurAEJZv2/aViFEm6hPnJP3nt/fnGhYGg0jH+uvelUdX+XWGJ/HpovOmSzH66B6sSzBKQ==","shasum":"eb9199b6bcd65569b929a0e579598974a02dfae0","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.4.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBfKrbbe+y0wb2DbokdaQx6rEkKJ6qrmQ3Hir1SaePWWAiEA1M+AgukkV3NBylLSIQsJijCjeM6jEWF7r7cC7oLzWCQ="}]},"maintainers":[{"email":"hnnyejccool@sina.com","name":"happybang"},{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"vv314@foxmail.com","name":"vv314"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder-1.4.3.tgz_1511857003421_0.491286430740729"},"directories":{}},"1.4.4":{"name":"webpack-marauder","version":"1.4.4","description":"marauder 脚本库，支持 react，vue 及普通 js 打包","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"contributors":[{"name":"shaopeng","email":"shaopeng1@sina.staff.com.cn"},{"name":"fengwan","email":"fengwan@sina.staff.com.cn"},{"name":"wensen","email":"wensen@sina.staff.com.cn"}],"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"files":["build","README.md","CHANGELOG.md",".githelper","bin","postpublish.js"],"bin":{"marau":"./bin/marauder.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.1","art-template-loader":"^1.4.3","autoprefixer":"^7.1.6","babel-core":"6.25.0","babel-eslint":"7.2.3","babel-loader":"^7.1.1","babel-preset-react-app":"^3.0.3","babel-runtime":"6.26.0","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^1.1.3","tinify":"^1.5.0","copy-webpack-plugin":"^4.2.1","css-loader":"0.28.4","cssnano":"^3.10.0","dev-ip":"^1.0.1","eslint":"^4.8.0","eslint-config-sinamfe":"^1.0.0","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.7.1","eslint-plugin-import":"^2.7.0","eslint-plugin-node":"^5.2.0","eslint-plugin-promise":"^3.4.0","eslint-plugin-react":"^7.4.0","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.4","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^4.0.2","glob":"^7.1.2","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.3.0","portscanner":"^2.1.1","postcss-cssnext":"^3.0.2","postcss-flexbugs-fixes":"^3.2.0","postcss-import":"^10.0.0","postcss-loader":"^2.0.6","promise-polyfill":"^6.0.2","react-dev-utils":"^4.2.1","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.1.0","url-loader":"^0.5.8","vinyl-fs":"^2.4.4","vinyl-ftp":"^0.6.0","vue-loader":"^13.4.0","vue-style-loader":"^3.0.1","vue-template-compiler":"^2.4.2","webpack":"^3.8.1","webpack-bundle-analyzer":"^2.9.1","webpack-dev-server":"^2.9.3","webpack-merge":"^4.1.1","yargs":"^8.0.2","zip-webpack-plugin":"^1.1.0"},"devDependencies":{},"license":"MIT","bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.4.4","_npmVersion":"5.5.1","_nodeVersion":"8.5.0","_npmUser":{"name":"happybang","email":"hnnyejccool@sina.com"},"dist":{"integrity":"sha512-DlSlaN5d64RbZHYno9ch2QHH6ZQEkjLZW4aqxOAK8tQXKkTpaB/1QCZ0LH6VXmn7MmXGyUaPrgPpViObeZTsng==","shasum":"f7db038a899e2b203b61c90415ffda0c40a1a4b6","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.4.4.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIQCj3mkPRIuGsXEI1jemrZHgr/MBYBlxDE2ubCdUzcXr6wIfFbzxN99f4IX2I6YJ6/UTpapf2VUFdg3g0YySAq4y7g=="}]},"maintainers":[{"email":"hnnyejccool@sina.com","name":"happybang"},{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"vv314@foxmail.com","name":"vv314"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder-1.4.4.tgz_1511858560135_0.6760289270896465"},"directories":{}},"1.4.5-rc":{"name":"webpack-marauder","version":"1.4.5-rc","description":"marauder 脚本库，支持 react，vue 及普通 js 打包","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"contributors":[{"name":"shaopeng","email":"shaopeng1@sina.staff.com.cn"},{"name":"fengwan","email":"fengwan@sina.staff.com.cn"},{"name":"wensen","email":"wensen@sina.staff.com.cn"}],"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"files":["bin","build","hook","README.md","CHANGELOG.md",".githelper"],"bin":{"marau":"./bin/marauder.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.1","art-template-loader":"^1.4.3","autoprefixer":"^7.1.6","babel-core":"6.25.0","babel-eslint":"7.2.3","babel-loader":"^7.1.1","babel-preset-react-app":"^3.0.3","babel-runtime":"6.26.0","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^1.1.3","copy-webpack-plugin":"^4.2.1","css-loader":"0.28.4","cssnano":"^3.10.0","dev-ip":"^1.0.1","eslint":"^4.8.0","eslint-config-sinamfe":"^1.0.1","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.7.1","eslint-plugin-import":"^2.7.0","eslint-plugin-node":"^5.2.0","eslint-plugin-promise":"^3.4.0","eslint-plugin-react":"^7.4.0","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.4","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^4.0.2","glob":"^7.1.2","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.3.0","portscanner":"^2.1.1","postcss-cssnext":"^3.0.2","postcss-flexbugs-fixes":"^3.2.0","postcss-import":"^10.0.0","postcss-loader":"^2.0.6","promise-polyfill":"^6.0.2","react-dev-utils":"^4.2.1","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.1.0","spawn-sync":"^1.0.15","tinify":"^1.5.0","url-loader":"^0.5.8","vinyl-fs":"^2.4.4","vinyl-ftp":"^0.6.0","vue-loader":"^13.4.0","vue-style-loader":"^3.0.1","vue-template-compiler":"^2.4.2","webpack":"^3.8.1","webpack-bundle-analyzer":"^2.9.1","webpack-dev-server":"^2.9.4","webpack-merge":"^4.1.1","yargs":"^8.0.2","zip-webpack-plugin":"^1.1.0"},"devDependencies":{},"license":"MIT","gitHead":"2343dfeb783d92f9862d4a44688df4a14e7fb1e3","bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.4.5-rc","_npmVersion":"5.5.1","_nodeVersion":"8.9.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-KVZM4W3dmCQt39MfbBQgC+q4ePZRJIQSdRfFXgSZIrTVpX5bJpT26l84OjYz5aOngke+ggxnlkzQPAM/4gztzg==","shasum":"bcc721256cbcf49cad8a6cbc6ef2ba0a0addc949","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.4.5-rc.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID8DgTjp1mygfTkWeAfTlao8Kg4f2GMR+YUuaIQrG8LDAiEAnV/DsZbOBI75/CySApKksPJgMcHoYUbJmGGjmE3dBaU="}]},"maintainers":[{"email":"hnnyejccool@sina.com","name":"happybang"},{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"vv314@foxmail.com","name":"vv314"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder-1.4.5-rc.tgz_1512109299985_0.152236100519076"},"directories":{}},"1.5.0":{"name":"webpack-marauder","version":"1.5.0","description":"marauder 脚本库，支持 react，vue 及普通 js 打包","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"contributors":[{"name":"shaopeng","email":"shaopeng1@sina.staff.com.cn"},{"name":"fengwan","email":"fengwan@sina.staff.com.cn"},{"name":"wensen","email":"wensen@sina.staff.com.cn"}],"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"files":["bin","build","hook","README.md","CHANGELOG.md",".githelper"],"bin":{"marau":"./bin/marauder.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.1","art-template-loader":"^1.4.3","autoprefixer":"^7.1.6","babel-core":"^6.25.0","babel-eslint":"^7.2.3","babel-jest":"^20.0.3","babel-loader":"^7.1.1","babel-preset-react-app":"^3.0.3","babel-runtime":"^6.26.0","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^1.1.3","copy-webpack-plugin":"^4.2.1","css-loader":"^0.28.4","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","marauder-ejs-loader":"^1.0.0","eslint":"^4.8.0","eslint-config-sinamfe":"^1.0.1","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.7.1","eslint-plugin-import":"^2.7.0","eslint-plugin-node":"^5.2.0","eslint-plugin-promise":"^3.4.0","eslint-plugin-react":"^7.4.0","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.4","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^4.0.2","glob":"^7.1.2","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","jest":"^20.0.4","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.3.0","portscanner":"^2.1.1","postcss-cssnext":"^3.0.2","postcss-flexbugs-fixes":"^3.2.0","postcss-import":"^10.0.0","postcss-loader":"^2.0.6","promise-polyfill":"^6.0.2","react-dev-utils":"^4.2.1","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"^0.0.10","sinamfe-webpack-module_dependency":"^1.1.0","spawn-sync":"^1.0.15","tinify":"^1.5.0","url-loader":"^0.5.8","vinyl-fs":"^2.4.4","vinyl-ftp":"^0.6.0","vue-loader":"^13.4.0","vue-style-loader":"^3.0.1","vue-template-compiler":"^2.4.2","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.1","webpack-dev-server":"^2.9.4","webpack-merge":"^4.1.1","yargs":"^8.0.2","zip-webpack-plugin":"^1.1.0"},"devDependencies":{},"license":"MIT","gitHead":"5b8029ef4aa69aa96954c77be201673438da320c","bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.5.0","_npmVersion":"5.5.1","_nodeVersion":"8.9.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-Cs2gxEkYEkVUa4bC9XVb+/0+5HyZp6pSPc86r1s7EW4CpvSY4WiEUlP4X0IJL90YLpORX86/qqpUz/g2ryECXA==","shasum":"228f783fc3c44eeaaeba8d233e43321958036466","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.5.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH5CtKv2v3kI+Z+RLwxO6nQTv7rfw9/DmyVAgrepJe+6AiEAxvxMYcfLtqbiv4VBasu44wDqXSHBqTjgZIwb+nQc1kg="}]},"maintainers":[{"email":"hnnyejccool@sina.com","name":"happybang"},{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"vv314@foxmail.com","name":"vv314"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder-1.5.0.tgz_1512558014294_0.03357921843416989"},"directories":{}},"1.5.1":{"name":"webpack-marauder","version":"1.5.1","description":"marauder 脚本库，支持 react，vue 及普通 js 打包","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"contributors":[{"name":"shaopeng","email":"shaopeng1@sina.staff.com.cn"},{"name":"fengwan","email":"fengwan@sina.staff.com.cn"},{"name":"wensen","email":"wensen@sina.staff.com.cn"}],"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"files":["bin","build","hook","README.md","CHANGELOG.md",".githelper"],"bin":{"marau":"./bin/marauder.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.1","art-template-loader":"^1.4.3","autoprefixer":"^7.1.6","babel-core":"^6.25.0","babel-eslint":"^7.2.3","babel-jest":"^20.0.3","babel-loader":"^7.1.1","babel-preset-react-app":"^3.0.3","babel-runtime":"^6.26.0","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^1.1.3","copy-webpack-plugin":"^4.2.1","css-loader":"^0.28.4","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","marauder-ejs-loader":"^1.0.0","eslint":"^4.8.0","eslint-config-sinamfe":"^1.0.1","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.7.1","eslint-plugin-import":"^2.7.0","eslint-plugin-node":"^5.2.0","eslint-plugin-promise":"^3.4.0","eslint-plugin-react":"^7.4.0","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.4","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^4.0.2","glob":"^7.1.2","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","jest":"^20.0.4","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.3.0","portscanner":"^2.1.1","postcss-cssnext":"^3.0.2","postcss-flexbugs-fixes":"^3.2.0","postcss-import":"^10.0.0","postcss-loader":"^2.0.6","promise-polyfill":"^6.0.2","react-dev-utils":"^4.2.1","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"^0.0.10","sinamfe-webpack-module_dependency":"^1.1.0","spawn-sync":"^1.0.15","tinify":"^1.5.0","url-loader":"^0.5.8","vinyl-fs":"^2.4.4","vinyl-ftp":"^0.6.0","vue-loader":"^13.4.0","vue-style-loader":"^3.0.1","vue-template-compiler":"^2.4.2","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.1","webpack-dev-server":"^2.9.4","webpack-merge":"^4.1.1","yargs":"^8.0.2","zip-webpack-plugin":"^1.1.0"},"devDependencies":{},"license":"MIT","gitHead":"4c423349e73451f6ae759d4dfede2f316b6e75b5","bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.5.1","_npmVersion":"5.5.1","_nodeVersion":"8.9.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-baOalfWKIk/HasFOO6PGVAu8MsJhib1v7qxwgl2XCVN44lo9YZkfdWDaPYTaAgdw7D/wZbiYU561MFxyro+hng==","shasum":"7b9dd6710bae764e83a29564fc9457429c6d8d97","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.5.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEQGbQ9mbpFOJ+5sfbhuEf314VTiPq4zzUyKOLqev5RbAiBVqy2TfElBPV4TEx782wR85VkSlB5ZP2+JrI8yHDhctg=="}]},"maintainers":[{"email":"hnnyejccool@sina.com","name":"happybang"},{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"vv314@foxmail.com","name":"vv314"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder-1.5.1.tgz_1512643772409_0.6610938697122037"},"directories":{}},"1.5.2":{"name":"webpack-marauder","version":"1.5.2","description":"marauder 脚本库，支持 react，vue 及普通 js 打包","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"contributors":[{"name":"shaopeng","email":"shaopeng1@sina.staff.com.cn"},{"name":"fengwan","email":"fengwan@sina.staff.com.cn"},{"name":"wensen","email":"wensen@sina.staff.com.cn"}],"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"files":["bin","build","hook","README.md","CHANGELOG.md",".githelper"],"bin":{"marau":"./bin/marauder.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.1","art-template-loader":"^1.4.3","autoprefixer":"^7.1.6","babel-core":"^6.25.0","babel-eslint":"^7.2.3","babel-jest":"^20.0.3","babel-loader":"^7.1.1","babel-preset-react-app":"^3.0.3","babel-runtime":"^6.26.0","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^1.1.3","copy-webpack-plugin":"^4.2.1","css-loader":"^0.28.4","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","marauder-ejs-loader":"^1.0.0","eslint":"^4.8.0","eslint-config-sinamfe":"^1.0.1","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.7.1","eslint-plugin-import":"^2.7.0","eslint-plugin-node":"^5.2.0","eslint-plugin-promise":"^3.4.0","eslint-plugin-react":"^7.4.0","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.4","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^4.0.2","glob":"^7.1.2","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","jest":"^20.0.4","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.3.0","portscanner":"^2.1.1","postcss-cssnext":"^3.0.2","postcss-flexbugs-fixes":"^3.2.0","postcss-import":"^10.0.0","postcss-loader":"^2.0.6","promise-polyfill":"^6.0.2","react-dev-utils":"^4.2.1","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"^0.0.10","sinamfe-webpack-module_dependency":"^1.1.0","spawn-sync":"^1.0.15","tinify":"^1.5.0","url-loader":"^0.5.8","vinyl-fs":"^2.4.4","vinyl-ftp":"^0.6.0","vue-loader":"^13.4.0","vue-style-loader":"^3.0.1","vue-template-compiler":"^2.4.2","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.1","webpack-dev-server":"^2.9.4","webpack-merge":"^4.1.1","yargs":"^8.0.2","zip-webpack-plugin":"^1.1.0"},"devDependencies":{},"license":"MIT","gitHead":"d6eb45a3d5442b1c43b1ca3f18efb9d9595cb293","bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.5.2","_npmVersion":"5.5.1","_nodeVersion":"8.9.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-6sm/H6jEO8smSAjtnu5eTEtOrs83ZFxkMsL0p1m4AXwP3PjHC3CRTpPbL58ojsaaalCDtsdh5VA6kN/dSzNHSA==","shasum":"a6464a8c1bc9aaa9fe326bf4f025d56cb609bb88","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.5.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDEfwn26So+IL7fvYZkS9JD6hUHMMO05PH102lHPIx4ngIhAIOstAfhj9dFKOKl537xCj5zjntLzQS+MhItUmZdv97Z"}]},"maintainers":[{"email":"hnnyejccool@sina.com","name":"happybang"},{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"vv314@foxmail.com","name":"vv314"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder-1.5.2.tgz_1512645023007_0.3631520716007799"},"directories":{}},"1.5.4":{"name":"webpack-marauder","version":"1.5.4","description":"marauder 脚本库，支持 react，vue 及普通 js 打包","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"contributors":[{"name":"shaopeng","email":"shaopeng1@sina.staff.com.cn"},{"name":"fengwan","email":"fengwan@sina.staff.com.cn"},{"name":"wensen","email":"wensen@sina.staff.com.cn"}],"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"files":["bin","build","hook","README.md","CHANGELOG.md",".githelper"],"bin":{"marau":"./bin/marauder.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.1","art-template-loader":"^1.4.3","autoprefixer":"^7.1.6","babel-core":"^6.26.0","babel-eslint":"^7.2.3","babel-jest":"^20.0.3","babel-loader":"^7.1.2","babel-preset-react-app":"^3.0.3","babel-runtime":"^6.26.0","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^1.1.3","copy-webpack-plugin":"^4.2.1","css-loader":"^0.28.4","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","marauder-ejs-loader":"^1.0.0","eslint":"^4.8.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.7.1","eslint-plugin-import":"^2.7.0","eslint-plugin-node":"^5.2.0","eslint-plugin-promise":"^3.4.0","eslint-plugin-react":"^7.4.0","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.4","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^4.0.3","glob":"^7.1.2","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","jest":"^20.0.4","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.3.0","portscanner":"^2.1.1","postcss-cssnext":"^3.0.2","postcss-flexbugs-fixes":"^3.2.0","postcss-import":"^10.0.0","postcss-loader":"^2.0.6","promise-polyfill":"^6.0.2","react-dev-utils":"^4.2.1","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"^0.0.10","sinamfe-webpack-module_dependency":"^1.1.0","tinify":"^1.5.0","url-loader":"^0.5.8","vinyl-fs":"^2.4.4","vinyl-ftp":"^0.6.0","vue-loader":"^13.4.0","vue-style-loader":"^3.0.1","vue-template-compiler":"^2.4.2","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.1","webpack-dev-server":"^2.9.7","webpack-merge":"^4.1.1","yargs":"^8.0.2","zip-webpack-plugin":"^1.1.0"},"devDependencies":{},"license":"MIT","gitHead":"c9b03ad0752b288689c76f3ef41d2eecfbd32fec","bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.5.4","_npmVersion":"5.5.1","_nodeVersion":"8.9.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-ItTU5izRci2AOqZQQCVXZh3v2d92I1QQ9r0MaBhHXSV0p89dSWEbL+qAnBVTm9Abceks2DyMewlwlGXWHokiYg==","shasum":"87a8eab30d69f3753c9781eeddfac947bb8def92","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.5.4.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAPK5fyNmrshtiRjj+a6EUsEl491cbtAhSSZ4iIsE1L+AiEA7vY0Y0X1e8yIQRQtp5YVgVi5bHKk8V/Mq0OGu1wDCSI="}]},"maintainers":[{"email":"hnnyejccool@sina.com","name":"happybang"},{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"vv314@foxmail.com","name":"vv314"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder-1.5.4.tgz_1512700676888_0.9604521638248116"},"directories":{}},"1.5.5-rc":{"name":"webpack-marauder","version":"1.5.5-rc","description":"marauder 脚本库，支持 react，vue 及普通 js 打包","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"contributors":[{"name":"shaopeng","email":"shaopeng1@sina.staff.com.cn"},{"name":"fengwan","email":"fengwan@sina.staff.com.cn"},{"name":"wensen","email":"wensen@sina.staff.com.cn"}],"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"files":["bin","build","hook","README.md","CHANGELOG.md",".githelper"],"bin":{"marau":"./bin/marauder.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.1","art-template-loader":"^1.4.3","autoprefixer":"^7.1.6","babel-core":"^6.26.0","babel-eslint":"^7.2.3","babel-jest":"^20.0.3","babel-loader":"^7.1.2","babel-preset-react-app":"^3.0.3","babel-runtime":"^6.26.0","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^1.1.3","copy-webpack-plugin":"^4.2.1","css-loader":"^0.28.4","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","marauder-ejs-loader":"^1.0.0","eslint":"^4.8.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.7.1","eslint-plugin-import":"^2.7.0","eslint-plugin-node":"^5.2.0","eslint-plugin-promise":"^3.4.0","eslint-plugin-react":"^7.4.0","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.4","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^4.0.3","glob":"^7.1.2","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","jest":"^20.0.4","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.3.0","portscanner":"^2.1.1","postcss-cssnext":"^3.0.2","postcss-flexbugs-fixes":"^3.2.0","postcss-import":"^10.0.0","postcss-loader":"^2.0.6","promise-polyfill":"^6.0.2","react-dev-utils":"^4.2.1","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"^0.0.10","sinamfe-webpack-module_dependency":"^1.1.0","tinify":"^1.5.0","url-loader":"^0.5.8","vinyl-fs":"^2.4.4","vinyl-ftp":"^0.6.0","vue-loader":"^13.4.0","vue-style-loader":"^3.0.1","vue-template-compiler":"^2.4.2","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.1","webpack-dev-server":"^2.9.7","webpack-merge":"^4.1.1","yargs":"^8.0.2","zip-webpack-plugin":"^1.1.0"},"devDependencies":{},"license":"MIT","gitHead":"fdfb81a176f520c6f72dbf07a79114c6054e71bb","bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.5.5-rc","_npmVersion":"5.5.1","_nodeVersion":"8.9.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-rWuH6V2YhBc474lLGRO4P8mprhOeFRi2s+Pivx10z09dS6XhyidUHBEBGlahzw2VHHX5Qp5NM4Ue8Y6w6aHwKQ==","shasum":"edd129e60f1377e64f138067875f70ce8f4b4b74","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.5.5-rc.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDIab7WuZ4iTJSRpz1f7hzL80zcqQS8OgWbWJZvV9tIsQIhANPh6Oh4sXBNWo2KTSThNW4bKtUWJ6v6CSillNUt+Vrw"}]},"maintainers":[{"email":"hnnyejccool@sina.com","name":"happybang"},{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"vv314@foxmail.com","name":"vv314"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder-1.5.5-rc.tgz_1512719457885_0.846035917988047"},"directories":{}},"1.5.5":{"name":"webpack-marauder","version":"1.5.5","description":"marauder 脚本库，支持 react，vue 及普通 js 打包","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"contributors":[{"name":"shaopeng","email":"shaopeng1@sina.staff.com.cn"},{"name":"fengwan","email":"fengwan@sina.staff.com.cn"},{"name":"wensen","email":"wensen@sina.staff.com.cn"}],"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"files":["bin","build","hook","README.md","CHANGELOG.md",".githelper"],"bin":{"marau":"./bin/marauder.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.1","art-template-loader":"^1.4.3","autoprefixer":"^7.1.6","babel-core":"^6.26.0","babel-eslint":"^7.2.3","babel-jest":"^20.0.3","babel-loader":"^7.1.2","babel-preset-react-app":"^3.0.3","babel-runtime":"^6.26.0","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^1.1.3","copy-webpack-plugin":"^4.2.1","css-loader":"^0.28.4","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","marauder-ejs-loader":"^1.0.0","eslint":"^4.8.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.7.1","eslint-plugin-import":"^2.7.0","eslint-plugin-node":"^5.2.0","eslint-plugin-promise":"^3.4.0","eslint-plugin-react":"^7.4.0","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.4","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^4.0.3","glob":"^7.1.2","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","jest":"^20.0.4","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.3.0","portscanner":"^2.1.1","postcss-cssnext":"^3.0.2","postcss-flexbugs-fixes":"^3.2.0","postcss-import":"^10.0.0","postcss-loader":"^2.0.6","promise-polyfill":"^6.0.2","react-dev-utils":"^4.2.1","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"^0.0.10","sinamfe-webpack-module_dependency":"^1.1.0","tinify":"^1.5.0","url-loader":"^0.5.8","vinyl-fs":"^2.4.4","vinyl-ftp":"^0.6.0","vue-loader":"^13.4.0","vue-style-loader":"^3.0.1","vue-template-compiler":"^2.4.2","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.1","webpack-dev-server":"^2.9.7","webpack-merge":"^4.1.1","yargs":"^8.0.2","zip-webpack-plugin":"^1.1.0"},"devDependencies":{},"license":"MIT","gitHead":"fdfb81a176f520c6f72dbf07a79114c6054e71bb","bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.5.5","_npmVersion":"5.5.1","_nodeVersion":"8.9.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-8tSjQVQ2blEONBX7/Q/G3hk55noCIE2LFFsu5X8vO5Jdg6QcK4kn3LeJMdsF1RFBGSb/4qIwuyudwylEdGdSQg==","shasum":"cab0c323c5b768c19be9cda75422d26f603163a7","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.5.5.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDGjy5Bgr3Jz6KpaCM+4xvPr/3DnEy1I+QqG+DyTDfRaAIgWmBDLF42mL8UsWvNQAeTcntrWIBtyW4+kBqsCfHnXfo="}]},"maintainers":[{"email":"hnnyejccool@sina.com","name":"happybang"},{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"vv314@foxmail.com","name":"vv314"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder-1.5.5.tgz_1512720345752_0.3497834529262036"},"directories":{}},"1.5.7-rc":{"name":"webpack-marauder","version":"1.5.7-rc","description":"marauder 脚本库，支持 react，vue 及普通 js 打包","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"contributors":[{"name":"shaopeng","email":"shaopeng1@sina.staff.com.cn"},{"name":"fengwan","email":"fengwan@sina.staff.com.cn"},{"name":"wensen","email":"wensen@sina.staff.com.cn"}],"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"files":["bin","build","hook","README.md","CHANGELOG.md",".githelper"],"bin":{"marax":"./bin/marauder.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.2","babel-core":"^6.26.0","babel-eslint":"^8.0.3","babel-jest":"^21.2.0","babel-loader":"^7.1.2","babel-preset-react-app":"^3.1.0","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-runtime":"^6.26.0","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.0","copy-webpack-plugin":"^4.2.3","css-loader":"^0.28.7","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","eslint":"^4.12.1","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.5","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^4.0.3","glob":"^7.1.2","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","jest":"^21.2.1","marauder-ejs-loader":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.3.0","portscanner":"^2.1.1","postcss-cssnext":"^3.0.2","postcss-flexbugs-fixes":"^3.2.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.9","promise-polyfill":"^6.1.0","react-dev-utils":"^4.2.1","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"^0.0.10","sinamfe-webpack-module_dependency":"^1.1.0","tinify":"^1.5.0","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.9","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.1","webpack-dev-server":"^2.9.7","webpack-merge":"^4.1.1","yargs":"^10.0.3","zip-webpack-plugin":"^2.1.0"},"license":"MIT","gitHead":"b0e6804e66fe620aca4e8e54e369b4b8d53f0e16","bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.5.7-rc","_npmVersion":"5.5.1","_nodeVersion":"8.9.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-QfBmGc8ueN3WxE9fhfWbblcIeTc/3fktpqY8IyNr6SJaFRXDIJy2b+Cx/uAhM5PN8hXGPwhfeZTZRH3LOuM62Q==","shasum":"b8af5d6d7b9c6f65e8e3a872418027cf58d8b7ed","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.5.7-rc.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEr9lpw0s9WXEcJ7eV7oGrvBIbUYDtJiPhQlmCBJ021LAiAeB3jVDikt9EpMxuJ+s44OVLEZhHKOylWcEt82g0L15Q=="}]},"maintainers":[{"email":"hnnyejccool@sina.com","name":"happybang"},{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"vv314@foxmail.com","name":"vv314"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder-1.5.7-rc.tgz_1513136873320_0.2548876260407269"},"directories":{}},"1.5.7":{"name":"webpack-marauder","version":"1.5.7","description":"marauder 脚本库，支持 react，vue 及普通 js 打包","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"contributors":[{"name":"shaopeng","email":"shaopeng1@sina.staff.com.cn"},{"name":"fengwan","email":"fengwan@sina.staff.com.cn"},{"name":"wensen","email":"wensen@sina.staff.com.cn"}],"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"files":["bin","build","hook","README.md","CHANGELOG.md",".githelper"],"bin":{"marax":"./bin/marauder.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.2","babel-core":"^6.26.0","babel-eslint":"^8.0.3","babel-jest":"^21.2.0","babel-loader":"^7.1.2","babel-preset-react-app":"^3.1.0","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-runtime":"^6.26.0","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.0","copy-webpack-plugin":"^4.2.3","css-loader":"^0.28.7","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","eslint":"^4.12.1","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.5","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^4.0.3","glob":"^7.1.2","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","jest":"^21.2.1","marauder-ejs-loader":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.3.0","portscanner":"^2.1.1","postcss-cssnext":"^3.0.2","postcss-flexbugs-fixes":"^3.2.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.9","promise-polyfill":"^6.1.0","react-dev-utils":"^4.2.1","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"^0.0.10","sinamfe-webpack-module_dependency":"^1.1.0","tinify":"^1.5.0","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.9","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.1","webpack-dev-server":"^2.9.7","webpack-merge":"^4.1.1","yargs":"^10.0.3","zip-webpack-plugin":"^2.1.0"},"license":"MIT","gitHead":"b0e6804e66fe620aca4e8e54e369b4b8d53f0e16","bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.5.7","_npmVersion":"5.5.1","_nodeVersion":"8.9.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-6vk4KOYxmAz9GQQSkR2De8y1kyQW31hA13DdtS7jSyTkN83RGxknAeI4318EX+SZCW3FqEIEj9w4bmppkoYYcQ==","shasum":"6c0163594302981d6e25c673b44c64a713b78750","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.5.7.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCtVzaGFBh+KdNHfGLinQbEm/vl1Gr698w0YFM/O6/VxAIgaAcgXFFlpklvHovZgTI/mmEfKJv23lPI1Emte9ZFaN8="}]},"maintainers":[{"email":"hnnyejccool@sina.com","name":"happybang"},{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"vv314@foxmail.com","name":"vv314"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder-1.5.7.tgz_1513241946402_0.08941120165400207"},"directories":{}},"1.5.8-rc":{"name":"webpack-marauder","version":"1.5.8-rc","description":"marauder 脚本库，支持 react，vue 及普通 js 打包","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"contributors":[{"name":"shaopeng","email":"shaopeng1@sina.staff.com.cn"},{"name":"fengwan","email":"fengwan@sina.staff.com.cn"},{"name":"wensen","email":"wensen@sina.staff.com.cn"}],"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"files":["bin","build","hook","README.md","CHANGELOG.md",".githelper"],"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.2","babel-core":"^6.26.0","babel-eslint":"^8.0.3","babel-jest":"^21.2.0","babel-loader":"^7.1.2","babel-preset-react-app":"^3.1.0","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-runtime":"^6.26.0","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.0","copy-webpack-plugin":"^4.2.3","css-loader":"^0.28.7","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","eslint":"^4.12.1","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.5","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^4.0.3","glob":"^7.1.2","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","jest":"^21.2.1","marauder-ejs-loader":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.3.0","portscanner":"^2.1.1","postcss-cssnext":"^3.0.2","postcss-flexbugs-fixes":"^3.2.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.9","promise-polyfill":"^6.1.0","react-dev-utils":"^4.2.1","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"^0.0.10","sinamfe-webpack-module_dependency":"^1.1.0","tinify":"^1.5.0","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.9","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.1","webpack-dev-server":"^2.9.7","webpack-merge":"^4.1.1","yargs":"^10.0.3","zip-webpack-plugin":"^2.1.0"},"license":"MIT","gitHead":"228759e1352ac9eeac30c852aedbb776884766d5","bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.5.8-rc","_npmVersion":"5.5.1","_nodeVersion":"8.9.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-bQJlQ22pptlwAf6lreHG7oKL+uhWOQVLJoUlIuRDdMAV7pkadif7r7LXFaRzH9QI/FQRg7fgbyvTg7XqRToTyg==","shasum":"505d9690da344696a5ea361db0283ce8a47c6aa5","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.5.8-rc.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCW9Y9rViVkBh59/t5aMd869W5jHRcp8WncyMKRR3LzkQIgRO60bCEjsu0+ix3BLfCl+U/VdXIGu4/U55PWLpJFACY="}]},"maintainers":[{"email":"hnnyejccool@sina.com","name":"happybang"},{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"vv314@foxmail.com","name":"vv314"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder-1.5.8-rc.tgz_1515391773634_0.7693555632140487"},"directories":{}},"1.5.8-rc1":{"name":"webpack-marauder","version":"1.5.8-rc1","description":"marauder 脚本库，支持 react，vue 及普通 js 打包","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"contributors":[{"name":"shaopeng","email":"shaopeng1@sina.staff.com.cn"},{"name":"fengwan","email":"fengwan@sina.staff.com.cn"},{"name":"wensen","email":"wensen@sina.staff.com.cn"}],"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"files":["bin","build","hook","README.md","CHANGELOG.md",".githelper"],"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.2","babel-core":"^6.26.0","babel-eslint":"^8.0.3","babel-jest":"^21.2.0","babel-loader":"^7.1.2","babel-preset-react-app":"^3.1.0","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-runtime":"^6.26.0","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.0","copy-webpack-plugin":"^4.2.3","css-loader":"^0.28.7","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","eslint":"^4.12.1","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.5","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^4.0.3","glob":"^7.1.2","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","jest":"^21.2.1","marauder-ejs-loader":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.3.0","portscanner":"^2.1.1","postcss-cssnext":"^3.0.2","postcss-flexbugs-fixes":"^3.2.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.9","promise-polyfill":"^6.1.0","react-dev-utils":"^4.2.1","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"^0.0.10","sinamfe-webpack-module_dependency":"^1.1.0","tinify":"^1.5.0","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.9","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.1","webpack-dev-server":"^2.9.7","webpack-merge":"^4.1.1","yargs":"^10.0.3","zip-webpack-plugin":"^2.1.0"},"license":"MIT","gitHead":"228759e1352ac9eeac30c852aedbb776884766d5","bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.5.8-rc1","_npmVersion":"5.5.1","_nodeVersion":"8.9.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-AZJitfe2BAgTE2X/7ZfyOo4hkzV60pkOPHG/RB/4+QX8uNGkshWCTSowhH03OopaPdGEXml3w6pQrLCeVPEyOA==","shasum":"67ceaf5134666aa2891ae271068a0066ea63fc83","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.5.8-rc1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCjXciI3SMdK/yoakL5WcuF25G36Up50SDsBGSAkuCZkQIhAOf6OLgO2ktDjZ1h6fiQeiC+gvbvAGsXuLDvCtQ4QHlD"}]},"maintainers":[{"email":"hnnyejccool@sina.com","name":"happybang"},{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"vv314@foxmail.com","name":"vv314"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder-1.5.8-rc1.tgz_1515392554624_0.2464742185547948"},"directories":{}},"1.5.8":{"name":"webpack-marauder","version":"1.5.8","description":"marauder 脚本库，支持 react，vue 及普通 js 打包","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"contributors":[{"name":"shaopeng","email":"shaopeng1@sina.staff.com.cn"},{"name":"fengwan","email":"fengwan@sina.staff.com.cn"},{"name":"wensen","email":"wensen@sina.staff.com.cn"}],"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"files":["bin","build","hook","README.md","CHANGELOG.md",".githelper"],"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.2","babel-core":"^6.26.0","babel-eslint":"^8.0.3","babel-jest":"^21.2.0","babel-loader":"^7.1.2","babel-preset-react-app":"^3.1.0","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-runtime":"^6.26.0","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.0","copy-webpack-plugin":"^4.2.3","css-loader":"^0.28.7","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","eslint":"^4.12.1","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.5","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^4.0.3","glob":"^7.1.2","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","jest":"^21.2.1","marauder-ejs-loader":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.3.0","portscanner":"^2.1.1","postcss-cssnext":"^3.0.2","postcss-flexbugs-fixes":"^3.2.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.9","promise-polyfill":"^6.1.0","react-dev-utils":"^4.2.1","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"^0.0.10","sinamfe-webpack-module_dependency":"^1.1.0","tinify":"^1.5.0","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.9","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.1","webpack-dev-server":"^2.9.7","webpack-merge":"^4.1.1","yargs":"^10.0.3","zip-webpack-plugin":"^2.1.0"},"license":"MIT","gitHead":"ace240db75cf158494e103351c97e99c7193d3ca","bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.5.8","_npmVersion":"5.5.1","_nodeVersion":"8.9.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-MUcP1UJQ+1goUnaSRTUE+EYxOF1FMhumvo9Tt4qxEpWBMzGSs7gKRiePv5xLp697wyXHgCDzaQ8IjsZKJ7a/Aw==","shasum":"c0c759ff990127f73524638c2b5a1d861c1f540b","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.5.8.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDUyKyUoC0jNi2BqKhaJfaVoXkCVPBJSjMslLVYVUu3aAiEAnhnzqpwBFCUztWPQVyL4SjU/Vb0+fVAnfdCFbOj7t8s="}]},"maintainers":[{"email":"hnnyejccool@sina.com","name":"happybang"},{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"vv314@foxmail.com","name":"vv314"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder-1.5.8.tgz_1515395476151_0.518830832792446"},"directories":{}},"1.5.9-rc":{"name":"webpack-marauder","version":"1.5.9-rc","description":"marauder 脚本库，支持 react，vue 及普通 js 打包","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"contributors":[{"name":"shaopeng","email":"shaopeng1@sina.staff.com.cn"},{"name":"fengwan","email":"fengwan@sina.staff.com.cn"},{"name":"wensen","email":"wensen@sina.staff.com.cn"}],"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"files":["bin","build","hook","README.md","CHANGELOG.md",".githelper"],"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.2","babel-core":"^6.26.0","babel-eslint":"^8.0.3","babel-jest":"^21.2.0","babel-loader":"^7.1.2","babel-preset-react-app":"^3.1.0","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-runtime":"^6.26.0","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.0","copy-webpack-plugin":"^4.2.3","css-loader":"^0.28.7","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","eslint":"^4.12.1","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.5","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^4.0.3","glob":"^7.1.2","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","jest":"^21.2.1","marauder-ejs-loader":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.3.0","portscanner":"^2.1.1","postcss-cssnext":"^3.0.2","postcss-flexbugs-fixes":"^3.2.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.9","promise-polyfill":"^6.1.0","react-dev-utils":"^4.2.1","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"^0.0.10","sinamfe-webpack-module_dependency":"^1.1.0","tinify":"^1.5.0","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.9","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.1","webpack-dev-server":"^2.9.7","webpack-merge":"^4.1.1","yargs":"^10.0.3","zip-webpack-plugin":"^2.1.0"},"license":"MIT","gitHead":"8662971a1131e2331658aac7b931a37dbe470370","bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.5.9-rc","_npmVersion":"5.5.1","_nodeVersion":"8.9.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-3ARPhIQ1gliqLrMnChS0UfWz4e8Xw3CYoNeJMbPDtxKDC3Tv9aoJNMozAX8NoKn+0+2l39D8TmwwufpWLolFSw==","shasum":"7fe0565833096dbbfce3c00008a7ddd881dc48ae","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.5.9-rc.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDaXaP9Gt2PqK5YNTJHzGquohoyfXjV3YQItLTxKxgPFQIgDBWm+8h2s/eP00Nutf7InTme0VD0kAmOYHqOY67HH/w="}]},"maintainers":[{"email":"hnnyejccool@sina.com","name":"happybang"},{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"vv314@foxmail.com","name":"vv314"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder-1.5.9-rc.tgz_1515399857224_0.2197744301520288"},"directories":{}},"1.5.9-rc2":{"name":"webpack-marauder","version":"1.5.9-rc2","description":"marauder 脚本库，支持 react，vue 及普通 js 打包","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"contributors":[{"name":"shaopeng","email":"shaopeng1@sina.staff.com.cn"},{"name":"fengwan","email":"fengwan@sina.staff.com.cn"},{"name":"wensen","email":"wensen@sina.staff.com.cn"}],"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"files":["bin","build","hook","README.md","CHANGELOG.md",".githelper"],"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.2","babel-core":"^6.26.0","babel-eslint":"^8.0.3","babel-jest":"^21.2.0","babel-loader":"^7.1.2","babel-preset-react-app":"^3.1.0","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-runtime":"^6.26.0","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.0","copy-webpack-plugin":"^4.2.3","css-loader":"^0.28.7","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","eslint":"^4.12.1","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.5","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^4.0.3","glob":"^7.1.2","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","jest":"^21.2.1","marauder-ejs-loader":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.3.0","portscanner":"^2.1.1","postcss-cssnext":"^3.0.2","postcss-flexbugs-fixes":"^3.2.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.9","promise-polyfill":"^6.1.0","react-dev-utils":"^4.2.1","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"^0.0.10","sinamfe-webpack-module_dependency":"^1.1.0","tinify":"^1.5.0","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.9","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.1","webpack-dev-server":"^2.9.7","webpack-merge":"^4.1.1","yargs":"^10.0.3","zip-webpack-plugin":"^2.1.0"},"license":"MIT","gitHead":"cea2ca97f8a85f84dba8f9c7af972b906002ee35","bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.5.9-rc2","_npmVersion":"5.5.1","_nodeVersion":"8.9.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-bCEdVH1rXmmELX6WHS2iUULWOLtWcpRVH/l2z/BQ/3GzGzyIJABkEvUCrQMtdwWiNyVS1kihjeG4nM6rh5yehw==","shasum":"5320f66463ae36e5cf066b97263d6cef9c4335a2","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.5.9-rc2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHv97aTvqBPR6E6QNYL7leRgYg8tCpyczhb2YLDsRQG3AiEA5anAroIP026EuCZmG5+Ph+/B/qZzKrmhaNuV78hYeEQ="}]},"maintainers":[{"email":"hnnyejccool@sina.com","name":"happybang"},{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"vv314@foxmail.com","name":"vv314"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder-1.5.9-rc2.tgz_1515468085041_0.24171543098054826"},"directories":{}},"1.6.0-rc":{"name":"webpack-marauder","version":"1.6.0-rc","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.2","babel-core":"^6.26.0","babel-eslint":"^8.0.3","babel-jest":"^21.2.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.0","babel-runtime":"^6.26.0","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.0","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.7","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","eslint":"^4.12.1","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.5","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^4.0.3","glob":"^7.1.2","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","jest":"^21.2.1","marauder-ejs-loader":"^1.0.0","md5":"^2.2.1","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.3.0","portscanner":"^2.1.1","postcss-cssnext":"^3.0.2","postcss-flexbugs-fixes":"^3.2.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.9","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","react-dev-utils":"^4.2.1","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"^0.0.10","sinamfe-webpack-module_dependency":"^1.1.0","tinify":"^1.5.0","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.9","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.1","webpack-dev-server":"^2.9.7","webpack-merge":"^4.1.1","yargs":"^10.0.3","zip-webpack-plugin":"^2.1.0"},"license":"MIT","gitHead":"ae502233819a62516544db88745d7b78e1911240","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.6.0-rc","_npmVersion":"5.6.0","_nodeVersion":"9.3.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-gOKKrH/fdifcX2pJ/ofsyxenjAqZCaHzRjLPHcH6UxLuukkAPVy206s88cdVfhyJAXBd1nRHeIuEeKBXjE27Dg==","shasum":"8975509e9d12c9a046c90ddbf97707e66d5edf70","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.6.0-rc.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH1wQWgtpRdMNRorMPK1B2+QAxCIYh6pMzHCzSJdB8LEAiBTUzEDui9XlaQu/MEZtXF0Y50uQKGW5SJ+CtAmSYFMSA=="}]},"maintainers":[{"email":"hnnyejccool@sina.com","name":"happybang"},{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"vv314@foxmail.com","name":"vv314"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder-1.6.0-rc.tgz_1516941153103_0.4793441193178296"},"directories":{}},"1.6.0-rc1":{"name":"webpack-marauder","version":"1.6.0-rc1","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.2","babel-core":"^6.26.0","babel-eslint":"^8.0.3","babel-jest":"^21.2.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.0","babel-runtime":"^6.26.0","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.0","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.7","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","eslint":"^4.12.1","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.5","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^4.0.3","glob":"^7.1.2","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","jest":"^21.2.1","marauder-ejs-loader":"^1.0.0","md5":"^2.2.1","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.3.0","portscanner":"^2.1.1","postcss-cssnext":"^3.0.2","postcss-flexbugs-fixes":"^3.2.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.9","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","react-dev-utils":"^4.2.1","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"^0.0.10","sinamfe-webpack-module_dependency":"^1.1.0","tinify":"^1.5.0","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.9","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.1","webpack-dev-server":"^2.9.7","webpack-merge":"^4.1.1","yargs":"^10.0.3","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"gitHead":"8691e5f0dc56e24995965b91b9658631fb0cab4a","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.6.0-rc1","_npmVersion":"5.6.0","_nodeVersion":"9.3.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-ip3cLKWyvGE8j6JgKPBNEaIYOXJ0M1ihmJSJd2kxXhXbwNF4QawvBOoB5BFsepcMbeSbqW9ht1YW7hAxCNGq9A==","shasum":"e71fd070c0ce227def15da3c4702a66b94e4b188","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.6.0-rc1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDDbft8A5uXdXCrjr2uHBUtNsJC1beJOCdBSx5HV8+eawIhAI4mBqUi20cru8W7t14izg2TNfUcB1pk6JlH5aigJHC/"}]},"maintainers":[{"email":"hnnyejccool@sina.com","name":"happybang"},{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"vv314@foxmail.com","name":"vv314"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder-1.6.0-rc1.tgz_1517196200048_0.20675400434993207"},"directories":{}},"1.6.0":{"name":"webpack-marauder","version":"1.6.0","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.2","babel-core":"^6.26.0","babel-eslint":"^8.0.3","babel-jest":"^21.2.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.0","babel-runtime":"^6.26.0","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.0","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.7","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","eslint":"^4.12.1","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.5","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^4.0.3","glob":"^7.1.2","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","jest":"^21.2.1","marauder-ejs-loader":"^1.0.0","md5":"^2.2.1","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.3.0","portscanner":"^2.1.1","postcss-cssnext":"^3.0.2","postcss-flexbugs-fixes":"^3.2.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.9","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","react-dev-utils":"^4.2.1","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"^0.0.10","sinamfe-webpack-module_dependency":"^1.1.0","tinify":"^1.5.0","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.9","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.1","webpack-dev-server":"^2.9.7","webpack-merge":"^4.1.1","yargs":"^10.0.3","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"gitHead":"13e056539524e8dbb6f74fc73472ec46e25940f8","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.6.0","_npmVersion":"5.6.0","_nodeVersion":"9.3.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-eI/aiCxr+Nnl7jzafcys3k1rBUQ8gLdGMOX46AQuyQNS/g4z5vWsx7WK2dJMEmoy9PIcwkq2TRSPOv/NgWWh3Q==","shasum":"6bfbcbad257fcca46ab6519442d9982ce81926bc","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.6.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFc6usGICXirXNbXPg7YKPb5nxBXEif2Kx+m2MYjieXNAiByzSzrMg5WIwfanT9S1Xr7rfPAND+Q4JzALTURpIpqjA=="}]},"maintainers":[{"email":"hnnyejccool@sina.com","name":"happybang"},{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"vv314@foxmail.com","name":"vv314"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder-1.6.0.tgz_1517220217808_0.5987092505674809"},"directories":{}},"1.6.1":{"name":"webpack-marauder","version":"1.6.1","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.2","babel-core":"^6.26.0","babel-eslint":"^8.0.3","babel-jest":"^21.2.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.0","babel-runtime":"^6.26.0","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.0","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.7","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","eslint":"^4.12.1","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.5","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^4.0.3","glob":"^7.1.2","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","jest":"^21.2.1","marauder-ejs-loader":"^1.0.0","md5":"^2.2.1","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.3.0","portscanner":"^2.1.1","postcss-cssnext":"^3.0.2","postcss-flexbugs-fixes":"^3.2.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.9","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","react-dev-utils":"^4.2.1","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"^0.0.10","sinamfe-webpack-module_dependency":"^1.1.0","tinify":"^1.5.0","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.9","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.1","webpack-dev-server":"^2.9.7","webpack-merge":"^4.1.1","yargs":"^10.0.3","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"gitHead":"dd0dfec2aed51454d4adb976f8a10c753599f9da","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.6.1","_npmVersion":"5.6.0","_nodeVersion":"9.3.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-lBc+rhtdPAr0s1QF2YV2GXWWrWkGinnZMvDAODXCBbwqeuqjy6W9VS3N+6trRFtvfWwveU6xYXwVByKf7ni5Eg==","shasum":"79c928e1f0edadaa0a18199f9e890ad3177703a0","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.6.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE3bSzYtZLDErWiiySOJAq7zXqjKULhpZDrz2C8edP9HAiArrAegjzrIcncMZyJbfKyxX8SoYOZiWNOyVA8xrmkLZA=="}]},"maintainers":[{"email":"hnnyejccool@sina.com","name":"happybang"},{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"vv314@foxmail.com","name":"vv314"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder-1.6.1.tgz_1517290936782_0.9823947742115706"},"directories":{}},"1.6.2":{"name":"webpack-marauder","version":"1.6.2","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.2","babel-core":"^6.26.0","babel-eslint":"^8.0.3","babel-jest":"^21.2.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.0","babel-runtime":"^6.26.0","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.0","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.7","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","eslint":"^4.12.1","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.5","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^4.0.3","glob":"^7.1.2","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","jest":"^21.2.1","marauder-ejs-loader":"^1.0.0","md5":"^2.2.1","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.3.0","portscanner":"^2.1.1","postcss-cssnext":"^3.0.2","postcss-flexbugs-fixes":"^3.2.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.9","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","react-dev-utils":"^4.2.1","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"^0.0.10","sinamfe-webpack-module_dependency":"^1.1.0","tinify":"^1.5.0","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.9","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.1","webpack-dev-server":"^2.9.7","webpack-merge":"^4.1.1","yargs":"^10.0.3","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"gitHead":"5c73fafaa7675763b5be63f5b830812324fa3bf8","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.6.2","_npmVersion":"5.6.0","_nodeVersion":"9.3.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-zCiOWUawptsNQI9giUtGKgydpgyUrmYKAsy4KxeDYmmX1IxIvylEVFEpKc0FlqkGn9u7iu+ihsa/gX7uWIJeyA==","shasum":"c1fa8f3054b2db96d7cb128a91256c745ee18897","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.6.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDAOq9H+Cmx2Oy94ZGLYlVlXodWMveCyE/5ORdQ75QlKQIgFjl81G7Z30x60xNvbAuhhJ2B+DLTV/Z4NoAP7/jK5kw="}]},"maintainers":[{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"hnnyejccool@sina.com","name":"happybang"},{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"vv314@foxmail.com","name":"vv314"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder-1.6.2.tgz_1517312417895_0.5202321887481958"},"directories":{}},"1.6.1-pwa":{"name":"webpack-marauder","version":"1.6.1-pwa","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.2","babel-core":"^6.26.0","babel-eslint":"^8.0.3","babel-jest":"^21.2.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.0","babel-runtime":"^6.26.0","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.0","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.7","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","eslint":"^4.12.1","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.5","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^4.0.3","glob":"^7.1.2","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","jest":"^21.2.1","marauder-ejs-loader":"^1.0.0","md5":"^2.2.1","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.3.0","portscanner":"^2.1.1","postcss-cssnext":"^3.0.2","postcss-flexbugs-fixes":"^3.2.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.9","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","react-dev-utils":"^4.2.1","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"^0.0.10","sinamfe-webpack-module_dependency":"^1.1.0","tinify":"^1.5.0","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.9","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.1","webpack-dev-server":"^2.9.7","webpack-merge":"^4.1.1","yargs":"^10.0.3","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"gitHead":"ab41acaa1bd403c03801bb4782b9447f151598ea","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.6.1-pwa","_npmVersion":"5.6.0","_nodeVersion":"8.7.0","_npmUser":{"name":"nowheretorun","email":"452242153@qq.com"},"dist":{"integrity":"sha512-mSEJG3sBqBT/SSwXkIu3250QmNi+F5GsuYVpB9TY6cJJFpACobFOX6TD4dSYYSmXhJ8LS3Q0I9fK9+TsBf0jaQ==","shasum":"79dcc703df3b9ef5a968f702e8d5b35d0ab45b68","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.6.1-pwa.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID2HwAdHBTtSUWECabsGLy/oC3TVn2Nn6AQP5pn4UNrOAiEA9vW5jE3ukxkOf2PtShDWuxQLFIdANKtExsuOqgfs0Gc="}]},"maintainers":[{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"hnnyejccool@sina.com","name":"happybang"},{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"vv314@foxmail.com","name":"vv314"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder-1.6.1-pwa.tgz_1517314726268_0.4333160878159106"},"directories":{}},"1.6.1-pwa1":{"name":"webpack-marauder","version":"1.6.1-pwa1","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.2","babel-core":"^6.26.0","babel-eslint":"^8.0.3","babel-jest":"^21.2.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.0","babel-runtime":"^6.26.0","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.0","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.7","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","eslint":"^4.12.1","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.5","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^4.0.3","glob":"^7.1.2","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","jest":"^21.2.1","marauder-ejs-loader":"^1.0.0","md5":"^2.2.1","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.3.0","portscanner":"^2.1.1","postcss-cssnext":"^3.0.2","postcss-flexbugs-fixes":"^3.2.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.9","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","react-dev-utils":"^4.2.1","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"^0.0.10","sinamfe-webpack-module_dependency":"^1.1.0","tinify":"^1.5.0","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.9","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.1","webpack-dev-server":"^2.9.7","webpack-merge":"^4.1.1","workbox-webpack-plugin":"^2.1.2","yargs":"^10.0.3","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"gitHead":"ffaec3d311fb416e318ed735dc96f577d33dc537","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.6.1-pwa1","_npmVersion":"5.6.0","_nodeVersion":"8.7.0","_npmUser":{"name":"nowheretorun","email":"452242153@qq.com"},"dist":{"integrity":"sha512-BYaHSExtH1oHnUlZkiaf9MuWwEssPienAiOejb3KD4xbAimGh7WSfmEeioaF/DU0ZdkAia9fcQfJ0NTKboYOfQ==","shasum":"a22c6ebd9e5faf2a04a249d2b9628fca2c60dd6e","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.6.1-pwa1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDEMB7wJtkyF6uywLeMfpaDiyN+JWMtEDjLXOwPeI7umAiBEM+RBrNN+3fmh2YABEeJRyQrZGcsY/Et49u5gv45nAg=="}]},"maintainers":[{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"hnnyejccool@sina.com","name":"happybang"},{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"vv314@foxmail.com","name":"vv314"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder-1.6.1-pwa1.tgz_1517315677652_0.8793427322525531"},"directories":{}},"1.7.0-rc":{"name":"webpack-marauder","version":"1.7.0-rc","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.0","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","md5":"^2.2.1","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.3.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","raf":"^3.4.0","react-dev-utils":"^5.0.0","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"^0.0.10","sinamfe-webpack-module_dependency":"^1.1.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.9","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.1","yargs":"^10.0.3","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及纯 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n* [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n* [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n**注意：由于 `yarn` 无法获取自定义参数，请使用 `npm run` 运行本命令**\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"2892b2ca02e15a760f253e08d8823cc7a1abe752","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.7.0-rc","_npmVersion":"5.6.0","_nodeVersion":"9.3.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-mGRuSGSNdXWEHlRuwR+lnNJs1nquNT3vk3G5LtuD+Q+yvqoj6qAP+YNxyuUlpsAfaCWsNI+cDg9aYSRceKQkkQ==","shasum":"dedb51ff1886e08ef3d9a51a36d7424d9df7119d","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.7.0-rc.tgz","fileCount":29,"unpackedSize":81509,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBEb7gp35ACl6QuVmoFWp/kazzfPcCZbrX5GMuUwu72IAiA6UhRLRNGCW39pFfTMlEFxkp6e+iDDMlQ3x2CJ5q38Lg=="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"hnnyejccool@sina.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.7.0-rc_1518082219600_0.692687727854534"},"_hasShrinkwrap":false},"1.7.0-rc1":{"name":"webpack-marauder","version":"1.7.0-rc1","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","md5":"^2.2.1","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","raf":"^3.4.0","react-dev-utils":"^5.0.0","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"^0.0.10","sinamfe-webpack-module_dependency":"^1.1.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.9","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.1","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及纯 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n* [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n* [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n**注意：由于 `yarn` 无法获取自定义参数，请使用 `npm run` 运行本命令**\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"a150f23e4610f80333060c4e06a8d60f863453b2","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.7.0-rc1","_npmVersion":"5.6.0","_nodeVersion":"9.3.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-1KH+BoNqed3jpEf1i+EcbaipcKOyGDwPBzpCk9pviBvIetltZN4ovO596iqb6nANfgBSCSJF2jIKqvA9a2blDg==","shasum":"b93f2df1f6b03b4bcb3b8399d9e7b4d146d89ffb","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.7.0-rc1.tgz","fileCount":30,"unpackedSize":83113,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDFj+RV/kobhRgD8jsgINq6NXzccpFK1KlikgTYqhIO0AIhALvYIRMux3h09BVkxMZnJJaTz8AFd4YTld/W45OQBBql"}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"hnnyejccool@sina.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.7.0-rc1_1518419733764_0.443781478688948"},"_hasShrinkwrap":false},"1.7.0-rc2":{"name":"webpack-marauder","version":"1.7.0-rc2","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","md5":"^2.2.1","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","raf":"^3.4.0","react-dev-utils":"^5.0.0","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"^0.0.10","sinamfe-webpack-module_dependency":"^1.2.1","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.9","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.1","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及纯 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n* [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n* [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n**注意：由于 `yarn` 无法获取自定义参数，请使用 `npm run` 运行本命令**\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"6cb41387f839813b3a2186b48141c62b3ca52c7a","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.7.0-rc2","_npmVersion":"5.6.0","_nodeVersion":"9.3.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-ku5sSjdhapEJbrVIOcZzf74lDR4b/V444BfkJCRGYC3lYDNWcaYnWfPWniceOJbRI/cf+K8gMV4jWvCE0AgDrw==","shasum":"4213a533cff9f80285ad6deafaf9c1bc9962aabd","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.7.0-rc2.tgz","fileCount":31,"unpackedSize":87736,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEMCH3cRbwZSfZ3gbzjl3hwEgvsc9DGgdchczAKLQFuAxmMCIBF9rq7LCOl03t0hKeTxYL0HqXBc7pyvaH7AwU8w/gJv"}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"hnnyejccool@sina.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.7.0-rc2_1519443254200_0.9352324283546383"},"_hasShrinkwrap":false},"1.7.0-rc-wasm":{"name":"webpack-marauder","version":"1.7.0-rc-wasm","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"assemblyscript-typescript-loader":"^1.3.0","art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","md5":"^2.2.1","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","raf":"^3.4.0","react-dev-utils":"^5.0.0","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"^0.0.10","sinamfe-webpack-module_dependency":"^1.2.1","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.9","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.1","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及纯 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n* [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n* [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n**注意：由于 `yarn` 无法获取自定义参数，请使用 `npm run` 运行本命令**\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"6cb41387f839813b3a2186b48141c62b3ca52c7a","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.7.0-rc-wasm","_npmVersion":"5.5.1","_nodeVersion":"8.5.0","_npmUser":{"name":"happybang","email":"franktech84@gmail.com"},"dist":{"integrity":"sha512-+ELOoCsS6jm+BAe+KAwGizoaSFH1ALH59JyYi9E4SH12j4B3feopyMDFujExTilCeaXwg9+Xi2QITFUssmo3vA==","shasum":"13cd40b1394864eb8e1fc60e95f368b650513ed1","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.7.0-rc-wasm.tgz","fileCount":31,"unpackedSize":88338,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCC9lydhyJZJ5h5MsntQbifcd1JHfix4aze8JSVXh7sywIgDUSNOHPujjUnCSX7gINtKZxvef1OcHgV7eOHZUFqEyk="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"hnnyejccool@sina.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.7.0-rc-wasm_1519581605032_0.690058561633407"},"_hasShrinkwrap":false},"1.7.0":{"name":"webpack-marauder","version":"1.7.0","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","md5":"^2.2.1","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","raf":"^3.4.0","react-dev-utils":"^5.0.0","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"^0.0.10","sinamfe-webpack-module_dependency":"^1.2.1","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.9","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.1","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"gitHead":"6cb41387f839813b3a2186b48141c62b3ca52c7a","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.7.0","_npmVersion":"5.6.0","_nodeVersion":"9.3.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-ssD6O9OppzhHtio/8UaYFeCsxq/zVHIJUUFxEWiaQ8NKznma/qv6tpXsSnuwNlWZq62HzN2TRMU95iaytZFJlA==","shasum":"4eb72fc32c59e8937cde441a8d354ee7ce923315","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.7.0.tgz","fileCount":31,"unpackedSize":87732,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC4p/rEbFgwdZp1er0jwVsEyqyIQN4A0JFb7lCGxzLKmQIhAKSb0pVvB+GQe2qC8pn6qawUq74ry51Aj0xGI6gI/4oI"}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"hnnyejccool@sina.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.7.0_1519722488059_0.8391662654325758"},"_hasShrinkwrap":false},"1.7.1":{"name":"webpack-marauder","version":"1.7.1","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","md5":"^2.2.1","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","raf":"^3.4.0","react-dev-utils":"^5.0.0","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"^0.0.10","sinamfe-webpack-module_dependency":"^1.2.1","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.9","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.1","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"gitHead":"10176d84c18d5ec74a891c5d7c64ad037ff8c02d","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.7.1","_npmVersion":"5.6.0","_nodeVersion":"9.3.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-H7Qrhk2bRt3LNCAIQlr8gI/RTIGe7oYASZpyNDuXnhCQdgbChAddzc97MBg4CKaw55TMkX0LZ+sFTIwgM77UTQ==","shasum":"e9bdee56461850aaf7656f1ca4a69682157c267c","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.7.1.tgz","fileCount":31,"unpackedSize":87953,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHqvfXDFc7j/9wzBdtd7hlBZ0FaYSNC9pGMtb7Xv7i3xAiEAoc/0QFXQgZCTa32kNVdBfLx9fqAj1rj2/X9OBTFdc0E="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"hnnyejccool@sina.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.7.1_1519732968458_0.5771188638975129"},"_hasShrinkwrap":false},"1.7.2-beta":{"name":"webpack-marauder","version":"1.7.2-beta","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","md5":"^2.2.1","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","raf":"^3.4.0","react-dev-utils":"^5.0.0","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"^0.0.10","sinamfe-webpack-module_dependency":"^1.2.1","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.9","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及纯 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n* [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n* [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n**注意：由于 `yarn` 无法获取自定义参数，请使用 `npm run` 运行本命令**\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"922ef473346c12cc200baa7b01e63d1a1046aae4","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.7.2-beta","_npmVersion":"5.6.0","_nodeVersion":"9.3.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-u1O8Lbf2JU72c+kCUVCXMAQCDR59EQTxmd0Obp2W5/Mp/kmr/kqUsDnDu1BD6x8C2MOcP3CAGHNv27aqNTbjQw==","shasum":"41ef6ffa7f303df1e872be4c85f59910cbb79aac","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.7.2-beta.tgz","fileCount":33,"unpackedSize":91507,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD1Q6YaJUh4muCabnXm8vCOW9ey/a0nq4rYs38SYRuQVwIgXN8siwsjbFATv5rvdtXxMvDnloB2lEdvdBAIPSaznc0="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"hnnyejccool@sina.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.7.2-beta_1519803967577_0.7496069987215956"},"_hasShrinkwrap":false},"1.7.2-beta.1":{"name":"webpack-marauder","version":"1.7.2-beta.1","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","md5":"^2.2.1","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","raf":"^3.4.0","react-dev-utils":"^5.0.0","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"^0.0.10","sinamfe-webpack-module_dependency":"^1.2.1","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.9","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及纯 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n* [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n* [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n**注意：由于 `yarn` 无法获取自定义参数，请使用 `npm run` 运行本命令**\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"4f8347f1a53c5f407fb4bcc1b508d5879aa44519","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.7.2-beta.1","_npmVersion":"5.6.0","_nodeVersion":"9.3.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-Avpv3rkCxJZXOAWrkFpaRYsAyUKYMQcVFD/TmwDrOfoAROS+N2k5DpHEoGKiifVk6GsfrmcYZYj+PqqrMVTRXw==","shasum":"7a8d7e686da715a9d57a7a5e5f4e0789b888db0f","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.7.2-beta.1.tgz","fileCount":33,"unpackedSize":91515,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID02RxWjNg2SSOydc4HuMymYrDkV2aVDXfi7I2yKbIE3AiEA90Kds9lrc9FFXUTg1SgMemonfW/3y143G/Mbm1zbuVs="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"hnnyejccool@sina.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.7.2-beta.1_1519804926309_0.21214182032702178"},"_hasShrinkwrap":false},"1.7.2-beta.2":{"name":"webpack-marauder","version":"1.7.2-beta.2","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","md5":"^2.2.1","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","raf":"^3.4.0","react-dev-utils":"^5.0.0","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"^0.0.10","sinamfe-webpack-module_dependency":"^1.2.1","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.9","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及纯 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n* [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n* [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n**注意：由于 `yarn` 无法获取自定义参数，请使用 `npm run` 运行本命令**\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"300d39f432f25c4fd1102fdc9146b995782c41bf","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.7.2-beta.2","_npmVersion":"5.6.0","_nodeVersion":"9.3.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-IEh7tTuRpWq463uvGwEWnQqRM0DUHbs/ABXSoQEqNc3liYypNLshCMd82j3gWesD1mDe4YLvEYpi5VgU3q8F+w==","shasum":"cd3f2e0d703a6aab691c5ac77dbf407ddf04274e","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.7.2-beta.2.tgz","fileCount":34,"unpackedSize":92817,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDEOsyJu2GyXx1+NHwvEdKlj2b9C/mvgD0AHpIutZOsGgIgMGOouOvgNz+GV5nLz2RBrxv6hwnYJ2iNbDfacu+f0to="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"hnnyejccool@sina.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.7.2-beta.2_1519871767454_0.2686596106242187"},"_hasShrinkwrap":false},"1.7.2-beta.3":{"name":"webpack-marauder","version":"1.7.2-beta.3","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","md5":"^2.2.1","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","raf":"^3.4.0","react-dev-utils":"^5.0.0","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"^0.0.10","sinamfe-webpack-module_dependency":"^1.2.1","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.9","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n> 注意：本项目使用了 async/await 特性依赖 Node.js 8.0 以上\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n* [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n* [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n**注意：由于 `yarn` 无法获取自定义参数，请使用 `npm run` 运行本命令**\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"1cf02a37144ba6b6883f0c3256cacd36777321ca","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.7.2-beta.3","_npmVersion":"5.7.1","_nodeVersion":"9.3.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-Vv8fsJwDXDA1NLlY15fIYfJ+LPLNExGrLhWkqcxts+itp9dC3vq6ZshuufiVjNoWeaBmJBsnNjqhYr1OW3J+vw==","shasum":"27e46d3286285b0b53cfb81969150585e473ff9f","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.7.2-beta.3.tgz","fileCount":34,"unpackedSize":92988,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE54kxmWOvphIqM6DzS0br0T59FaKGg+qLber348MT1oAiB3kz0cqiZswaDbUHeqxpytgojzOFKbZHnPAAM+71+qFw=="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"hnnyejccool@sina.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.7.2-beta.3_1520245202339_0.6260698825429247"},"_hasShrinkwrap":false},"1.7.2":{"name":"webpack-marauder","version":"1.7.2","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","md5":"^2.2.1","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","raf":"^3.4.0","react-dev-utils":"^5.0.0","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.2.1","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.9","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"gitHead":"099837795a5640dcdc8d58ed6ba18731655f1d28","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.7.2","_npmVersion":"5.7.1","_nodeVersion":"9.3.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-FQioLRqdAAuEJmTujdscJ54cBWGnf/nQkBC7G1eaBsPz90YNaYggzE6YZzSxbxoR7BV9Jh3GPlYhzx9UIQMXPA==","shasum":"62a059092e67f18205dcc00f8bb92f36a21d3db8","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.7.2.tgz","fileCount":35,"unpackedSize":94213,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEwtCHMR8Nbl/ncs3TLG8uG0Lrea0IGuBPpPzgifqetMAiAeSo4/LmDO8V2I2RtsJHRoTjphHHvBlfMgnrSa/YSNyw=="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"hnnyejccool@sina.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.7.2_1520308065252_0.9371257186209601"},"_hasShrinkwrap":false},"1.7.3":{"name":"webpack-marauder","version":"1.7.3","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","md5":"^2.2.1","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","raf":"^3.4.0","react-dev-utils":"^5.0.0","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.2.1","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.9","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"gitHead":"637bad9dfcec89360a2d837a1affeaa85b34661f","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.7.3","_npmVersion":"5.7.1","_nodeVersion":"9.3.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-ACXIWiHnJlxKALRYzt7BYA8mjWtWQNCJJ8+t/btEdf+borqqqeQMJ3oHdlrY1CCQQSr2Sn0o6rW4MxQlf+Ed0A==","shasum":"0b652269f5cd6f75bed3798f62e9989878b7a7aa","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.7.3.tgz","fileCount":35,"unpackedSize":94279,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDlLLdt1ljq3tOHETE+hyak3jOoV/MW0QRmPmWmj25d+gIhAIlXWiloNtpDuGcYmrn9exLdXxrkXFsODxlWJddjLk41"}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"hnnyejccool@sina.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.7.3_1520314970807_0.9381778526403608"},"_hasShrinkwrap":false},"1.7.4":{"name":"webpack-marauder","version":"1.7.4","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","md5":"^2.2.1","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","raf":"^3.4.0","react-dev-utils":"^5.0.0","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.2.1","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.9","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"gitHead":"7edf8c840d58ee6e97d4ab69e0bfa99d7ce70fcd","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.7.4","_npmVersion":"5.7.1","_nodeVersion":"9.3.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-sZNW3O30xSGrL1gGgqJUNVVJ/DCL60XQ6W5hmXSp7Vx/r0nmlAY93yPTe7eY3z8yEqm/e4FhVsEjT19sqFa8Vw==","shasum":"66a56652a0220540931c1e18aed7eb39171aee3d","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.7.4.tgz","fileCount":35,"unpackedSize":94310,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCZVz6HyJimNhkMz9+/OB8lRO7l3Kzqu7wYyVQaZXjxkAIgGgApnznu+0loeKX5mZMYJvRS/ku2FuBk/QdB6wIvIFw="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"hnnyejccool@sina.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.7.4_1520403638203_0.011271794542330182"},"_hasShrinkwrap":false},"1.7.5":{"name":"webpack-marauder","version":"1.7.5","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","md5":"^2.2.1","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","raf":"^3.4.0","react-dev-utils":"^5.0.0","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.2.1","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.9","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"gitHead":"12f7fa7aa149ec1cdac33ae0750a36dffefac8cc","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.7.5","_npmVersion":"5.7.1","_nodeVersion":"9.3.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-ulIViw5l0ipSdsoxY35Nb+MINr80QE/ER5hmT/PWEI92kFssaCILJYekzEuNdrcQsgBTPmV19A7toh2pjkVV5Q==","shasum":"9a3fa0d1bc501b6d49c21db8f788ba2d3a8831dd","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.7.5.tgz","fileCount":35,"unpackedSize":94368,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF0taEjr5H5RsFMh//6sBYRpMYbDcuYd8GkUDYGOUzzzAiEAn8pq7EjLNQ85b/hJc/PEqJuuyb1elf71f0XbQUBM9M8="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"hnnyejccool@sina.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.7.5_1520909945479_0.800637647418512"},"_hasShrinkwrap":false},"1.7.6-rc":{"name":"webpack-marauder","version":"1.7.6-rc","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","md5":"^2.2.1","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","raf":"^3.4.0","react-dev-utils":"^5.0.0","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.2.1","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.9","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n> 注意：本项目使用了 async/await 特性依赖 Node.js 8.0 以上\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n* [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n* [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n**注意：由于 `yarn` 无法获取自定义参数，请使用 `npm run` 运行本命令**\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"12f7fa7aa149ec1cdac33ae0750a36dffefac8cc","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.7.6-rc","_npmVersion":"5.7.1","_nodeVersion":"9.3.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-B6FbT8IH7QoE55lTLgRmSar+bt8fLUkPJ1iTaepoH9qGm8BgtO9zLhg7RL4xejr+otprSvLAzzvR5IiJlnmVBA==","shasum":"2dd9a50ff2ed48a6e5d27f608a459a28a4f629fa","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.7.6-rc.tgz","fileCount":35,"unpackedSize":94371,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF23P8ItnFmQvMPVMDDsYq9o6zr2IRPUTSxL/4Ou9Vh+AiBl26BpW8yK3KEUQSxni2N90cM809cRvV/E9d5z4j1Tgw=="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"hnnyejccool@sina.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.7.6-rc_1520929608123_0.9593176748266443"},"_hasShrinkwrap":false},"1.7.6-rc.1":{"name":"webpack-marauder","version":"1.7.6-rc.1","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","md5":"^2.2.1","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","raf":"^3.4.0","react-dev-utils":"^5.0.0","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.2.1","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.9","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n> 注意：本项目使用了 async/await 特性依赖 Node.js 8.0 以上\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n* [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n* [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n**注意：由于 `yarn` 无法获取自定义参数，请使用 `npm run` 运行本命令**\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"a3e7a58fe01bab7b8b3f66c77a9a753cc748daab","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.7.6-rc.1","_npmVersion":"5.7.1","_nodeVersion":"9.3.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-eMeri2sifvGVcNGLBK61Nq0SayViDOFVx+TD1oV1Togj4EDueayxlZiNBUWCAh115x7efXQ63WTREpYhMMsDAA==","shasum":"69cbca5d704aae1cefed57ab65d76fa97a2e1f46","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.7.6-rc.1.tgz","fileCount":35,"unpackedSize":94403,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID8oEnRXaft3VSz8qSP4cbrzSYHhugW4k2b3dOAxwKa6AiEAhM86N93EESQRNB/E4TqFFKszqvQbP7r1FhntrhstnQI="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"hnnyejccool@sina.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.7.6-rc.1_1520930399003_0.1217029319045213"},"_hasShrinkwrap":false},"1.7.6-hy":{"name":"webpack-marauder","version":"1.7.6-hy","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","md5":"^2.2.1","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","raf":"^3.4.0","react-dev-utils":"^5.0.0","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.2.1","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.9","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n> 注意：本项目使用了 async/await 特性依赖 Node.js 8.0 以上\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n* [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n* [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n**注意：由于 `yarn` 无法获取自定义参数，请使用 `npm run` 运行本命令**\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"f062aeaa98d2eae38bb4a1b2dbcf6c5a0424b99d","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.7.6-hy","_npmVersion":"5.6.0","_nodeVersion":"8.10.0","_npmUser":{"name":"happybang","email":"franktech84@gmail.com"},"dist":{"integrity":"sha512-9FIzc2krNGeWcLZPLguMcp/ZrPLvzHrBrznfINKvT9ij6PWtQWfeYhWavlIbsSOjxVCF4+WveGu2VYwWE2bFdQ==","shasum":"68d0b08efc332ef0b553aaa055bc5244487a0537","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.7.6-hy.tgz","fileCount":35,"unpackedSize":94343,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIER6HxAO0beozGzAeocOnYo14QNaWih/43OPP1KuBetNAiBsdWt8toTIwXDROBF4RQIA9USoyRIgTpxFMxJV1L5PtQ=="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"hnnyejccool@sina.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.7.6-hy_1521096530558_0.7604267465256043"},"_hasShrinkwrap":false},"1.7.6-hy.1":{"name":"webpack-marauder","version":"1.7.6-hy.1","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","md5":"^2.2.1","minimist":"^1.2.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","raf":"^3.4.0","react-dev-utils":"^5.0.0","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.2.1","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.9","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n> 注意：本项目使用了 async/await 特性依赖 Node.js 8.0 以上\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n* [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n* [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n**注意：由于 `yarn` 无法获取自定义参数，请使用 `npm run` 运行本命令**\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"95515b43525505700d5afc53289bbf598cb1cc40","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.7.6-hy.1","_npmVersion":"5.7.1","_nodeVersion":"9.3.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-6LE8MKhJnchQ0IvB8wxnb7WPn7pc8fRrxIZo7pmYMbwLp5SfR/SjeHQdh04XMXgvPRQXs/0cF5kkRsIdhASBGQ==","shasum":"46093d86b6e665319f82c234a0fe5ffb738f298e","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.7.6-hy.1.tgz","fileCount":35,"unpackedSize":94597,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC7BaY9FeCEJfM0TpVjaH//+wsuUMe7/e8oFvnKZRxVvwIgK8F2FBfj9mFY170cQtdrR1QXvfzvPpxSOa+pTd3NJNE="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"hnnyejccool@sina.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.7.6-hy.1_1521171628845_0.09262931012343434"},"_hasShrinkwrap":false},"1.7.6-hy.2":{"name":"webpack-marauder","version":"1.7.6-hy.2","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","md5":"^2.2.1","minimist":"^1.2.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","raf":"^3.4.0","react-dev-utils":"^5.0.0","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.2.1","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.9","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n> 注意：本项目使用了 async/await 特性依赖 Node.js 8.0 以上\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n* [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n* [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n**注意：由于 `yarn` 无法获取自定义参数，请使用 `npm run` 运行本命令**\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"9d3f34e1adb20ef839c68aa6dfce4def74e89530","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.7.6-hy.2","_npmVersion":"5.6.0","_nodeVersion":"8.10.0","_npmUser":{"name":"happybang","email":"franktech84@gmail.com"},"dist":{"integrity":"sha512-ltgVzq1WcGcOuwVs45yq0VDGxxTcr4A/TOYJ2YTSPNHDEyZXzZuu71JG7jzXW0rOPXvwf+PsxwIk2YKpkF6V/A==","shasum":"284eb74aedfe99467bb17cd8e2a18b6df0cdc22c","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.7.6-hy.2.tgz","fileCount":35,"unpackedSize":94539,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCpj8vJE55XYE0LEjMEh24F9c36Nmbw6KkbbsMqgvZ/nAIgPWkD5mmUS//nRXoTemxibCJxQf6RMlPIf/XFh7YaaAk="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"hnnyejccool@sina.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.7.6-hy.2_1521516707357_0.4387570730793202"},"_hasShrinkwrap":false},"1.7.6-hy.4":{"name":"webpack-marauder","version":"1.7.6-hy.4","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","md5":"^2.2.1","minimist":"^1.2.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","raf":"^3.4.0","react-dev-utils":"^5.0.0","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.2.1","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.9","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0","sina-html-webpack-plugin":"latest"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"gitHead":"ec4cda84cab3e56dd178dd6facafa20c8548050e","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.7.6-hy.4","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"flypie2","email":"1037028848@qq.com"},"dist":{"integrity":"sha512-UUDtg6sJRP3KvsbWtGsc0eWYdtrzf+WK37cyf6Gdz/rQJc3ErTCtVxq1H6+AkVlucD0gyu1JDT2OIhI2MPk0Cw==","shasum":"4bd59453e9c7f0e67d33a302a32238e295cfa848","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.7.6-hy.4.tgz","fileCount":35,"unpackedSize":94626,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGsYVw355t3NWUS9gM//6/OkKhTA414LGrpHAmorDV7kAiEA5ANUQbJQLBA2ra6JEcZyaT2rhh5WQs9E4aRWLOv/ggQ="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.7.6-hy.4_1521547204112_0.33188409091632254"},"_hasShrinkwrap":false},"1.7.6-hy.5":{"name":"webpack-marauder","version":"1.7.6-hy.5","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","md5":"^2.2.1","minimist":"^1.2.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","raf":"^3.4.0","react-dev-utils":"^5.0.0","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.2.1","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.9","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0","sina-html-webpack-plugin":"latest"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n> 注意：本项目使用了 async/await 特性依赖 Node.js 8.0 以上\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n* [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n* [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n**注意：由于 `yarn` 无法获取自定义参数，请使用 `npm run` 运行本命令**\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"ec4cda84cab3e56dd178dd6facafa20c8548050e","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.7.6-hy.5","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"flypie2","email":"1037028848@qq.com"},"dist":{"integrity":"sha512-Eanchy7Sg3pHpZi6urnGATOxmxN50J7n6tAB0igyrpoKjZbHA00AUznlfh2rzLHPoAYszkYd/Ohn5ztCa6+2Bg==","shasum":"034726f85ee6887250dec5918389bd9e5671a9e4","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.7.6-hy.5.tgz","fileCount":35,"unpackedSize":94626,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHzAVHRz2QWwtM5EZxDD4iBFI84e4novKo6n+zv8kTPIAiEAiN4QWXmZYIfzpLcit/91juyouEW1WQa3hFehALr9AMs="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.7.6-hy.5_1521547324257_0.22972306168329149"},"_hasShrinkwrap":false},"1.7.7":{"name":"webpack-marauder","version":"1.7.7","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","md5":"^2.2.1","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","raf":"^3.4.0","react-dev-utils":"^5.0.0","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.2.1","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.9","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0","sina-html-webpack-plugin":"latest"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"gitHead":"6dfae07d4f2791dd89a17c8c7093345782071f2c","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.7.7","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"flypie2","email":"1037028848@qq.com"},"dist":{"integrity":"sha512-58eOAhAka1IevprKeyNStJMs6/rEcCEsOrgwEucrKIUABhLF//RJF6EYPwDP3F8mlN2spD611CZcwE+KQztR4A==","shasum":"1146cb337c7df85bb1c5ab5967191cf710b3200a","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.7.7.tgz","fileCount":35,"unpackedSize":94485,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICek1BYLH9DUSnu1bP/AjJUejlDL2B9pQvOCB0biujWCAiEAqFeWtnGiEnamWM2kTF2VYnWT96zjfaDSItmbGKIKx/s="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.7.7_1521547484833_0.8092029342213176"},"_hasShrinkwrap":false},"1.7.6-hy.6":{"name":"webpack-marauder","version":"1.7.6-hy.6","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","md5":"^2.2.1","minimist":"^1.2.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","raf":"^3.4.0","react-dev-utils":"^5.0.0","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.2.1","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.9","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0","sina-html-webpack-plugin":"latest"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n> 注意：本项目使用了 async/await 特性依赖 Node.js 8.0 以上\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n* [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n* [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n**注意：由于 `yarn` 无法获取自定义参数，请使用 `npm run` 运行本命令**\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"344bb6eeb8e09fd2785da69771b42342be6a7f94","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.7.6-hy.6","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"flypie2","email":"1037028848@qq.com"},"dist":{"integrity":"sha512-2JEmqUFgiV/4FJ3v/ykMhxW5JqfNyJrkLmcruEVUs3i78D8hMcOncgc972/FRx16SZjNXknhFFd9KyhiXGiZhA==","shasum":"1b046b3a569bb6228dcf0c55022981cdd8cc30fd","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.7.6-hy.6.tgz","fileCount":35,"unpackedSize":94624,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDkI9UbGJmkciCTXx1+zoyACFt659d0bwQU/kEaecrs0AiBQi0kelmmlp8Ftqymt3GX8FHOZjJXYS4yG3xHNMleSPA=="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.7.6-hy.6_1521549106055_0.8203670841159405"},"_hasShrinkwrap":false},"1.7.6-hy.7":{"name":"webpack-marauder","version":"1.7.6-hy.7","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","md5":"^2.2.1","minimist":"^1.2.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","raf":"^3.4.0","react-dev-utils":"^5.0.0","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.2.1","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.9","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0","sina-html-webpack-plugin":"latest","marauder-umd-loader":"latest"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n> 注意：本项目使用了 async/await 特性依赖 Node.js 8.0 以上\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n* [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n* [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n**注意：由于 `yarn` 无法获取自定义参数，请使用 `npm run` 运行本命令**\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"c485bfa2c2e63a8ba56168f67610593ef2853601","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.7.6-hy.7","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"flypie2","email":"1037028848@qq.com"},"dist":{"integrity":"sha512-5aWH3cCCIvLh2P2xyxzQWTBu8IivYecCHRegxDvNXVjzbD1cbJQCIyBZfxDASyT6B+Z7OxZOl9yPti4P80nulg==","shasum":"f90836566159cae0f4bacb2d487196b1bee7def3","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.7.6-hy.7.tgz","fileCount":35,"unpackedSize":94665,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCuggUBLieQMB8bEdf4YCd/2uHgrcSuf6pb1J/JjfJaZQIhAJewqIbuKEDLvSptoRSNgbTMaEgMQuz7fkcUmDfx3S4F"}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.7.6-hy.7_1521614138828_0.5829318451168333"},"_hasShrinkwrap":false},"1.7.8":{"name":"webpack-marauder","version":"1.7.8","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","md5":"^2.2.1","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","raf":"^3.4.0","react-dev-utils":"^5.0.0","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.2.1","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.9","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0","sina-html-webpack-plugin":"latest","marauder-umd-loader":"latest"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"gitHead":"2b0adbda6f55656d879b1c611d214fca48d5f170","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.7.8","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"flypie2","email":"1037028848@qq.com"},"dist":{"integrity":"sha512-Z0yXcUF9U2UEFopF0PATUxgFqZOTujxEGxq56I+3xG7UUg69Mg4WInpiadd3rkqMe0LqKqpxWmz3Dx8aorddqA==","shasum":"f4e7f0f29a90d70a8727aed56ec4139287439dea","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.7.8.tgz","fileCount":35,"unpackedSize":94526,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAgXaPMz1lmoNo6ZII5Y3R/BW6uXAfkYfRYb6NGAhjUKAiBXsiTjVNVgS/4XjEUoKaNLKLJXbxMDzAW6wbGZ3AMqkA=="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.7.8_1521614231514_0.0856788923368712"},"_hasShrinkwrap":false},"1.7.6-hy.8":{"name":"webpack-marauder","version":"1.7.6-hy.8","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","md5":"^2.2.1","minimist":"^1.2.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","raf":"^3.4.0","react-dev-utils":"^5.0.0","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.2.1","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.9","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0","sina-html-webpack-plugin":"latest","marauder-umd-loader":"latest"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n> 注意：本项目使用了 async/await 特性依赖 Node.js 8.0 以上\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n* [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n* [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n**注意：由于 `yarn` 无法获取自定义参数，请使用 `npm run` 运行本命令**\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"e3cf7fce6c4aee5729aa3187a7bc76d5e9dced4f","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.7.6-hy.8","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"flypie2","email":"1037028848@qq.com"},"dist":{"integrity":"sha512-ffO8A6ZOknGnbqWxpEopVwzYy87ij186zCJVBBN/u4fpWRfU0YaQ3PlhL1FpdDPVQOTHVsY8Ew3/0FKKu50OYQ==","shasum":"c4d0dcbb0f662110d97cc907a7a76b735777ffe7","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.7.6-hy.8.tgz","fileCount":35,"unpackedSize":94740,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDksIJehf3TJck/hOrzKNfSv9ktMjTBE3ihXv1GIWL5GQIgWTGsjo550/aoFm9i10WGUHv4tdbadhNg8d2bCJJNlrQ="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.7.6-hy.8_1521701870614_0.4544120598395536"},"_hasShrinkwrap":false},"1.7.6-hy.9":{"name":"webpack-marauder","version":"1.7.6-hy.9","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","md5":"^2.2.1","minimist":"^1.2.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","raf":"^3.4.0","react-dev-utils":"^5.0.0","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.2.1","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.9","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0","sina-html-webpack-plugin":"latest","marauder-umd-loader":"latest","html-loader":"^0.5.5"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n> 注意：本项目使用了 async/await 特性依赖 Node.js 8.0 以上\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n* [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n* [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n**注意：由于 `yarn` 无法获取自定义参数，请使用 `npm run` 运行本命令**\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"94d5ded44d2024c4d1c7461129c2399ab84e7b16","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.7.6-hy.9","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"flypie2","email":"1037028848@qq.com"},"dist":{"integrity":"sha512-etgJx0I7SZWKeYRljPMyfBUTzl1fmmjX/2fkNIV9cahsW7JbudHnWT87pJ/gYdq5/7mbvYLfULIqDwHB5435sQ==","shasum":"8cd79015164e78865f046e5ee493acd028e9554c","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.7.6-hy.9.tgz","fileCount":35,"unpackedSize":94858,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDvtZh6JkiFpd1cRCmiOvBOqDG/0PRmTPP6OQr8gc8AVAiA8c3xvEqy3L75wrr0yewIw2njEpO3Io9GFNmptBhTUMQ=="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.7.6-hy.9_1521711966479_0.7405762348819926"},"_hasShrinkwrap":false},"1.7.6-hy.10":{"name":"webpack-marauder","version":"1.7.6-hy.10","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","md5":"^2.2.1","minimist":"^1.2.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","raf":"^3.4.0","react-dev-utils":"^5.0.0","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.2.1","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.9","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0","sina-html-webpack-plugin":"latest","marauder-umd-loader":"latest","html-loader":"^0.5.5"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"gitHead":"94d5ded44d2024c4d1c7461129c2399ab84e7b16","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.7.6-hy.10","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"flypie2","email":"1037028848@qq.com"},"dist":{"integrity":"sha512-CF3XaJ7rreZv7r9m37Q9jAVdTOkDZyA6mwOzvhjsjHPd7K4qed4fkNXcrxhUZ81gRnl8YrRJqNLsHOd4AAe3pg==","shasum":"c8834eeec5bff8f8687a07bc4d66e4c5e12bb71d","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.7.6-hy.10.tgz","fileCount":35,"unpackedSize":94885,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG1DTd2Zmb4ndgV3GzHXkGLtPwLRiBQ+tNA2w5cRPzQ5AiBVQM53MAh/0fiH8YI9rL+yuNWKGZYw/GZcwYX1oQI4rg=="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.7.6-hy.10_1521721376557_0.6280909333324542"},"_hasShrinkwrap":false},"1.7.6-hy.11":{"name":"webpack-marauder","version":"1.7.6-hy.11","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","md5":"^2.2.1","minimist":"^1.2.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","raf":"^3.4.0","react-dev-utils":"^5.0.0","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.2.1","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.9","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0","sina-html-webpack-plugin":"latest","marauder-umd-loader":"latest","html-loader":"^0.5.5"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n> 注意：本项目使用了 async/await 特性依赖 Node.js 8.0 以上\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n* [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n* [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n**注意：由于 `yarn` 无法获取自定义参数，请使用 `npm run` 运行本命令**\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"94d5ded44d2024c4d1c7461129c2399ab84e7b16","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.7.6-hy.11","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"flypie2","email":"1037028848@qq.com"},"dist":{"integrity":"sha512-KTUJkEoalYApyO6n1lnELGphMzVdqlT0LBpwF/JV6JO1G4TdrC1TK1+hT2XwNgOoDopRFUf60yruqdAcFlacBA==","shasum":"610311ed8542e0c1aa89a0e8df4dfaf79c88169f","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.7.6-hy.11.tgz","fileCount":35,"unpackedSize":94885,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAK56E4/ACS4HAt3Gpr3AUvfpauQ3AK53/C+giIEjJNAAiEA0VnoqgvTrJPVqfnc9TUEnrUMY1cJnHPdUo6mIPPxnYg="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.7.6-hy.11_1521721397433_0.17859141112042765"},"_hasShrinkwrap":false},"1.7.9":{"name":"webpack-marauder","version":"1.7.9","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","md5":"^2.2.1","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","raf":"^3.4.0","react-dev-utils":"^5.0.0","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.2.1","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.9","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0","sina-html-webpack-plugin":"latest","marauder-umd-loader":"latest"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"gitHead":"f30b3dd754dd3cc4b8edf32e9fcd2144af894e1a","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.7.9","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"flypie2","email":"1037028848@qq.com"},"dist":{"integrity":"sha512-+oighgWbCNG+nZyQMgZB1iEAf2YNF9VxYQ0HgQoJhv82vMDAS6JLDUQAjPfmF/9NjRVOpvOypGUf26POg5XgWg==","shasum":"3090d71cecac7533b623455813bdd2755c099c40","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.7.9.tgz","fileCount":35,"unpackedSize":94526,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC64zHLI1sVXGSNx1tAJ2jV8Mo6jyRMnOAHa0TmlzcfQgIhAOd1b/k5rp6PZFk1+M8KhEeqNV0MXA7Ja8x1e0ctTPwK"}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.7.9_1521721555415_0.11323729711869657"},"_hasShrinkwrap":false},"1.7.10":{"name":"webpack-marauder","version":"1.7.10","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","sina-html-webpack-plugin":"0.0.3","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.2.1","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.9","vuex":"^3.0.1","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"gitHead":"e8e7f84792202336c9f3221c3e20a86439d0bff5","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.7.10","_npmVersion":"5.6.0","_nodeVersion":"9.9.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-K/Opli+ejP9+Uo4LArdM8rXe9pPVen83tmo4oQ1bsUEgAhNoZAZ4pB8DwAM6owhnDN0AHS+zG/TVziS7xGb5jQ==","shasum":"99f00aeeaa0b3e1ea73fa0cafe7490d255641c7a","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.7.10.tgz","fileCount":51,"unpackedSize":118293,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE5dq7/4GLYKC+lkaegqCshyyORI6Pd72M3AZbrpf2BSAiAN09HWdNcVQHEsGp3Wb6tC7fqEOxA0jER5vn9IVmkpMg=="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.7.10_1522145473588_0.8312439581060138"},"_hasShrinkwrap":false},"1.8.0":{"name":"webpack-marauder","version":"1.8.0","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","sina-html-webpack-plugin":"0.0.3","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.2.1","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.9","vuex":"^3.0.1","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"gitHead":"a069c7b460791c0b3506fe27126cff42c68eecc4","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.8.0","_npmVersion":"5.6.0","_nodeVersion":"9.9.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-8QN93YzdfDuaptcxlEKjmAYfBbymxfz1wU18RO3qMWEuDQoomnaJ1z34HRrhusU6abAprFPXSqPOxAe0+VXXCQ==","shasum":"074c76dd338f44f8539c59031b07047fe8c6fb5b","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.8.0.tgz","fileCount":51,"unpackedSize":118292,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD31XGnPBsJLZi5nuxHxdOVpmKNlLYVFkdB9ZBrMvubcQIhAK4P/6oSEZmKccY16J0IzyoTziEvmrrGWfs0X8Um5ruK"}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.8.0_1522145951298_0.6022823114354767"},"_hasShrinkwrap":false},"1.8.1":{"name":"webpack-marauder","version":"1.8.1","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","sina-html-webpack-plugin":"0.0.3","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.2.1","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.9","vuex":"^3.0.1","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n> 注意：本项目使用了 async/await 特性依赖 Node.js 8.0 以上\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n* [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n* [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n**注意：由于 `yarn` 无法获取自定义参数，请使用 `npm run` 运行本命令**\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n### 启动微信小程序mpvue开发环境\n\n`webpack-marauder` 除了可以做普通web开发，也支持小程序mpvue的开发环境，详情mpvue的使用方法见：`http://mpvue.com/`\n\n```json\n\"wx-dev\": \"marax wx-dev\"\n```\n\n```\nnpm run wx-dev\n```\n\n在项目 `src` 中会创建wx目录装载基本的mpvue的初始脚本，然后会在根目录生成`wx-dist`目录，使用微信开发者工具直接调试此目录即可。\n\n### 微信小程序mpvue打包\n\n``json\n\"wx-build\": \"marax wx-build\"\n``\n\n功能同`wx-dev`，会一次性在`wx-dist`下打包好mpvue构建的小程序代码。\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"927dfaf0db2b5d4c905570d1e1e37ebb2c9778a6","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.8.1","_npmVersion":"5.6.0","_nodeVersion":"9.9.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-XSOCaxF427Hdng4BLoirIXsqCIKFlkNxU1xDZ9ThT1ITJkReDlti7gg4koZbqVjcCtfTJlGnHd3iMOriEcr1og==","shasum":"d138139cea577b094004ea6c69eaa1209730b190","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.8.1.tgz","fileCount":51,"unpackedSize":118595,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAfKN7Yf1ne10RxXVeLZVm9CCnswl9f2mQndmZZZmDuiAiEAhPSTl/4dle8RGl5LRHQQ28E0rHqcQSasYvXShpbFNW0="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.8.1_1522382636104_0.930194109030329"},"_hasShrinkwrap":false},"1.8.2-rc":{"name":"webpack-marauder","version":"1.8.2-rc","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","sina-html-webpack-plugin":"0.0.3","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.2.2-rc.2","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.9","vuex":"^3.0.1","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n> 注意：本项目使用了 async/await 特性依赖 Node.js 8.0 以上\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n* [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n* [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n**注意：由于 `yarn` 无法获取自定义参数，请使用 `npm run` 运行本命令**\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n### 启动微信小程序mpvue开发环境\n\n`webpack-marauder` 除了可以做普通web开发，也支持小程序mpvue的开发环境，详情mpvue的使用方法见：`http://mpvue.com/`\n\n```json\n\"wx-dev\": \"marax wx-dev\"\n```\n\n```\nnpm run wx-dev\n```\n\n在项目 `src` 中会创建wx目录装载基本的mpvue的初始脚本，然后会在根目录生成`wx-dist`目录，使用微信开发者工具直接调试此目录即可。\n\n### 微信小程序mpvue打包\n\n``json\n\"wx-build\": \"marax wx-build\"\n``\n\n功能同`wx-dev`，会一次性在`wx-dist`下打包好mpvue构建的小程序代码。\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"4cc2be331bab802050b5dcec9dc73cb732ee388e","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.8.2-rc","_npmVersion":"5.6.0","_nodeVersion":"9.9.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-kVARt+9IhkrEwUN773YFzeAWZ7Kw6t8FFzFU6YyFVxeh/G0ezuhvRpJbAiKxK5Ckt9t0rgh4YAXnRB5NVbuiug==","shasum":"6b00ad8e914a0d03065faff6b779a3969e652c63","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.8.2-rc.tgz","fileCount":51,"unpackedSize":118585,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDbWPIqCfqOqgr8DuV+rdLPqqCT85g1sm4bzaYiR65l2AIgcV4aakdlHeuacY+GQvZeEoRxOikRMonYXdxfUltMlho="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.8.2-rc_1522639014938_0.4418764369992183"},"_hasShrinkwrap":false},"1.8.2":{"name":"webpack-marauder","version":"1.8.2","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","sina-html-webpack-plugin":"0.0.3","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.2.2-rc.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.9","vuex":"^3.0.1","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"gitHead":"e3d8cb93a061b301bb89bbf68d85d10668b07f28","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.8.2","_npmVersion":"5.6.0","_nodeVersion":"9.9.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-22vgY0u5F/uVYLDQ0NGJGotzN8pE09I6SA41btiitT+gpv2etR3iTStsVLb150WD+HJxG7tsaT04NFfIxE86NA==","shasum":"e64eedc368e5a28982e9b936a28739f9bc6b74d3","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.8.2.tgz","fileCount":51,"unpackedSize":119128,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEdGvlpVSdIGk2vXGkUD/GFpkp0qd4COH2CpGhDgLyzPAiEA1HNV9fTWLGKuZ+6+7+8+BrqQWF9EUWqCmkNtR8TToT0="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.8.2_1522649855000_0.6976573945952447"},"_hasShrinkwrap":false},"1.8.3-beta":{"name":"webpack-marauder","version":"1.8.3-beta","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","sina-html-webpack-plugin":"0.0.3","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.2.2-rc.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.9","vuex":"^3.0.1","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n> 注意：本项目使用了 async/await 特性依赖 Node.js 8.0 以上\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n* [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n* [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n**注意：由于 `yarn` 无法获取自定义参数，请使用 `npm run` 运行本命令**\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n### 启动微信小程序mpvue开发环境\n\n`webpack-marauder` 除了可以做普通web开发，也支持小程序mpvue的开发环境，详情mpvue的使用方法见：`http://mpvue.com/`\n\n```json\n\"wx-dev\": \"marax wx-dev\"\n```\n\n```\nnpm run wx-dev\n```\n\n在项目 `src` 中会创建wx目录装载基本的mpvue的初始脚本，然后会在根目录生成`wx-dist`目录，使用微信开发者工具直接调试此目录即可。\n\n### 微信小程序mpvue打包\n\n``json\n\"wx-build\": \"marax wx-build\"\n``\n\n功能同`wx-dev`，会一次性在`wx-dist`下打包好mpvue构建的小程序代码。\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"3ebce787ba1767c483c2a206188fc00925e350a0","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.8.3-beta","_npmVersion":"5.6.0","_nodeVersion":"9.9.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-Rke3yU+VIbfBv+DSb+0ZLpg8xZKNYSvY/Q4tNmzj6UQ99cOq2+PdODFCBv0XBHUW5yztEIhkghhirKV4a/S+Vg==","shasum":"2f8fb937ac1a751929d34eb0f6f2e89d7e78297b","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.8.3-beta.tgz","fileCount":51,"unpackedSize":119754,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIChpkD+M2jM5NrSCY/Lerj5KlDgvD9l6CASYJZFxN/urAiEAlkpuG4zVnUFr/mNsexurlvz7Ovh4+AAvGBbEUasuovM="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.8.3-beta_1522723278428_0.14155305680253405"},"_hasShrinkwrap":false},"1.8.3":{"name":"webpack-marauder","version":"1.8.3","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","sina-html-webpack-plugin":"0.0.3","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.2.2-rc.4","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.16","vuex":"^3.0.1","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"gitHead":"1674bb108976002d491197f9d7a5a9dd381473f4","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.8.3","_npmVersion":"5.6.0","_nodeVersion":"9.9.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-OVXhvkoQFb9i1GODcmExh4nM612We2G1sRUrsB+7rBwUZM2/cAvjI821RxDGvI5ja2CSqCF4P/FR89G0XRw5ZA==","shasum":"ddbddc2ccbb3bab161a2c57dba141a880097f1de","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.8.3.tgz","fileCount":51,"unpackedSize":119750,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHWIHq8TZS95ukSfWv6KLMIjhvaeceAEAUtQbR4FZFUWAiAHdzt2NH0hxzsFXrqp5BY8bJYlormGeJY5Kcy1bBHJlw=="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.8.3_1522725540383_0.7107190721036891"},"_hasShrinkwrap":false},"1.7.6-hy.12":{"name":"webpack-marauder","version":"1.7.6-hy.12","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","md5":"^2.2.1","minimist":"^1.2.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","raf":"^3.4.0","react-dev-utils":"^5.0.0","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.2.1","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.9","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0","sina-html-webpack-plugin":"latest","marauder-umd-loader":"latest","html-loader":"^0.5.5"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n> 注意：本项目使用了 async/await 特性依赖 Node.js 8.0 以上\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n* [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n* [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n**注意：由于 `yarn` 无法获取自定义参数，请使用 `npm run` 运行本命令**\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"448f7c734fa63f0cad616e78eecf357be583b0f8","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.7.6-hy.12","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"flypie2","email":"1037028848@qq.com"},"dist":{"integrity":"sha512-k1rkrovZ0s9nBXOZlss5Exeh2PzWlS26PUV9oA9A6cZzaCzNIqEuw/0P7++4PIAW70pa4Q9KT6jIO60VeO3ooA==","shasum":"a142c836972e96ac50c57cf14715479709297199","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.7.6-hy.12.tgz","fileCount":35,"unpackedSize":94859,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICk5Mh++RRweNcRP/78qvsykM/38DX0fj3wnZXwJqtzpAiAkG7xH2kL5y7VCJCViWjAAZ//CsZRq9HQ/T6HNMvKMGA=="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.7.6-hy.12_1522740048862_0.9080165464210386"},"_hasShrinkwrap":false},"1.8.4":{"name":"webpack-marauder","version":"1.8.4","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","sina-html-webpack-plugin":"0.0.3","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.2.2-rc.4","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.16","vuex":"^3.0.1","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"gitHead":"afba4568f2105a82ecbbf71968cfb46f46ca0e9e","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.8.4","_npmVersion":"5.6.0","_nodeVersion":"9.9.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-JzOFm5RUSGM4+RS8klnsxmb0tgF43mqKDnFjY9R8O6fhHjECW1ewZah5vCqEz9Dafy8N8k0e5pnNtTGQUZ89/g==","shasum":"b07c9f720f4eeb9b08e9b21d471c4289eb886c6d","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.8.4.tgz","fileCount":51,"unpackedSize":119754,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIApNn+yE6G3aqo61dcLaaEbmd6CpyFIV3I1QazWJUghTAiByfm5zSuPdiaitcyvP8nOjjZQcrrq0tfjIsbJ9G7Sy+g=="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.8.4_1522744024027_0.4202369141688054"},"_hasShrinkwrap":false},"1.8.5-0":{"name":"webpack-marauder","version":"1.8.5-0","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.2.2-rc.4","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.16","vuex":"^3.0.1","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0","sina-html-webpack-plugin":"latest","marauder-umd-loader":"latest","html-loader":"^0.5.5"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n> 注意：本项目使用了 async/await 特性依赖 Node.js 8.0 以上\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n* [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n* [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n**注意：由于 `yarn` 无法获取自定义参数，请使用 `npm run` 运行本命令**\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n### 启动微信小程序mpvue开发环境\n\n`webpack-marauder` 除了可以做普通web开发，也支持小程序mpvue的开发环境，详情mpvue的使用方法见：`http://mpvue.com/`\n\n```json\n\"wx-dev\": \"marax wx-dev\"\n```\n\n```\nnpm run wx-dev\n```\n\n在项目 `src` 中会创建wx目录装载基本的mpvue的初始脚本，然后会在根目录生成`wx-dist`目录，使用微信开发者工具直接调试此目录即可。\n\n### 微信小程序mpvue打包\n\n``json\n\"wx-build\": \"marax wx-build\"\n``\n\n功能同`wx-dev`，会一次性在`wx-dist`下打包好mpvue构建的小程序代码。\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"dde4b8408c5a9878656fff5b2cbe25b6e08647f9","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.8.5-0","_npmVersion":"5.6.0","_nodeVersion":"8.10.0","_npmUser":{"name":"happybang","email":"franktech84@gmail.com"},"dist":{"integrity":"sha512-w/9L4euoKjk6zbUplOsbNPiN7AZd/txbq7Vo+UiXzUmS7/udIKdSOr26zJG404NmeHmUv0f+ed+hHkauQ6urpA==","shasum":"2286a8c1fc00bb51d0332cd0dfb59c93240b0f77","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.8.5-0.tgz","fileCount":51,"unpackedSize":120826,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCFkIVN7Wn1GeYFqPTtneK5DHsGflT0xN/jFaJCAUScswIhAKFlTbppyQoTbOd5mL5L7A5VuMYZ4qFpL1w2pzzFsMuh"}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.8.5-0_1523257546875_0.02392270262494356"},"_hasShrinkwrap":false},"1.9.0":{"name":"webpack-marauder","version":"1.9.0","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.2.2-rc.4","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.16","vuex":"^3.0.1","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0","sina-html-webpack-plugin":"latest","marauder-umd-loader":"latest","html-loader":"^0.5.5"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"gitHead":"46ce11a25315a4e29e6a4c38c9bedb069fc85236","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.9.0","_npmVersion":"5.6.0","_nodeVersion":"8.10.0","_npmUser":{"name":"happybang","email":"franktech84@gmail.com"},"dist":{"integrity":"sha512-ac5Nu/g55Rpy3e6GDOvOcyKCvJwKAr5t3JCuOek8m0YoVog6flxTk0cJTYHey1SVylouzlQVLQGfwAn2o0iqxg==","shasum":"050dcc1d26556093e01bbe3da3085bb9a6432b2e","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.9.0.tgz","fileCount":51,"unpackedSize":120802,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICL+jnrgzREvFzk8UpkzG/zcGuWk880w3ezD5czBxVXgAiAvPqcpNUrRKfxznTCOQIZ7Nb1ID4PQonq4m8EEDJDz8w=="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.9.0_1523258589145_0.29935563475908156"},"_hasShrinkwrap":false},"1.9.1-rc":{"name":"webpack-marauder","version":"1.9.1-rc","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.2.2-rc.4","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.16","vuex":"^3.0.1","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0","sina-html-webpack-plugin":"latest","marauder-umd-loader":"latest","html-loader":"^0.5.5"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n> 注意：本项目使用了 async/await 特性依赖 Node.js 8.0 以上\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n* [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n* [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n**注意：由于 `yarn` 无法获取自定义参数，请使用 `npm run` 运行本命令**\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n### 启动微信小程序mpvue开发环境\n\n`webpack-marauder` 除了可以做普通web开发，也支持小程序mpvue的开发环境，详情mpvue的使用方法见：`http://mpvue.com/`\n\n```json\n\"wx-dev\": \"marax wx-dev\"\n```\n\n```\nnpm run wx-dev\n```\n\n在项目 `src` 中会创建wx目录装载基本的mpvue的初始脚本，然后会在根目录生成`wx-dist`目录，使用微信开发者工具直接调试此目录即可。\n\n### 微信小程序mpvue打包\n\n``json\n\"wx-build\": \"marax wx-build\"\n``\n\n功能同`wx-dev`，会一次性在`wx-dist`下打包好mpvue构建的小程序代码。\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"63767adadee8d4f771a970e60a2d2d6565427169","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.9.1-rc","_npmVersion":"5.6.0","_nodeVersion":"9.9.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-3PnSOiUcwgv8EvHzesgD1D1dgbqjaChWlBEFFKZjEDaaBjsZx2XVdHne4TSyZNUuBYgUmn9/3MRdMyT0T+xF+w==","shasum":"3d80d97e209376d2adb4b83454800ab8ef0ce89f","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.9.1-rc.tgz","fileCount":51,"unpackedSize":121564,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG/4k0B+x8R47UqgCT5PxlMX/Kk3kAoXq5mqf7nAfayhAiEA2vO4n8CaJ/5vx1UKcAOubvmfFLSS5J4oyZtSxs5zFMw="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.9.1-rc_1523430270869_0.28544155276354677"},"_hasShrinkwrap":false},"1.9.1-rc.1":{"name":"webpack-marauder","version":"1.9.1-rc.1","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"latest","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","sina-html-webpack-plugin":"latest","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.0","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.16","vuex":"^3.0.1","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n> 注意：本项目使用了 async/await 特性依赖 Node.js 8.0 以上\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n* [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n* [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n**注意：由于 `yarn` 无法获取自定义参数，请使用 `npm run` 运行本命令**\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n### 启动微信小程序mpvue开发环境\n\n`webpack-marauder` 除了可以做普通web开发，也支持小程序mpvue的开发环境，详情mpvue的使用方法见：`http://mpvue.com/`\n\n```json\n\"wx-dev\": \"marax wx-dev\"\n```\n\n```\nnpm run wx-dev\n```\n\n在项目 `src` 中会创建wx目录装载基本的mpvue的初始脚本，然后会在根目录生成`wx-dist`目录，使用微信开发者工具直接调试此目录即可。\n\n### 微信小程序mpvue打包\n\n``json\n\"wx-build\": \"marax wx-build\"\n``\n\n功能同`wx-dev`，会一次性在`wx-dist`下打包好mpvue构建的小程序代码。\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"4674f40c63a512b9fd79fb0f0de8275e67a48958","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.9.1-rc.1","_npmVersion":"5.6.0","_nodeVersion":"9.9.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-wLCu2wAG+3NdwEEjrQaqWlDN5GWyfwk3QG75rN6pmzN8LjJIGJlwJQA/4n33XOQrivza3lVfLMOz0Z1yejn4nw==","shasum":"292a04b8f95694f2fc6d6f26f1b6ec9c41d57361","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.9.1-rc.1.tgz","fileCount":52,"unpackedSize":123865,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD1IMC6r0pcDAxwGvCfIpuEpJKucXURepriWN/hqeilqQIgQBpmxIwr/eFe/8SZz/OmXT7d/MpuwgM/TNfN7p1yeRM="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.9.1-rc.1_1523533865815_0.976940484410715"},"_hasShrinkwrap":false},"1.9.1-0":{"name":"webpack-marauder","version":"1.9.1-0","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.2.2-rc.4","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.16","vuex":"^3.0.1","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0","sina-html-webpack-plugin":"latest","marauder-umd-loader":"latest","html-loader":"^0.5.5"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n> 注意：本项目使用了 async/await 特性依赖 Node.js 8.0 以上\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n* [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n* [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n**注意：由于 `yarn` 无法获取自定义参数，请使用 `npm run` 运行本命令**\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n### 启动微信小程序mpvue开发环境\n\n`webpack-marauder` 除了可以做普通web开发，也支持小程序mpvue的开发环境，详情mpvue的使用方法见：`http://mpvue.com/`\n\n```json\n\"wx-dev\": \"marax wx-dev\"\n```\n\n```\nnpm run wx-dev\n```\n\n在项目 `src` 中会创建wx目录装载基本的mpvue的初始脚本，然后会在根目录生成`wx-dist`目录，使用微信开发者工具直接调试此目录即可。\n\n### 微信小程序mpvue打包\n\n``json\n\"wx-build\": \"marax wx-build\"\n``\n\n功能同`wx-dev`，会一次性在`wx-dist`下打包好mpvue构建的小程序代码。\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"0762fdeb528e6ed262f4b37685ee02715bc44815","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.9.1-0","_npmVersion":"5.6.0","_nodeVersion":"8.10.0","_npmUser":{"name":"happybang","email":"franktech84@gmail.com"},"dist":{"integrity":"sha512-8eigPCFeMTxblyBIgwAIK7eAaXKRdWMz3bGFsWPDO+wKHliwFwgB6rs0qrPzT1dNIRZMnDC6kh4A4d7RVZ130w==","shasum":"a783765f8aa7423ac0b562108753ee4d662aa24e","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.9.1-0.tgz","fileCount":51,"unpackedSize":120865,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCrBSEVZyFsYrxS3AUFEQbiE0m95s3cb8dxsW+7A/gRtgIgafP18GsGI1fwvIL6U2Fi9ZNGWmAnjqkjZGAOV+YToWc="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.9.1-0_1523539866356_0.8331361271139623"},"_hasShrinkwrap":false},"1.9.2-0":{"name":"webpack-marauder","version":"1.9.2-0","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.16","vuex":"^3.0.1","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0","sina-html-webpack-plugin":"latest","marauder-umd-loader":"latest","html-loader":"^0.5.5"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n> 注意：本项目使用了 async/await 特性依赖 Node.js 8.0 以上\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n* [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n* [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n**注意：由于 `yarn` 无法获取自定义参数，请使用 `npm run` 运行本命令**\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n### 启动微信小程序mpvue开发环境\n\n`webpack-marauder` 除了可以做普通web开发，也支持小程序mpvue的开发环境，详情mpvue的使用方法见：`http://mpvue.com/`\n\n```json\n\"wx-dev\": \"marax wx-dev\"\n```\n\n```\nnpm run wx-dev\n```\n\n在项目 `src` 中会创建wx目录装载基本的mpvue的初始脚本，然后会在根目录生成`wx-dist`目录，使用微信开发者工具直接调试此目录即可。\n\n### 微信小程序mpvue打包\n\n``json\n\"wx-build\": \"marax wx-build\"\n``\n\n功能同`wx-dev`，会一次性在`wx-dist`下打包好mpvue构建的小程序代码。\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"bb436411b8f70dc2ab1f678d844925bb445f4ed1","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.9.2-0","_npmVersion":"5.6.0","_nodeVersion":"8.10.0","_npmUser":{"name":"happybang","email":"franktech84@gmail.com"},"dist":{"integrity":"sha512-v/AUyowObO1CnEsJFp1wlCsN4Pp5wYmDoTy1ChY/M+bdbtsQovbi4hgxnPhp6BWyXuggGCPVtPjm6ySuLDQNXg==","shasum":"857c35d02a32e9e4bb154bd9db6699ffd4f0cb73","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.9.2-0.tgz","fileCount":51,"unpackedSize":120860,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID034NLrWe9eeWiG5sP6BlnchBYXmD8/tnb0STAdeJ16AiEAmXCjDXIUY7dM0DnlJytLkUPNuqBK1nk6373557tDB2Y="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.9.2-0_1523540380991_0.5891507251886878"},"_hasShrinkwrap":false},"1.9.2":{"name":"webpack-marauder","version":"1.9.2","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","sina-html-webpack-plugin":"^0.0.5","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.16","vuex":"^3.0.1","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"gitHead":"1e4e6433ec8709bc2cd874d12f9c6c8c4d2495fe","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.9.2","_npmVersion":"5.6.0","_nodeVersion":"9.9.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-0OjDevm+IGsxUSDFWZT7w+mlV/bP7DHW5tbm1Oj09JUJcT3zKAemGRfnzjy0bXBc69GRYOAOdwEL7YyDJ3k16w==","shasum":"a9449409f5be911bf3f639b8036b0b5113299ddf","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.9.2.tgz","fileCount":52,"unpackedSize":123779,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCdbh10voPHxgOMRh5ww3uKCGyn8n+KlmbkpYL5b9nG1gIhAMzcPuLzFR2pl5hYlPkGeUuQqu1rrPkiMOVomt/pKmFh"}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.9.2_1523601692514_0.6276011052343013"},"_hasShrinkwrap":false},"1.9.3-0":{"name":"webpack-marauder","version":"1.9.3-0","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","sina-html-webpack-plugin":"^0.0.5","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.16","vuex":"^3.0.1","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n> 注意：本项目使用了 async/await 特性依赖 Node.js 8.0 以上\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n* [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n* [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n**注意：由于 `yarn` 无法获取自定义参数，请使用 `npm run` 运行本命令**\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n### 启动微信小程序mpvue开发环境\n\n`webpack-marauder` 除了可以做普通web开发，也支持小程序mpvue的开发环境，详情mpvue的使用方法见：`http://mpvue.com/`\n\n```json\n\"wx-dev\": \"marax wx-dev\"\n```\n\n```\nnpm run wx-dev\n```\n\n在项目 `src` 中会创建wx目录装载基本的mpvue的初始脚本，然后会在根目录生成`wx-dist`目录，使用微信开发者工具直接调试此目录即可。\n\n### 微信小程序mpvue打包\n\n``json\n\"wx-build\": \"marax wx-build\"\n``\n\n功能同`wx-dev`，会一次性在`wx-dist`下打包好mpvue构建的小程序代码。\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"dfc0e2f9b32316eb38e46560a07aa18e85e01a84","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.9.3-0","_npmVersion":"5.6.0","_nodeVersion":"8.10.0","_npmUser":{"name":"happybang","email":"franktech84@gmail.com"},"dist":{"integrity":"sha512-06zj30LJ7GsjlXHhQVaw23pAc9ZIyFpmDnsnthAVs81f+ZkYN9loVTzHscMeF9RpyaKLz/Y0BShSQjMgrvfxag==","shasum":"6b0d898cde3555dced0799ecc2256e4376a9304a","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.9.3-0.tgz","fileCount":52,"unpackedSize":124014,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa1WL1CRA9TVsSAnZWagAAioUP/0N9+EYYh6VvjzY0JJqJ\n9CByBkJMdYUlz/BVddwhOzgI+WMtvdo03j2Y0ZrWeONZwDaUQH2FeU7SEVpn\nZ5lXTAE2bZXW+k+il+tV4t3411vbY9Zs6NniwzvFnPq7dwR91xmB4ROcMKMn\nmmD74khgpKi4HnR/8EhRJsiIWjQb6bXI2yvbEDx+y2HJoN26iHpwO3sd8YdH\ndx+EJthUZ21VRnyOeqsRhtYGCbVw/K/nranpC5xG4MOwtgLp94bt5dGI1IgG\nqOZFyMrod7jJlA2UkVOa5PAAI9PnY8FyiqeEYslbEwvTXoiFWuCiK2XWQpvk\nNWTWAdwGQNoi89boIP953JIKb2ClkL96jeEuGPiC0W6guzf78NI2jLs8dWIf\nkc2AlSR+p8NWv8NBdVqPhr3q4j+B0gLGhAY+RSy39EwDX8dNTHb6mtPzG2PE\nFcuWKpzcgVhBIPYGvWRDMRzYRu0B5f1ScYUAEy7HkVpaZN+1qdDPe7to1Jgw\nk9b3fOfWkbAs+umVbcgT41qgK4i2RiTeTWiDnzIYKFPrFWaY2z5lxE3XTKOR\n68E7zs2oWQuaCd627OK8X1DKJtVcet4P1hYjksr7D3C/C0bJB5LqpJKtNmgF\nyc/ZdiTkXDhGqCH+kMNpv/APcfAcX1jkfK5G2GGL0jUcudbOFykSIGSy7fra\ndlQM\r\n=eQpr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCHjJ21/6Gq4MHJIHn9juW21n8XT87GLTaRx101/zqCqAIhAJd6jaoKm4i1wUAHWInqjcG8Buh4xUS/BdOsaELB4OOs"}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.9.3-0_1523933940112_0.6273175088777481"},"_hasShrinkwrap":false},"1.9.4":{"name":"webpack-marauder","version":"1.9.4","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","sina-html-webpack-plugin":"^0.0.5","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.16","vuex":"^3.0.1","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"gitHead":"e0bf9f82c20641a55d87f6bfcdd462810f56109d","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.9.4","_npmVersion":"5.6.0","_nodeVersion":"9.11.1","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-MMJERJS/L9FsXgmOAOH6rSGy2Cz20d3UO5p30jUElX8vZgNq/gs/FUIO/v95bf4KeV6COr/HS/BhWZ0hsu1I+w==","shasum":"8c59023e4662d43016ba4094cf1655e4d55171f1","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.9.4.tgz","fileCount":52,"unpackedSize":124469,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa1xlhCRA9TVsSAnZWagAAjooQAIfDW9LDY3Gxm5LSfrwb\nXeHDHRDAArysxpi0VrT6fEEO6CyWw0DikJXe+4umkY/DQgJByGHBP6uYap9n\nz2mUeqjDflF8Ku24UxebYaI7qgh2oSZuNiBX69mR2w5XpZ3QAfqVbnZ+MhOu\ndVa7e4C+sgu/bKgTnvXne+LQb/0aWMTkUQNrnDp+SwdJLMHjKdJQeF6yJBa2\nrOFK0LuTIoTvXZTFdNleprCSm/v7l5YJhb6tjbkCk1BOhVayzqlHf+LMvSB3\nFYn2E9C4uF1gkDAWUZ1gv+PiyGE2RhbrGBWMAFvbKZ3a1Ql4iUDGDdC4Wful\nNQOeA/pMbLaJWK/YeFRjptOhquoJkrvwIfBwleIeIViBKlELgvXdyy+8uY1e\n86CFN8HhI5Ykfbilpa36KFLuBDj2vunX4WNBbzDx7FO8MI7271oktm8w61uD\nxLPBnSq/xq0aBvolld8A+sv4/KGOdFG/3gH1+6MFaGj4lQxU0icqtYGAoJv2\nIK3euGD2n5WmHoTFRLuwa3BrfjTEDhcAnnm6oaTWT5UwKmg4RgLyTi/yKr8+\n6mBv1rZE2kMnkJ0qnyHEoVNI9cS6bkX2bUV8bDSFwQDwcceQ3dBe0hAPkKg2\nh+M18Y7L/gskTSdl4fVg/PWuNbcX0arL/xVGMxoyfP65gHgjKrdjJezTJ7TC\nZ5Q0\r\n=qVhp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAoLzsd3MDUrPC2rMyZxdx5X09GLAG4VUjTvC+7+r8CMAiEA2UNhRr3iA1fDM4OBU/lxZuyibjIBzSdGj/YtzlD5ZY4="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.9.4_1524046176287_0.20764264438903335"},"_hasShrinkwrap":false},"1.9.5":{"name":"webpack-marauder","version":"1.9.5","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","sina-html-webpack-plugin":"^0.0.5","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.16","vuex":"^3.0.1","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"gitHead":"f3ae19d0b2f9892d4b89d8dbb1cfa13a26d16e02","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.9.5","_npmVersion":"5.6.0","_nodeVersion":"9.11.1","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-qbV+c16Gng1lhcmeHYRPZ+d80Jcd109MKJXW5LVXcBpyAEzEfvfWCaM6t7462jZ+Ox1SzoWwVI3Mo/Oe8meXfQ==","shasum":"afcf23309033d0b10fd324046db0c4a90feaa6e7","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.9.5.tgz","fileCount":52,"unpackedSize":124470,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa2Ag8CRA9TVsSAnZWagAAFkkP/0BgTggIW6GLkJJdKKue\ndsunBKts94YLzi2Dufd04GshC0zslJD2Au7dbYFgHx9LZIljwKWWjgGP6r7z\nQjYOkfJPKMRGxX8gS/8F7nqVSfH3olsVufTEWkX1SJnImPTf2Eh4jGNx5jOQ\n7Rl9YEzNVh5H7kCZ1PJMXvdv+1Nnyt9vO9o1WIKeJzO4t3CMDyEJ/9818Bey\n1l1e/H7EuNILBTXxOpmiByBqcKO5sHBlqTCSMEQiq9x4aKhDJQ377Fh9xt84\ne92IXvZFw1hmkbQVBtXdUzU93A/ysuUCFMy8kImU5APMbvb9qd5J2+yoT1wh\ni0A4pE49Re9gFJaDjD2NSK9A5xTvHNs+vNOwiG46N7ebTYzH+tspqUgH4+aU\niIBA2OUL1qaZS7LYyo/HKj2H4jjN3k91bPOevXhKbQaIkptutCuQ6gccf2TV\n2CGq1gPPZkIel4/qJtuX+JyHSWO+4XHB0aWjPO/Z3glOXYEWNEpYW37Nmsth\nVFuSi4d+N28zz36SCvw2WAkYN/cGjaASAYEwfxkRmG6pW/sCbh6APON6y941\nVsEog684uvXF7Tf2Qclio3C7pCFRZuOEMbWVT1h+NqmYA3/9Kwp3bK7/AOoV\n0t3qJUgtBSg0MZ55eIhNHiVQamqutNI07139xCAx4e1q1qe4EUQHZDztXg6J\njlFw\r\n=p2Do\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC9vmMCWpHtKqS727zxSh1vnYs0imjRmAtErpjEo4ICEwIgHOOdVI70mHsTj02SZQvKqzYjoewlk4H2nQ1nS3AZJ3s="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.9.5_1524107324139_0.6706347285851986"},"_hasShrinkwrap":false},"1.9.6":{"name":"webpack-marauder","version":"1.9.6","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","sina-html-webpack-plugin":"^0.0.5","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.16","vuex":"^3.0.1","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"gitHead":"a3455024ac4cbec425e3572fab0d376031189923","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.9.6","_npmVersion":"5.6.0","_nodeVersion":"9.11.1","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-2ndM/MMUhXv180xSvG2C9lOTRm2jtkjNZGn6r9VzfWYPQwoR/oeBSEfcMQqd5QKQNWaXUXQFeQAQF2OIU4Yjbg==","shasum":"0cac46d910a8bb5112ba807b58232f7b23fbc2f6","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.9.6.tgz","fileCount":52,"unpackedSize":124470,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa2AucCRA9TVsSAnZWagAAp3YQAIDFI74Er5Qo2QezaEPx\nau/MNQp7FBEkgVsphf2QWckoYPv4ja9vzJLhrblcuqyRv2G0M7vSp01RGGB4\nntuiXEcjBhn+LrDEtQqkDUw13sGAOvLz+HpLbpxg3kQEuLTTAJyKQz9jhrWw\n/HcQWXukB56Ussm2CeJg4bVqvjGkQrPqWI/8ljJWTAQETtjh7NgCk426W2wk\nV1HCsBC9O8vFVZm7ia+enaQ08MMgpmmB3mPv7zLQfFurqxct+14dqIgfUTQY\nZ9TnlypMIg014p0E1Ul4h/4/UZU9DdBuBahCAogtu5PIEjwLbVixmec/OIwI\n87BSxh/xixC2HE1EVNtlr9eEkeDWPHJ/QUlpvpPdXc7tGfElIO7w3GpyVZzW\nFdAqD5KZqcXLwe3tNw5AFTe1lyWdY9j4G4GHwoPUo0ROBWVbc9apC0P2qvX5\n+sunFRer1QKeI7MV28g9aM19zTbhG5tPuflErQ7eW7/Xn3T77jEhWc33ymg3\nLvR7n8YhgCJYhgVb96EVYYCxUsR1gqsRWcaKWSae7HECcUxzok7+GqF8Nz+t\nIWY1vMcs1NorpNaU0Il8w5P+Ytb8DrLS+eUyms0KxfKnrx0P9nIA8iD9FfNU\nkkaZmdX2d76mCVeFPeG57RwAAY5Gmt2s8kcBjzBtt0pZovRH7pS9iTM62kIP\nFDQ1\r\n=SGee\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFCeuzH4X3HkjQrOEht6XYyUlRJadeyrRjKDomToeK+CAiEAuRWpDwv+vkPbE8LbNNyWQ/qAidJ6db5jFaOgUJm8kpY="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.9.6_1524108187272_0.914136914652671"},"_hasShrinkwrap":false},"1.10.0":{"name":"webpack-marauder","version":"1.10.0","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","sina-html-webpack-plugin":"^0.0.5","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.16","vuex":"^3.0.1","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"gitHead":"c36b5fdc102c9a256f43cc1be14d33964a151874","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.10.0","_npmVersion":"5.6.0","_nodeVersion":"9.11.1","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-gIf18GGxtFyO1HSPRztK1leMXJG8wXyIVaSaHWaLaeMlJXjwSq/4fR6OoZJ92lQqVR5tEairaMa9mjXoAzW73w==","shasum":"6ac194edb35d22565fa790873697bb86bd364970","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.10.0.tgz","fileCount":54,"unpackedSize":126941,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa3yvQCRA9TVsSAnZWagAAF4UP/iod8AgQy0nDCvTaa3x5\nh7jLAcM6v1KZV5ifYBR+6za/7I1+pC0A6o/KTwrf5bKxTpbdCXsA1BPUmJA8\nPUyXSonV1giG7jHxZRCbkwoiwIgghKyDdhPHAkaCocpaTmozPDZUxdXutaET\nv+MHaTu8nlHNboXENBls/12ZAHulcXPOXIyfTAPqpiS+6rQ4w4PLT0BlA2EJ\nUbL0ZfqVwHiiDtFiBjkuJ7Ba+YjeaR2rtdi5oLE0woJLRMp7uRgkDZUFQRNz\nxzhkzj+SiY/VDl6cade5sEylINItWzedvhGf/HPFGLRu8jSuT25zD/PYyAZ1\nLimmTLmyUNXKzVHZ1uL7t8gvQws8fpRTi0Pa+OKKnuQzOrit6Zm7WYgCm65w\nS/iObv4xQ92eUote0TfDu/JNyuSnfY47bXSv+zJScf1nlw+pQdRwWgZ89qUn\nZqQ8fSonFC3YjqxVXNxGUCYIAd9qdDyOR3J4GkAHgD/otleGjiAG9IVs2+qy\nmbtRIUgt7NR2go3jwlQrdvY59GJNEHXb+44M3NkbR71pU73XjsRAKQvVxmUf\nNsB/isb/aQgGNTQ0PhBKupZidWW4osNFB5XZWxBYPc09m54rotNGacSiEymw\nWakBQfmXZny41Aj8QSkeJEl51oafTpeduyR9lawkrBNKIqiZp93hpyBBC08h\nz4Dh\r\n=ULOg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHPxOpg9X4Yf9VZmyZBAM5XOi/hnf5Zx74P7xAFyqpEhAiAwUEXsqzQXd+Oc2vhl5bcWxGO2iWcfC91ANfHlIVXqzg=="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.10.0_1524575182693_0.8957376906180967"},"_hasShrinkwrap":false},"1.10.1":{"name":"webpack-marauder","version":"1.10.1","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","sina-html-webpack-plugin":"^0.0.5","sinamfe-marauder-debug":"^1.0.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.16","vuex":"^3.0.1","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"gitHead":"a8b23e0381b539bed208b0543ae5fdf3957deba6","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.10.1","_npmVersion":"5.6.0","_nodeVersion":"9.11.1","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-LcaL+HFID+UH6T9VoYFbp++oY7cOUqqAG18HR255HK3zyo8qMnlEMbU+7xO0tpBaDLjAaeJuu3IUYVsdzxCKWw==","shasum":"8fcd9dd73fdc0bf2b5009596d2eb3f92453fce0c","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.10.1.tgz","fileCount":54,"unpackedSize":126923,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa4bplCRA9TVsSAnZWagAAdLEP/1STBvDOermZUzGEXotb\ntWX+2omkR+OWzPen0ODXrEhfi/mj4GKN8tAJW918Bhd2cA94oIJKSUlfqu0L\nEbMyWwdgBNQ14CEB4tqUOqxUhYfkiXf8d20QF9K7vO7uX1+nCZUxe8JLuMeu\nfsFw0LwfZpxhlaXgZEeENfEJasPd4StzMz1/ehNV8lRw3/LzWzIBElcL1h1N\nbIb3cstP2lDHyJfbZ5GQkMTBlXRXdry51kJK/pKL4k80zAVIRJHJbl2/MYwW\nQOLPLKvd9BmWm7Dads+bEIg5lnGgEeGq20UMvyFJQzfcXmLWajDyTfP5KzTW\n4MCFvTi8PxziX78+3viMLfhkCLn02yLXW0+QpeKhu8RqMh259rbrF429tO9F\n+QJ4Trd3PIil8mjF9juYmn/gG6Wjiyg4E3CnCh+bvVvkLRTqn8/pTx1A8pJe\nNLEjlTxzF8DdRmPRhZgzJALXkIyaN6MD2SSSe2EsSaHtupYBqI5dNsPOHG1+\n5RtN3G1ky6Rig5nUw9sVKcAWKIs/fPOSbHkxHCzU9kw5aMUkptlQoQ4g42zn\nMcFiiZZaEpyJtMxK8hkl8asIVqy+Hokdt5+U1ZCBVXyK95cLl5jZRApt2/VI\n06krY5vmLLurKVkdgBQP5i1veV5BKfPPbnLKj1TEPkIxoHnJFrzJ6M1g8A2a\n9cJr\r\n=dAl4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDWFn8qQnNQqGIRhadBN/hKn3D3HumR+0tkDxEi/dvSmwIgChRwgFP/5S4YGIeFbpCtxLkWN0O370g77Ko0mSkfzUk="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.10.1_1524742755711_0.6866817832929184"},"_hasShrinkwrap":false},"1.10.2":{"name":"webpack-marauder","version":"1.10.2","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","sina-html-webpack-plugin":"^0.0.5","sinamfe-marauder-debug":"^1.0.1","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.16","vuex":"^3.0.1","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"gitHead":"a7464d9c05f44f38c89667887737ca9fae8662d0","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.10.2","_npmVersion":"5.6.0","_nodeVersion":"8.10.0","_npmUser":{"name":"happybang","email":"franktech84@gmail.com"},"dist":{"integrity":"sha512-+IDTUtJ+2ywZvxFIFwPqUSKm/mDh90jlSMvqOz+5iJ3U+60jLd5x2gOcgKRrJ05v4YP3YXWfvH7TLzMs+BuckA==","shasum":"bf26d74c2b9dd84d9762465fa5b695b31315b3b5","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.10.2.tgz","fileCount":54,"unpackedSize":127072,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa7F7wCRA9TVsSAnZWagAAqVMP/3D0GHRlNmuCfmEEQEl+\nrAeVBxCS8+sDfueH+gDjysPq8YrNk2MYrSEsZ4FCYl7WV+15mvt7AwTVtde/\nBNhPWVxBq7YxuHIbjwt4PZYOQ7ybL39Ip0SRT4c4U+zkY06EavR30PPC16uI\nsFw+PyXIsPQ1vMpAOkvqCrAzwLPF7CQv8tfWw2oL/0qAXCk1kJetm4u0bwka\nHqSgi3enZqg+R2n5OoMDJDxsSlfeTEaAff87QI/zUjB50tYKvKD+uW4JQ9pQ\nZyZMxjTXQEVwKfcWLmPrzuEPk4jfIzNvSKJjXxGP2sa+8jnSFjwAAM7HNlle\npxmfF9xuqZN6S17nDgRTo/dngvTSxpXFISpSwd242iRMe1ecuE5vkFfE7XOU\nxpA3mfHGE45Cls4HDi6MEsNZ6engFpcmB4dxC9y2VKn3BlYdYjeHtoymTG4h\nTsn6NmRClXrc25slxtQpzrJHWn34QOoyE57kr/Wrj5CJlxvwFvC4yDWTcZwg\nHS1BVIe4jqnRA19dz1ZFLJPHZkf+BQDsQ48MMUBbdBX97pKj6fl1YaEaSwdf\ngbCD/G3wc2oHuAwmDlfVTgS7OxOPVSdJVi0hSlGaYHcardxYpEBJBs0B+QrZ\nX1JBaN/Sincu7wVWQ2ZmZBS50osp+2+ehMCQhBW+V3ZGrGLQafy2+izH0tLi\nMHU/\r\n=P27i\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDY12+TTsDWBA1nOZtBf8nPnt0M0actQrMJXr6KFXgvFQIgErtBrRwT/zLafVrR+m2espApS9FgXFQ3WZviQq7rN8U="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.10.2_1525440238511_0.17179553945214066"},"_hasShrinkwrap":false},"1.10.3":{"name":"webpack-marauder","version":"1.10.3","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","sina-html-webpack-plugin":"^0.0.5","sinamfe-marauder-debug":"^1.0.1","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.16","vuex":"^3.0.1","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"gitHead":"fa998ec41a352b3a2de093f98721a438d6373eb5","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.10.3","_npmVersion":"5.6.0","_nodeVersion":"8.10.0","_npmUser":{"name":"happybang","email":"franktech84@gmail.com"},"dist":{"integrity":"sha512-W1qHhpjTM0rZlVr/D4tsbLmckHxEoyhMCMbWk1t1GdzSviukypRX/z41MGaOClOs4PSyO3I3lzQWxEMwTFoDIg==","shasum":"19d3ffc5a1750effa6d57eee333eab720ab0a8ea","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.10.3.tgz","fileCount":54,"unpackedSize":127098,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa7F/FCRA9TVsSAnZWagAAvpUP/1BEm+fL/+tEKLOut4+T\nq5sTIDcus/RI96GmvLqyO19G3+z2qJBkLdGqVmmAi80FIxcfZsOB547vjWWl\nFkgHuU/eVNzmvy1Eg9YtXY4M/m/7Tl9lspq38S+pniW39UjPNYWtOzTY2DP2\nLjdzwfYIdxPXVgA4+kqZ3k+/WCR8t2nTkJ3lSW92BIMuMDriLxAtZ6sS+dq0\ngBjqFMwQ/6kw0T6rA3YaRS90sxu01sKm0+rtKjunlsoOGkd7zgPW0uNzMy86\nUs6eNmQvyL4XbtcuJsa+z9MfcIaTiXtGmm3qnPHsC+2uTzPx0xfN5p+zjkEq\nXB5mejsSmz8ny7L5IF/XzGUqg9bAzClCLVaxgKUiok4es3S19EpV106yu5Mu\nWXZ+s6FWgxHYK7QkEU0nwwp/e8d305QGw2RRa4XIynWYHyYLZO3x8oBphy6S\nXKCcRbCp7JJs7zhghGLZxXo9gAeFaK1ukpdiu2gAa8B/Knosmp14tI5MhGUW\n341ZAWWHRGpsZVU67KCojM1YfsgoupiCbe/7JkoKb7qtRaEIxBjkFqxrhEK+\nf8mze8Aye6O0DIE2wfz7Gp56dU0InHtD2q2JrIn+FAL/xCNIAffIjsdGZDBF\nD44p1i4HgcjmIMBWK3g0rztuZH/09WCSIzhCUXPrfrUxNEnNJJaMVJpiuvt8\ngof9\r\n=u6uw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD5ub0JvOEG2gILSrKvB7/bGiuEWawO+fGaPozQ3sNyIQIhAJ+OBRSjPb5p7KC6dk9j31nSJ/tJmlUYzzfvrPXQ01TJ"}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.10.3_1525440452519_0.8299992258940985"},"_hasShrinkwrap":false},"1.10.4":{"name":"webpack-marauder","version":"1.10.4","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","sina-html-webpack-plugin":"^0.0.7","sinamfe-marauder-debug":"^1.0.1","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.16","vuex":"^3.0.1","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"gitHead":"3a08e4a47b08e7c7057694a38da781b4089d9b13","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.10.4","_npmVersion":"5.6.0","_nodeVersion":"8.10.0","_npmUser":{"name":"happybang","email":"franktech84@gmail.com"},"dist":{"integrity":"sha512-0HEzwbrxCS+JmBng8FFP4Vz5bR5ZZiDC3rqHj81byoBjHgY5l6BhQeK+Q8EV4D9VmEZ49qfdpOXJW5nrsjTgSA==","shasum":"3b7e60b17b427e07ebb1b93e1282240232128c3a","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.10.4.tgz","fileCount":54,"unpackedSize":127098,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa7GPICRA9TVsSAnZWagAAgw8P/A6V7qI5tzJ+FYSwL1ue\nHTYnmir5NJXubz4oO1AHZFSMHJekunJlicAlWTEJQhGh76aZB7JuN/bl6ikY\nCNhTJSBMcYMiyc62vecXSzMFdtUMc309WX30gVJH1h/BOeWJnf17vw5+MFo/\nOo1S+hppbeYFRr0/RtcKi92QlmYK0reEU0+jgvKZux0r9tSBJXSdI4F5cYop\nAmiNS4O7kFBzQLCWCb1gnlASUyQXP5oQtn/g+FDNT1VxqGmlxHNUNUfmH3ma\nKZ0wq5jJN4lSu6/MlsnKl7jC7MfUHXkHkekYru5NEPBaqkBWwhVGxg3o+Smd\nvwdvNB+GP2HeEAjD66DVJ+B9ryDEzu1t3vcTaRlzhTSrb/kKD33snp+kaMFp\nkeInvS/SFGn3/KLm2m7BQqfyBDS62h7PlbuIGdshxpjawEPVkz8ys8smbUiQ\nJHeC858U6lU3zlwHZWDZncnHAFigmFohNqxTRiJHj6rK5shX8PKesZYLmcm2\naUaQMKLdU2tGAsyBvSRHLbZMaLoELyQuMMse6f834TJtnlnWWsCQ7rVMLRpb\nS8TgO9ebD78eKsj1DICrlW7bDkg7A48AqFZD1ohBr6rB4FgMzEL0qRRA0JEk\nM/BDjjeQZ33C+/r30PYST3BYWZba67OPGcRy4cnZWLlDKPDiooCLdZuxXBgJ\nhQ18\r\n=4etU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC5pYnyCyPB/MkVb6JqnVeaJJh6H3gpn0WZq3uc9lMJlAIhALNCZNR21COo40ykhh0y6hqgo1VUQxnbVAQwriC73Zp5"}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.10.4_1525441479978_0.9310098701887408"},"_hasShrinkwrap":false},"1.10.5-0":{"name":"webpack-marauder","version":"1.10.5-0","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","sina-html-webpack-plugin":"^0.0.7","sinamfe-marauder-debug":"^1.0.1","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.16","vuex":"^3.0.1","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n> 注意：本项目使用了 async/await 特性依赖 Node.js 8.0 以上\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n* [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n* [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n**注意：由于 `yarn` 无法获取自定义参数，请使用 `npm run` 运行本命令**\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n### 启动微信小程序mpvue开发环境\n\n`webpack-marauder` 除了可以做普通web开发，也支持小程序mpvue的开发环境，详情mpvue的使用方法见：`http://mpvue.com/`\n\n```json\n\"wx-dev\": \"marax wx-dev\"\n```\n\n```\nnpm run wx-dev\n```\n\n在项目 `src` 中会创建wx目录装载基本的mpvue的初始脚本，然后会在根目录生成`wx-dist`目录，使用微信开发者工具直接调试此目录即可。\n\n### 微信小程序mpvue打包\n\n``json\n\"wx-build\": \"marax wx-build\"\n``\n\n功能同`wx-dev`，会一次性在`wx-dist`下打包好mpvue构建的小程序代码。\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"d474e945fd21ab6b28d98971be722fa4d5c331f6","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.10.5-0","_npmVersion":"6.0.1","_nodeVersion":"8.10.0","_npmUser":{"name":"happybang","email":"franktech84@gmail.com"},"dist":{"integrity":"sha512-j2cXqFlzajsNKR/xYVLYf51uJHmISBULLjJeBIBU15fuRrrwVuSeVJoDMcFgvFIdRd1Av5ion5jWX6NXkQ0yRQ==","shasum":"aec282cea7cb63df93fac0eff8750443d038a002","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.10.5-0.tgz","fileCount":54,"unpackedSize":127192,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbBWydCRA9TVsSAnZWagAAlssP/3pHlIRKgAu7gL3slSfB\nse+ki0dqsprNj35LhGug/TLkCBTA+AV1NqhhSVyEZokXCDqMXarLAM2Cy/VN\ng7mrFNKGiUm1oDPOJysguDJ3ASBfTT2X3b+dCtZiq9iYJovMP4qLpGNpJ+oJ\n8rzK92UB7f7xwfz2gZFuc1RD01B7me4Rekn+/Yzg/gLoWdpLe+0XRCAfbDgG\nkqQu8324dCRCsXx8Ztcpg963j1x9dT6hczFvEll74XQkBEc9tHpBBWJdDBmP\nZTGd1dpb+Q4PWIsUjWaInAQMaZ6rX43Zv6EZ9QZyDnTzwXt1d0F6Elo3yYC4\nNfzAJviaZ4wDbEyKZtxootkIvaFH0EqgjMM0LsVutzQ0IonS7HfkllM0jo8M\nu2KXk4uGmuRxN9c1Gc9MrekNOxafkTW4LyxU5mm5mfTGn8CQij4vh48O4rOm\nNwdh6ZCLfaXsYbzlQyicdZIaMAFovy6liS6VfBmal9Z9/XV0immWQOySUS0n\nYXMkwUURm2XTNKN8s9D2zNnzqBgt381aO3ERrr8LD4hBD9FZvPuDsu2i04v0\nGkLjdI8BcA6mn5evPcD3bIUlw5bhYdkEZMAN2S+9xfOeLLQLtL9ujNY9UoCK\nUFEZhv0XKipWhD7sMygSLNXQQuR4/8JsiN1w5yDd2qTqGQlO3w+uGt8OgAGr\nrxYC\r\n=eYRN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHMBvp8Do3fT+Ss4IlYzaRKGVPnnrFufIHoj/TWn6reSAiBBsFJo4/1W7/4tfm+MQAAmqoNIh/N2Wd6wkbdNDiKYJA=="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.10.5-0_1527082140597_0.32018836224552105"},"_hasShrinkwrap":false},"1.10.5":{"name":"webpack-marauder","version":"1.10.5","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","sina-html-webpack-plugin":"^0.0.7","sinamfe-marauder-debug":"^1.0.1","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.16","vuex":"^3.0.1","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"gitHead":"ab49439a0a9b5cf4dce044277fa8de4f9488d3f9","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.10.5","_npmVersion":"6.0.1","_nodeVersion":"8.10.0","_npmUser":{"name":"happybang","email":"franktech84@gmail.com"},"dist":{"integrity":"sha512-EyTerNtejs/xvGxo69bRDhGOUHKtWJDbQ9UpOBN1ZaT9ckDv3vLuPmONT/P55P+8NTYrWt4hXaqFQbG2b9yMrg==","shasum":"29f35ba1b7f245b3ce8b8daf7505a935fd08b390","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.10.5.tgz","fileCount":54,"unpackedSize":127200,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbBXatCRA9TVsSAnZWagAAnXAP/i+gVFpaPDTyFCKElBXy\nRS448eLjpuM3yUYuGek0E2ZCEVnR/xcSYee+gG+jr/zPO3ivKM42VlIl++aT\neGfIRuHBOXOEoCRU0picLqUvhKitxbRMKJ3T+fCbSYgZ/j/8ZBBKdswA0FSD\nWNeC53C+UNXJze7x3q30UyGh0BczIcKGcUtAa8pFMyDfAs10IJy7bvE1M/U/\nxIuIEgabHOHd0TNgXL0f1cW0mRkn9daqB4MdF/tviEG3TgKZOxP6OVeU3qYV\ngtM6B3BQSToQN49whlPADTQqNK0FGpQ0CXfuPp+1JZM8AoK8ALJ8xboQo0IF\nCnXASJ4Nn//e2b7sA0jv4bIFjWBL3c025qxAomUhPW/iGrRis5JYwL9E7bwE\nV/eSsoTYGi7UifvOn9JT/8c+6qaynoFB6X1qy7c/fLzqJ/etteCff2Q7E24m\nSo5+IOQPlyUIid4JxKiCwX1RcHuLB3/arUGSZ4JtAhr5fSBOdAxcaG67BEP8\n6Ib5h5IcUnwbNHsLKGhaqNwTNZ8RxsAh1vOA1rNhOC1TaMCxQz80pc8cSm2w\nTi06XkBkanjHv70e41qKFgSF0ZYiN/mufg3THV640MrwC2vhsDTWoatwoeud\nvSHw2SZuJ0GMXxqcgbCFYwAFe/ts1t68Lk70M+3Azjvl2Uirvrr49QDWu15A\nLZ0H\r\n=Wcpq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICotDeWApc/sysgc85J/+Q/yj9AkbCe0/KBiac8upyeHAiA395GQL4xjUFzhhiSQDyHSrqTQZ4j7+iyBT5h5u3YU4w=="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.10.5_1527084716732_0.41764834427956443"},"_hasShrinkwrap":false},"1.10.7-0":{"name":"webpack-marauder","version":"1.10.7-0","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","sina-html-webpack-plugin":"^0.0.7","sinamfe-marauder-debug":"^1.0.1","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.16","vuex":"^3.0.1","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n> 注意：本项目使用了 async/await 特性依赖 Node.js 8.0 以上\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n* [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n* [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n**注意：由于 `yarn` 无法获取自定义参数，请使用 `npm run` 运行本命令**\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n### 启动微信小程序mpvue开发环境\n\n`webpack-marauder` 除了可以做普通web开发，也支持小程序mpvue的开发环境，详情mpvue的使用方法见：`http://mpvue.com/`\n\n```json\n\"wx-dev\": \"marax wx-dev\"\n```\n\n```\nnpm run wx-dev\n```\n\n在项目 `src` 中会创建wx目录装载基本的mpvue的初始脚本，然后会在根目录生成`wx-dist`目录，使用微信开发者工具直接调试此目录即可。\n\n### 微信小程序mpvue打包\n\n``json\n\"wx-build\": \"marax wx-build\"\n``\n\n功能同`wx-dev`，会一次性在`wx-dist`下打包好mpvue构建的小程序代码。\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"d235111ab4f4b82ae8f15cff0b7ddcb7f5e2c29a","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.10.7-0","_npmVersion":"6.0.1","_nodeVersion":"8.10.0","_npmUser":{"name":"happybang","email":"franktech84@gmail.com"},"dist":{"integrity":"sha512-eh9ZKnpIaQdPOdp7hjlW+6U4RkE3TkuhGuZcv0/0ULp/aMIH2NAvQddeXKQLa67XNdrP2bnxXiLuRT/045T8nw==","shasum":"18cc0be29d3d71e661f77486280e42eb637f43eb","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.10.7-0.tgz","fileCount":54,"unpackedSize":127247,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbBjmSCRA9TVsSAnZWagAA+J8P/1AA0Kd2s+8h3TqXJ+cV\n9D7NA2XkBuJecoMX+WSCi2Fs7c29WXV7nh5VTajYul6KDSpLE/tKahgRIxad\ngufG2YByPmYYMzPqgBuA+p4xsjirnqTjPWVpX51FzoQe5jan6Lxg0CAbFlXU\n85aVbDQgnwjvFCMcmlgdoGL3/dCmgLycS19wd4DHlrsJnaMQy6bgZI04hB+h\nLmPTcqP4u6lCtxO2m+Bvz6uPjnMywD+xiFVXtR07IrXbEoKSuO7+908bntLi\nyIWthtrgz9FIgZ6NEP1S6iYSk4nfngD8+w+SDaarsXSfeiz/PGfzYWdSloXw\nkjybdn+SmgvAS3L5NkD5B8hLu5D0mF7LHWR4P+5L2l/Ntp+HO4/K34vrw6X/\nQSAlSuIwFsIpv3OO5mooO+IDnNO699bvt0ELdpsWti6M3j4fEF+IGW+e1svg\nEXdVkdfryM28hPhzaV6Hb6einQeU+oA7CmSRI37RBWKb3yxb2bWVCKi4eHXY\nhgFMANMnmaFBg9DOmm+kv7Mn1CJndxRJZTiNx6OTNFG6916d6j0trwV980VY\nCty238J9QUJ4XaYg5YVvkyAbk5OocXr5a56fMlYE/KvDQ8pPWSHc+ZtZvMg0\nK2Zg65jUJBQQDXtDXTFW5J5V4XJCLQLFq83oj1Y+2Zcb3f9u1qsWW0j1HAwp\nTJuu\r\n=W9Iu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDQKOWcvWTI4c9yt7zPWlizieqGXnqHWmhEadCwX6ZQDAiEAsYgYbmcJAcXrDa9uD1yyqOtZynbZlde1eSVI898466k="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.10.7-0_1527134609880_0.5053221736602558"},"_hasShrinkwrap":false},"1.10.7":{"name":"webpack-marauder","version":"1.10.7","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","sina-html-webpack-plugin":"^0.0.7","sinamfe-marauder-debug":"^1.0.1","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^0.0.5","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.16","vuex":"^3.0.1","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"gitHead":"e4c2ff56ec9809c2211d47a03d09d856c0b31cf8","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.10.7","_npmVersion":"6.0.1","_nodeVersion":"8.10.0","_npmUser":{"name":"happybang","email":"franktech84@gmail.com"},"dist":{"integrity":"sha512-gKSoYb9YanvOnmtUPpk7H2TvXY/8uZYbtKmQIIpqdOqUkiVsTyLDTB+lNIjh11LtqYU3+wTGnFU8GV2+Zo+9xw==","shasum":"1861e5f75baaa63d349cc109eae4d4f93bf35b03","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.10.7.tgz","fileCount":54,"unpackedSize":127245,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbBjoPCRA9TVsSAnZWagAAGgkP/1Cb92qJJ5p+3QAB/9eT\nYRKkZSpwgnCX0Xgiq15Z7krh7sXBuwTf/+r1QjFCuq4rzWP95HJzpMgQI3UX\nELKDvwRaWYZRGzzYWKanJW+BYdlABaQaHBwb69FRDCzcDC/7hBtx0hs8UC+Z\nrgotrOng6fdDK+ToahhvuStcpkfOdjjmR9qQnqj2KCu1K4dwt3kyIivaeezg\n3YIsLuCVIYKZwFPzqWlyNFH/aKh9ZksoMqNngOK4DudYelv4qlBP6QYEc6I1\n1ntKz2esIkDNN6I9BfkwpZlpuljESz1Trf7eX7hCJzcsL6OSscYqs2reJpVf\nGjPq8ZPxRRJZ2AulceTd5ZZVUzfRqEbDpFCNArzkdWGy+nJE7e7WkgZn2MIY\nK6fNh5cOHddqZSuzd3PGMOZKTautxSlMplEN7JKRb2aajrIzwDQ5Elbphg9H\n2YrNG9oYKYDt+A+hEAWsgyOLbP5iId+d9sFQbLNOGfjN0RtF/sbLe0tCqOdI\n1yXvY+V8qMrWuqSjIbxkn7+lfwcTZfAgXqSgY2QKiydCrTMmPZHCp7C1y7si\ngaRI/RP8LC73RQQQtb7YuUfHub7LUVste5W9a34mJF7cmSXTX3soti64GWaN\nacGxC9F57T3zf6jb7k5o4NCR9JAfQzRq+s2r4b8H17tenoYh8xVKeOn717yw\nSe2D\r\n=v/Xz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCcrzn4yy2z4uW8YjDJ+xeAaZcTe83SoGWLJSxrjSvIpgIhAJr8qsqMdpMq+NDN2uM0X4eGhmBUOHVG/61iXoc3M9Jc"}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.10.7_1527134734027_0.7802276672910147"},"_hasShrinkwrap":false},"1.10.8":{"name":"webpack-marauder","version":"1.10.8","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.2","eslint-config-standard":"^10.2.1","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","eslint-plugin-import":"^2.8.0","eslint-plugin-node":"^5.2.1","eslint-plugin-promise":"^3.6.0","eslint-plugin-react":"^7.5.1","eslint-plugin-standard":"^3.0.1","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","sina-html-webpack-plugin":"^0.0.7","sinamfe-marauder-debug":"^1.0.1","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^1.0.0","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.16","vuex":"^3.0.1","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"gitHead":"e4c2ff56ec9809c2211d47a03d09d856c0b31cf8","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.10.8","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"flypie2","email":"1037028848@qq.com"},"dist":{"integrity":"sha512-X1ldU9X1XoT40k2Bz+/t+qhitSHqkshlYa5/qcuwiWZWRudlMwD3DB4+TUS8GQJnOl9sVGKprne5ttTtdy71SA==","shasum":"2ac5c03b1a0409ce5fab919bf8a7a45240790d06","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.10.8.tgz","fileCount":54,"unpackedSize":127245,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbGnB1CRA9TVsSAnZWagAA0g0QAJD5J6t/lAvCSP2px9zy\nCCJgLzsgB9VgLo+cK3vngSoxcTu8eiWziPcE/NMjyyS/7E9xOT1NVZMWO9sr\nQLJSrkY7KDVaaO97NwMOoTdMVhJRtUqGny0ERB18aWRMe/eHIwtbvtDp7IzN\nPt8E6a2D7jFPc5Vb7OXUF+6ndRnVNgsJaS/HEvDX3Ha6VOhU6GtbFadkvSyP\ndVc/jqUPR+kCQPFknY3X3ZDDIlMUKVSIwvO3elFg7NaPnVF8dLNhVrqkXU/h\n5xf/qiGtOGatL7Qs0M0P9lPGq5sbbX+7SzTdO8YREjSkOeaXdUiKshCN1ZbX\n0QFn1JNrXdRWWtdPMYj5b0F6x6qUaZUWweQ+11NNN9kkqTi4MRBC5fh+utpt\nhaLQU9qSyGveEi/OxGfe6nM+oNloSpFPMw3zIAMPzZ5c+sySVZSwFf6Jrnzt\ni7mBnxx2WuGmlMTKSvaSXPrItqqUIzxXExmdsjIGEm2lry/CAXZ9crW0r8U3\nCxH0KCAcXyxvAnQVnHe59bXr1xeDH3dFff8ZRYUgsBYJ9tmYBddXHnXDph7t\nXMXeJmiCBJEu5vrXjUPEd05PmG3s3GMdQg55BDvBkdNtFBL4TArZmZt/meP/\nW/0qkpDyn83F9pMKJ7j9oTFUbVJ8laoJfthUTII8Tj3c1qUq6TkCOxo/mgmf\nTJ+w\r\n=8mJc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDD7dTljQfA0mg/wvpkakW1xADLfJtgD8YknL3GoeI1EAiEAjBRRvV4rLfZJZ1hSpeKO6lphGDMKu4zfyoiaNtMHREM="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.10.8_1528459379002_0.45001785401377714"},"_hasShrinkwrap":false},"1.10.9-0":{"name":"webpack-marauder","version":"1.10.9-0","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"acorn":"^5.5.3","art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","sina-html-webpack-plugin":"^0.0.7","sinamfe-marauder-debug":"^1.0.1","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^1.0.0","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.16","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0","prerender-html-plugin":"0.0.33"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n> 注意：本项目使用了 async/await 特性依赖 Node.js 8.0 以上\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n* [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n* [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n**注意：由于 `yarn` 无法获取自定义参数，请使用 `npm run` 运行本命令**\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n### 启动微信小程序mpvue开发环境\n\n`webpack-marauder` 除了可以做普通web开发，也支持小程序mpvue的开发环境，详情mpvue的使用方法见：`http://mpvue.com/`\n\n```json\n\"wx-dev\": \"marax wx-dev\"\n```\n\n```\nnpm run wx-dev\n```\n\n在项目 `src` 中会创建wx目录装载基本的mpvue的初始脚本，然后会在根目录生成`wx-dist`目录，使用微信开发者工具直接调试此目录即可。\n\n### 微信小程序mpvue打包\n\n``json\n\"wx-build\": \"marax wx-build\"\n``\n\n功能同`wx-dev`，会一次性在`wx-dist`下打包好mpvue构建的小程序代码。\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"3bd5f0b2508e04ae5be71b84699e242ffb43dec2","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.10.9-0","_npmVersion":"5.6.0","_nodeVersion":"10.2.0","_npmUser":{"name":"happybang","email":"franktech84@gmail.com"},"dist":{"integrity":"sha512-dBn/D0mM4RisqhLLGWCQsX0LOzhYIzMobOGoallVXttd78MYg1wgp5IAGq6mqD4Lv+wCj+ZVqsPPj+MdArfgvQ==","shasum":"1b2ba35cbdfd9b0d9db80d2847545ad32acced69","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.10.9-0.tgz","fileCount":55,"unpackedSize":128853,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbWYFbCRA9TVsSAnZWagAA0BIQAJVeF5FFrAJ8ZSzeVtHf\ngrqDqyxfCIDPJb098yRAidqeO+NsA2mo0YCJMjTBEGV8JiQ8m1ZWEG8dqyLQ\n8EPEMsZNC2fDB7dt+n6YEVxwZN+7CvTa7eAP4owjULQV+TCarG3wh8TJWOyW\n9lUVlVWJOVhsQmV9+RQ0U8iVT+gB2l8mEcJBWsm1RCHWZcIHR/x6xfb5mWCK\nCqEPNhB/cVXLhvB44/IH1o7yfUvuUkCPm7rBjtPfCZjmGeaouyYCXJSuOAUF\nMiLarIPTm+dGurgpuyDdvk0HXOX3xSGJ26fNX6KmqJUAuFgZwbnLVvFsOygG\n6tPWD+kwoOqR7aAHmtpIGnYnFyCIWqbtW4acCsI3s5R5bB5S10LArpCrcCO4\n/TESlq0cjt+0n4x3kwAIxjWtUlvBI7ZhZOok5B7tWL3DV54JAGdxNJX4qxKT\nLsXKUXhMTq8S4sxO3Dbk4GOhrLo/r1wi4TK4g2q6CJTJiyXIHe1M4ZNyhrUH\nx49WPhFCBygPj3QWeMj2nL6EoBdrfuOA/Kg2Ls3GE7cRGD/ClGoDEQrKE3Up\n5H39D7r8WDQZT92Y09h973ZiyFg9fdOA26jGpaAxV3Dr7c3F8xM23aeIxZ9h\nu9PDeMM7jwOKtnQRHU7VSGppcShIs2BNHW5n1YEzSOYY/IpLRGxv7jnxPg2+\nSLjN\r\n=lDOL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDSqz9vOlKzZFeAMinkV8TZwppRBoO2y0NGwJVnS7YEfAIhANsUxJof8GVpXD07Yy6h04L2XKTkHc0QQ88wXvkKXEeg"}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.10.9-0_1532592475413_0.9030787659600497"},"_hasShrinkwrap":false},"1.11.0":{"name":"webpack-marauder","version":"1.11.0","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"acorn":"^5.5.3","art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","sina-html-webpack-plugin":"^0.0.7","sinamfe-marauder-debug":"^1.0.1","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^1.0.0","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.16","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0","prerender-html-plugin":"0.0.33"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"b0f380ca42b2c01d1ad0fc9f317ced6b9d198435","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.11.0","_npmVersion":"5.6.0","_nodeVersion":"10.2.0","_npmUser":{"name":"happybang","email":"franktech84@gmail.com"},"dist":{"integrity":"sha512-+I1yU1melIwzIMQPrjNkoWmf/2GQMQApxCpGE6OhwykzrB8eIYH9YEb71/VBQ3s59gkPvSNJHa39WulzASBHLg==","shasum":"93bb7707a9f51b5f0473c30d435d6c1aca97a886","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.11.0.tgz","fileCount":55,"unpackedSize":128851,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbWYfkCRA9TVsSAnZWagAAp+oQAJm6ga4LQhtC7+bxDfSh\naXWfYziN25l872s8Ave/QDXbzga7LngGCByV2+bQrhPvi+TyJbBTrjdoLN6H\nDEaWbVQuJQ1RZ/rGlaeKYTyIB/c6ueCu6wp3QDKftnNi/ilyRKyKyY/Pp5Nc\nCjBJm+jZZ9Jrv7U/eUj79Oel1G79VVHb6GXNCmmZqvBIXeIchAEcj42yUfYk\nMn43jCutb/OJjDnk1ERT5jSwpw2GPCU1QgpHsxDTLONZr4QjjWHarKDjtrsq\ndB/nSKk8gTcDgWCLjtyeNZARRiw88neMEtPiudktJnQVDLNzOJwu/Hklj/2V\nPlval3tDDrMhSPpKNel0KX4gy2YETy4pMnJxIS9Ii5PvG0/gnFUqSzwuJkP2\n7Q6xjr+DH3hQVFKOtih6kPP2X6e2CVrterewIqQ6AaEXXwQcFQ4av6ke/dTx\nPEaP1lGULwutFfE/z4r+WDizGfwUBwgTqLv9Mxs3IyCBJrEbjhyUdC44F34r\nB1+0zxoFdCE6L9oB3Xp2hV+jQOyHBom+OYqPzOYLiRS6J8JpP6nT4D2DJ+rF\nOWN3GvtwbEmKDEqv+XaZfPS5Tg7V1Paq/bl9eZCOf0Z3jw3M28dmJH7U8kxs\nfKz5eZAt836srPxbDasbJ0JXWdGDrEPhoCPqFCuSiLFuMuOsWVUvs8a0WD6s\nSKPw\r\n=Th0w\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHrAPkH3vdKNqccsNkidzixoza7Ad/wN0Nl31GPqtIU4AiARCcupDRFi0v4JsWV9ZqFKzO3Q38jvNNY8mVN+JwiRpQ=="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.11.0_1532594148383_0.6239823292212101"},"_hasShrinkwrap":false},"1.11.3":{"name":"webpack-marauder","version":"1.11.3","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"acorn":"^5.5.3","art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","sina-html-webpack-plugin":"^0.0.7","sinamfe-marauder-debug":"^1.0.1","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^13.5.0","vue-style-loader":"^3.0.3","vue-template-compiler":"^2.5.16","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0","prerender-html-plugin":"0.0.33"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"b0f380ca42b2c01d1ad0fc9f317ced6b9d198435","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.11.3","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"flypie2","email":"1037028848@qq.com"},"dist":{"integrity":"sha512-vTn9iNxIQLXoikY8aO+bK5tF/+PmV3LJBAywnq4+n8vP6osUg3OoR5LIffonRsXFORnvtiz7ffS3ozcrHEnHxA==","shasum":"261a0d017180c0d3fc5eac04af1bfd569756743c","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.11.3.tgz","fileCount":62,"unpackedSize":132731,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbYe0nCRA9TVsSAnZWagAAY+YP+wcFqP/MxxHs70ASZyCs\nb9MImYgO94vasYa7Th4cN347C769CIQt/+N1MsU8UrSWRQ5Gf7prbtL1IEqm\njC6soy80C4FuPI9lUWnT86pRaJuRG0XDtNByo+rslqZ0xealYiYnknleQBPg\nHlSJaKalD1PFWVG6p5/Yj/vD8h8nh00PPUeZyU8Pf7iLBWNsVlk/3MapnxvE\nBOkZmkeVZ+1tghEI3giuZ+m+ClnjrV6NAJWEE0bXHVPYg8wr2DwcJdUZJ7EA\nQjRQFnumUyCk9SQyzbT9uYZWGFm8h+tl3eun9zRbAIkaNEn3ZYfHNuXlAIio\npKRm24ypU2mKv0L1dh41Lc8yaNpt52JpNa1hD5mWF0WrEcvvN7+tQTGB0bp3\n2jWVLriEMkqxJfc+0qL43nO2/NS42czWoPE1+rphTE7WeF+GWIP67h1qCIB+\nb7puHM1ILfU3/ZnonChscksN9JfnYEVBRO8K7my9gkOuQZzQB73ZPHyga4FY\n8nBtSLHe/Yz20HgOQB9a6RhPcVrVT4CAd2W1uw1DAJhA/xPSv0smfIdeWaOb\n/9aejQXUzsWC+OP0mFQo+Eu65qRwdH4UJXcBGWehR2P8SF3KepYhfJTiAgZ2\nS7FC4nx4zSOIn4QspFbfHEU+r/hViQExnZ3GKsCK93KYFb21GZKbMUQmzna1\nAxhL\r\n=cRYx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEBSmVbo6jvykN8BwgO+O+SXhemoZXDi3FXWBeO3Fc0lAiEAyHAqpEu2o+3/AzvqiXBOLGiJRhZL7VU/2pKbeKMyIKw="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.11.3_1533144359207_0.2553941113824165"},"_hasShrinkwrap":false},"1.10.9-rc.1":{"name":"webpack-marauder","version":"1.10.9-rc.1","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","sina-html-webpack-plugin":"^0.0.7","sinamfe-marauder-debug":"^1.0.1","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","uploadftp":"^1.0.0","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^15.2.7","vue-style-loader":"^4.1.1","vue-template-compiler":"^2.5.16","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n> 注意：本项目使用了 async/await 特性依赖 Node.js 8.0 以上\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n* [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n* [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n**注意：由于 `yarn` 无法获取自定义参数，请使用 `npm run` 运行本命令**\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n### 启动微信小程序mpvue开发环境\n\n`webpack-marauder` 除了可以做普通web开发，也支持小程序mpvue的开发环境，详情mpvue的使用方法见：`http://mpvue.com/`\n\n```json\n\"wx-dev\": \"marax wx-dev\"\n```\n\n```\nnpm run wx-dev\n```\n\n在项目 `src` 中会创建wx目录装载基本的mpvue的初始脚本，然后会在根目录生成`wx-dist`目录，使用微信开发者工具直接调试此目录即可。\n\n### 微信小程序mpvue打包\n\n``json\n\"wx-build\": \"marax wx-build\"\n``\n\n功能同`wx-dev`，会一次性在`wx-dist`下打包好mpvue构建的小程序代码。\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"7b934f92a8a7afaf49b3732abe990c7803cba73b","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.10.9-rc.1","_npmVersion":"6.1.0","_nodeVersion":"10.3.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-4Ocu7/JJFaIojztSrgBr4vj/N05Mmf8rMydggSIgafdPkNEI71YknSv0GnIDArwFYaUzWUUTNY9OXAQOF5DYaA==","shasum":"39bf322119a94ed0e9185a3e0768f86573f13c77","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.10.9-rc.1.tgz","fileCount":58,"unpackedSize":135936,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbaWsoCRA9TVsSAnZWagAAAvkP+QAYsg+e4HDSOlY+Vul5\nZ/pYwHFIA1czHjIJnVXIuM1C5ReEKJp1n6/NW5Nycmw9AGNXVKkndH1+KIUx\npFwe6YPz4EUyyEReNSV6AA4TR+mMcM6b8wVavrWidNwPgMjCR61jwvtkv5GU\nhilfL/woaHIKlAJqn2oZsT5ENP/tm3sWfk1kQ6kRkLLA5FdcEI/V7/qp6I7W\n9KiLy3WYxlqPKmsxP5jI5SFRatE/2TOGfMFmp5tDpauNtKy7oPR1ifo06POR\nw7Vw/Aq8wkTEVSa2P0jmPMmP21SfvrER6/xV97ysSEbH+p7VG55wvoOFhDF8\noUZUN7FbASa0ckVGRs3hMJs22T/CV9mWrE57daVUuEk1cOhehCTueH8AvkNQ\nd93AqehOecStLd6DDTFALQmgdUbL4Ow3o9Eaf1AFWRv3Q7vDfA2v9BUtfe1F\nooSWdElh5YCSvBQkln+gMHoulfhqB80CwmoM+nvYpmiDd8WmjxlZ9ytMv/jL\nui+3X/nrLokHgoArHkE8b3PXPyWtg8Rq4Rx/FRahAhq/PLdpVimtPhp3vM45\n+cW20l+du71oviU3Km3ldpow2qFhU7f33BbMGuBtM+lySfAfPwjNwoXyCqi9\nBEr/4YtG0aEKOVA39iBiZfoudeJC1syXdyB6Sl7MjI4AHw4JR3w1x3mqVMQp\nDUw1\r\n=hI88\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDjJqVbBrTPlOMArB6XqOBxC8ua0i8b5124fTkbuxOBnQIgahvfcQb0tgVy10qBmzw0FxmytDUG0Orwx7IPnY4irkQ="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.10.9-rc.1_1533635367274_0.7558299285356924"},"_hasShrinkwrap":false},"1.11.4-rc.1":{"name":"webpack-marauder","version":"1.11.4-rc.1","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","sina-html-webpack-plugin":"^0.0.7","sinamfe-marauder-debug":"^1.0.1","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^15.2.7","vue-style-loader":"^4.1.1","vue-template-compiler":"^2.5.16","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0","prerender-html-plugin":"0.0.33"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n> 注意：本项目使用了 async/await 特性依赖 Node.js 8.0 以上\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n* [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n* [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n**注意：由于 `yarn` 无法获取自定义参数，请使用 `npm run` 运行本命令**\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n### 启动微信小程序mpvue开发环境\n\n`webpack-marauder` 除了可以做普通web开发，也支持小程序mpvue的开发环境，详情mpvue的使用方法见：`http://mpvue.com/`\n\n```json\n\"wx-dev\": \"marax wx-dev\"\n```\n\n```\nnpm run wx-dev\n```\n\n在项目 `src` 中会创建wx目录装载基本的mpvue的初始脚本，然后会在根目录生成`wx-dist`目录，使用微信开发者工具直接调试此目录即可。\n\n### 微信小程序mpvue打包\n\n``json\n\"wx-build\": \"marax wx-build\"\n``\n\n功能同`wx-dev`，会一次性在`wx-dist`下打包好mpvue构建的小程序代码。\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"98e5a022091b535f44b55fa0f583b09b8601a7e4","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.11.4-rc.1","_npmVersion":"6.1.0","_nodeVersion":"10.3.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-r8ERx9BBS+CipWzrhdoR5RkVfp40KnyCLY21n8zYU4PhAZztz9FiUEs9bh39feb1pguOA/ecYSg1m7wKC9Y1GQ==","shasum":"e63515c7b418c895f4b23b817bb61e2e97c3551f","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.11.4-rc.1.tgz","fileCount":65,"unpackedSize":139859,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbaWztCRA9TVsSAnZWagAAG5cP/1s1xmMU7+lyehb8+M28\ncPAVqSHnotdOG9utFYaoh4ZMTUSGKoph2pjHSYhIH89vxlx2XOV1WH5fd+zH\nOVKIJtpCLLrRR7Cuadymvw/h7EA+5kZPZqPpjx8/QaGF4Vb7zobKwU9N2V8/\nR5oMXG2aOet6rwzsqWZX5OXGUzlBHI7Q1/nsftmTGEkql8NpaW1SUPrkfpvT\n6c+CbWdxtSaZQGq/6e2hKQbGiy8HPAW4s6z+4hhGXrtkxCq06CA646o8MkFZ\nh4dYaS2QPxhYfEjh/75jHNfa4igbsjNxfTns6bmAF0EzcavxUo16YyZSG3pi\nFkvckhK52ZoNZMpvDWSRfBhZ5PO+EFUYI4544dtgXG0X7xiNVTcRQ5s136y8\ngFNFC708AvtlZJEJumHRkNMpQ8YgNnvxG75+wBWSURnR0dbjkw1/Uj4dIH4d\nzLpZbtV0ukxYvZ53W660ilNKAoxXqrJTOz6ywyuVtOc5612nIEFvFvdePoDk\nCxGYwgxW17m3YzlODqhz4nUVT0sOTpnFt868L/arjWZty6uhW6gjC1mDNcdu\n/ySuYGwFeexc8F07dI7bt96yJVtkPJ5iU26jRBcBaHiURWScVU+kipZQ96IY\nL1LAA5TAYy7F2ok7qf1spZtboh1CmHzVpRPKu1ufzan26EgfHO25kQF1QV+t\napUY\r\n=tE/F\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC/CbWiJbRBcagHngKUYIssatlMhMjX00chIBx5APzaygIhAPyFPrvM367xY4sUBZ195NoD5ZV2f5pd5N4egcrDuYr9"}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.11.4-rc.1_1533635821404_0.37517435646813313"},"_hasShrinkwrap":false},"1.11.4-rc.2":{"name":"webpack-marauder","version":"1.11.4-rc.2","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","promise-polyfill":"^6.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","sina-html-webpack-plugin":"^0.0.7","sinamfe-marauder-debug":"^1.0.1","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","uglifyjs-webpack-plugin":"^1.1.6","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^14.1.1","vue-style-loader":"^4.1.1","vue-template-compiler":"^2.5.16","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0","prerender-html-plugin":"0.0.33"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n> 注意：本项目使用了 async/await 特性依赖 Node.js 8.0 以上\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n* [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n* [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n**注意：由于 `yarn` 无法获取自定义参数，请使用 `npm run` 运行本命令**\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n### 启动微信小程序mpvue开发环境\n\n`webpack-marauder` 除了可以做普通web开发，也支持小程序mpvue的开发环境，详情mpvue的使用方法见：`http://mpvue.com/`\n\n```json\n\"wx-dev\": \"marax wx-dev\"\n```\n\n```\nnpm run wx-dev\n```\n\n在项目 `src` 中会创建wx目录装载基本的mpvue的初始脚本，然后会在根目录生成`wx-dist`目录，使用微信开发者工具直接调试此目录即可。\n\n### 微信小程序mpvue打包\n\n``json\n\"wx-build\": \"marax wx-build\"\n``\n\n功能同`wx-dev`，会一次性在`wx-dist`下打包好mpvue构建的小程序代码。\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"98e5a022091b535f44b55fa0f583b09b8601a7e4","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.11.4-rc.2","_npmVersion":"6.1.0","_nodeVersion":"10.3.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-JyVfZCNThtgk/8zQlVCWZuygoGBz6u0NYBY7Q+w2yTXcvwYCnQPzsj4r8dx0M2IbO2ta8rfUXYqwUrU6wr7qrQ==","shasum":"acd006ec58edc4eda232a2c44a680a29693e7884","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.11.4-rc.2.tgz","fileCount":65,"unpackedSize":139859,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbaXAKCRA9TVsSAnZWagAABvYP/AsxYbrX7wJY4yU6xoc3\nKa+TvQf+u9vHrG8zwnEs7zhoUc7nVKovFECrOBniCvfeu7322YyLNJCV58Nk\nBMBb296CE7O8Z8sNjKV1BZodTYyqGlBbbhaZpjpBExHyfU06bpETrUWwZUwA\ndJQXvTwB+XAJRjMJqGFQqU+KyQTlB2WzWw6wW7AEOm72Jv9Lg0/5lVKzO0iC\nfHMimpAf9MopR8q3H2oEq6lMTw8Dm392mn23ZW1dhgB50Qgd4o4sgUFvvfmx\nGynC0wBh58cT+PDmHtnfNQ/iOfMQpdwQkNsypsZR8Rx7d/7JFWMz90M3AcKV\n/bq0hs/9YGaHN+0OuhR24OfDJKtKbhy6ALwGCKC3CCAWbUcj5M0TENLtR8nz\nWgUeWKPtHUmaGnpYoW31b+YWGIoGKA27tbz4sj7tcPv7UWjLpnFKojvgpHRm\nFbBCj7m0qaPpgq1of35mJiVxtR4M80SytsNuS2U0qMDW4MF+Kgpv7Bf7FPY2\nHrmTCxDNZ7Yq8w0lBGphxUYw/AMLduVyRxKHgc5fIMo+OdcRrCBdDcsM2qi+\nycPoaeFQHbm9PHtWGoHM4/u0HettciZyPCX4Hrk7cQvO4uPq2qFOzWAavnqV\n87+uNYEfmJ3pgQ26ugM4PqKx3pcqCHNcaCZE/heBBG5j5BNAVxAL+sgNXUSV\nUU0H\r\n=zAqC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCymT0FgLWDwdOAuvUywztH/VOB1UpYAgj5FpkFZsaZ2AIgJj6y70PRN8iV2LEYJJb2mRJm8tLfBqBFrSv4s8aDEv0="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.11.4-rc.2_1533636618480_0.5215629177905348"},"_hasShrinkwrap":false},"1.11.4-rc.3":{"name":"webpack-marauder","version":"1.11.4-rc.3","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^6.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","sina-html-webpack-plugin":"^0.0.7","sinamfe-marauder-debug":"^1.0.1","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.1.6","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^14.1.1","vue-style-loader":"^4.1.1","vue-template-compiler":"^2.5.16","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n> 注意：本项目使用了 async/await 特性依赖 Node.js 8.0 以上\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n* [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n* [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n**注意：由于 `yarn` 无法获取自定义参数，请使用 `npm run` 运行本命令**\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n### 启动微信小程序mpvue开发环境\n\n`webpack-marauder` 除了可以做普通web开发，也支持小程序mpvue的开发环境，详情mpvue的使用方法见：`http://mpvue.com/`\n\n```json\n\"wx-dev\": \"marax wx-dev\"\n```\n\n```\nnpm run wx-dev\n```\n\n在项目 `src` 中会创建wx目录装载基本的mpvue的初始脚本，然后会在根目录生成`wx-dist`目录，使用微信开发者工具直接调试此目录即可。\n\n### 微信小程序mpvue打包\n\n``json\n\"wx-build\": \"marax wx-build\"\n``\n\n功能同`wx-dev`，会一次性在`wx-dist`下打包好mpvue构建的小程序代码。\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"98e5a022091b535f44b55fa0f583b09b8601a7e4","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.11.4-rc.3","_npmVersion":"6.1.0","_nodeVersion":"10.3.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-bb720r4HvfKDHN+c/YL6AeqTE4tevT/p8oWwbB8jRzO3Zjd8B0TU31PXmfagdK2b/8WEbOwXS02IgTacFjm8WQ==","shasum":"1cd82ee1777620fb9756912cc1c9d6ba73bd6666","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.11.4-rc.3.tgz","fileCount":65,"unpackedSize":139890,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbaXyHCRA9TVsSAnZWagAA9ncP/3dWn74S52wdzICWBOiE\nxalqTwhua+q8NVg1hnwS9bw0iOEKp+5aoOVo2IJce5GtnrjERGx7/Zi2n5i4\nuyo8aj2MelGxzV+oSJHZCksLMh9ZeWUbmg5Ni+B8n7VKrbsg690vuodpJRNX\n8CMpf9hvtZhyTLvV5gY6dgYcFK7lrFUXslFxhgYSx6HwgQ3zicDbTs3n8/fq\nphsmUSnBtA409XEVSY4rD+mHmGHADDkrEELfjqsPp+364jz01k9ldJI9KmrM\nrPvSGfppiPkIcHJHlGLu1iF47tHbvYwf4441vAe5/hGl2YeYjyVO8fS3gNHf\nB4kUfKA4z5uguDMxWW3+QDGDWrVuEwbO5AlXktdPW9txpQtoaUZjh+qsq3jd\nQr6onB2tuPGrUo83gUeAWGPCQAnUe+LHN0xXpyGO6pysHP2Ru5WbbqFWLb8T\n+UMGN2a1C4Vbvcd6yGX4X8uLkaaGyoTlP/OZ6i04ZA710FgLWxsaht5TpEoE\nTEXCnswdalIkOnPR5IK2eAhzQj6iDVK3O3lKxN0s7HXmF9nZ/lo2xXSs0iwF\nRe1Yt9Qn9272U6KW/4VxpwoemQrgKiI+Sv41Jv1XmAY/SeLM9HtoOxabijRv\naQGZLMSSByyzLJN2lKXmw9OePBCd5gzaa2ZYnzHegX0TJUaNMZlTf3k3F8ih\nDeER\r\n=Uyl0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIESFBeknxGEFo3FMOkB9H5xPPzPPa2IjiBP15ioHlv0EAiEAn2G1ijRDJ1Ug0xUBOPKhSDfcFoKfjRcPmqkrqkhiH10="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.11.4-rc.3_1533639814911_0.24335980353029907"},"_hasShrinkwrap":false},"1.11.4-rc.4":{"name":"webpack-marauder","version":"1.11.4-rc.4","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^6.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","sina-html-webpack-plugin":"^0.0.7","sinamfe-marauder-debug":"^1.0.1","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.1.6","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^14.1.1","vue-style-loader":"^4.1.1","vue-template-compiler":"^2.5.16","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n> 注意：本项目使用了 async/await 特性依赖 Node.js 8.0 以上\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n* [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n* [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n**注意：由于 `yarn` 无法获取自定义参数，请使用 `npm run` 运行本命令**\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n### 启动微信小程序mpvue开发环境\n\n`webpack-marauder` 除了可以做普通web开发，也支持小程序mpvue的开发环境，详情mpvue的使用方法见：`http://mpvue.com/`\n\n```json\n\"wx-dev\": \"marax wx-dev\"\n```\n\n```\nnpm run wx-dev\n```\n\n在项目 `src` 中会创建wx目录装载基本的mpvue的初始脚本，然后会在根目录生成`wx-dist`目录，使用微信开发者工具直接调试此目录即可。\n\n### 微信小程序mpvue打包\n\n``json\n\"wx-build\": \"marax wx-build\"\n``\n\n功能同`wx-dev`，会一次性在`wx-dist`下打包好mpvue构建的小程序代码。\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"98e5a022091b535f44b55fa0f583b09b8601a7e4","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.11.4-rc.4","_npmVersion":"6.1.0","_nodeVersion":"10.3.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-/R/rbRfS9lsgJ+24DVo64plFjfn0nFvxydIbchHLZviPxft1b82W4aqHeLM2UfopiL9gS8pbkBfxmLorq1qTQg==","shasum":"c5297018de74cbce35b5a448b4e46f4c295e0e63","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.11.4-rc.4.tgz","fileCount":65,"unpackedSize":139939,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbaZhdCRA9TVsSAnZWagAAIloP/R6OWvr6gsON8uHIyG81\niQP34JMYqlPMTQO6uIpmvROpbC4DmZgtc6/4x3lCkmvGA75PP6rLA5pB/HF/\nXDYxLvndAekWf1WN+x1XfqwK7kcc26cdyjuwQea3d0vPnYYKLpbrwFLGzFyo\nu/Emu3H8Shpqtu1oOKrpl2HNWg07aVWHvl63KZUXx2sjrUPWUiUwwovHAkx+\nQaTE1b/Iu3Fe4InY/S+bqj76Na/EvlNL9sLv8gLVlxycy8XSF53C94QU+lyf\nztRrCzY6sGur7FLTfAjGtlLGIUIt0tz4Rvdrdr/TJ+KmA87RlgIZTVy62+uh\njUnBEGGFf3eyKZiCst/bb2b0WthZKpTj/rza09qCxYBl+8L+9xuT7rAPO5c3\nXFYhEiNQsJPSuohCs7jo5pgFuEulBlb58DwKsDHQgp32WbO5zDJbtpny1isZ\nhUbdCSw9kD9zWW+/CSdMVbdsOlu0dL8TeF8CapUXp10/4X0pRV4Tw5H6oqdB\n5qrfL9zbC7zzHy7v/BilW2cn0UQj4vXyuglxlzmUT+oOKaULtRhLHrQSVINW\n1yfSsYO6oxXuTB35CGpePF6l78wi69V3aObpIyOpbLW86eVxXpaZhW8S/yI5\nOyJFq0JkgTS3XpJVS+4B5GGTSmgeY/3Wy3gXPUHTpmZ8CKZbhTBS4GxlHoIc\nEJ/I\r\n=+MVS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEVVXhKFW588Vx1k/vqT9p28+4IEV0d/GdkO+m7T1JgvAiEAiIEBwWyaTSwfIqu2CG/Aw+scH4ZVb0q/EeusAkVkX40="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.11.4-rc.4_1533646927548_0.20282396206191278"},"_hasShrinkwrap":false},"1.11.4-rc.5":{"name":"webpack-marauder","version":"1.11.4-rc.5","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^6.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","sina-html-webpack-plugin":"^0.0.7","sinamfe-marauder-debug":"^1.0.1","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.1.6","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^14.1.1","vue-style-loader":"^4.1.1","vue-template-compiler":"^2.5.16","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"45e0ff374933eceecde14f4b21482c21e2bc8f30","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.11.4-rc.5","_npmVersion":"5.6.0","_nodeVersion":"10.2.0","_npmUser":{"name":"happybang","email":"franktech84@gmail.com"},"dist":{"integrity":"sha512-El03Q+0zf3L/WANIz2NMHhEy8bGC9kJeUtoNxESHDFXMVt5ylfM5xLFPQALoI+RdRJSmWcXeQea8ceh2WMNo4g==","shasum":"7a731978e38065d3c9ab1f8c8dac2d517998d00f","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.11.4-rc.5.tgz","fileCount":65,"unpackedSize":139973,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbaZlsCRA9TVsSAnZWagAA7Y4P/ip9M/6ArjjGkcaq/ego\npvVXg8djXJSMsreIBc4tOhJ8fT85CtZy+CBwvcHTt2bolWYu5K1xRDru//p0\nM//ieMobMV7zn61R0dU3LLmd4JWkHs2CPez84zmPibX1kyPG1G6CpUdJZ3Pn\nrGlR57a5gC2XP+BoQaA0AN0Zwod3hvvbT2ljaowr3my+jEFQRRa4Gdjaa2XD\nJpeP278O58yb9Jc+RiYZZuA4DIH7TX0L3/CL0x/4V3ACKmCBo3wP5KjptknX\nEaUh203FWuqCAXSc7zLzHcoslRg+r06tuOlmEiZJRmfpD6PYPjbj1D/66V90\nM8GoieN/W2UEYw/ZuE8TFiYh6PnOeHU9vXsro9VORWd59vaMCPwMbAwRNZ7M\nQ6Jz6CnYo1evzskZanuHZ3+7ty1iON6JBSTpsd56YOr6fS+IRanEsza8gprv\nt9gHmA5DGWuEFRzDFr9CyzsIMRfyLDbcuOlotBpZa0RwAvdf+hevFNq5Xytr\nZiN1bt3Qf7ykJEL2cN4zyVC0d8aShd1VLeCRT7x0b49f7T/vsCLSGdw/MBX0\nZSbxN7Kpxk0oJqfbNE2w2lTi5wmXrcnLPH4JU0I7YxnxWZSDGfl+EW2Y4SJg\nvZ5QEJeJ6UxlPqp3K3IQFi40q+bbSBjDxqXGULpIV5e+VyKw/7FYsV9lfLif\nfNRr\r\n=KcNt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDkCiYaKzfqbJrpFXFkmCDYYF+mGew2aN8HKfzKqAGL0wIgbz8Ia/OQDm0T9HnC3CHgCVM90k9Pb4acGij9UsXHe+s="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.11.4-rc.5_1533647200095_0.25467648442657276"},"_hasShrinkwrap":false},"1.11.4-rc.6":{"name":"webpack-marauder","version":"1.11.4-rc.6","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^6.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","sina-html-webpack-plugin":"^0.0.7","sinamfe-marauder-debug":"^1.0.1","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.1.6","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^14.1.1","vue-style-loader":"^4.1.1","vue-template-compiler":"^2.5.16","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n> 注意：本项目使用了 async/await 特性依赖 Node.js 8.0 以上\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n* [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n* [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n**注意：由于 `yarn` 无法获取自定义参数，请使用 `npm run` 运行本命令**\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n### 启动微信小程序mpvue开发环境\n\n`webpack-marauder` 除了可以做普通web开发，也支持小程序mpvue的开发环境，详情mpvue的使用方法见：`http://mpvue.com/`\n\n```json\n\"wx-dev\": \"marax wx-dev\"\n```\n\n```\nnpm run wx-dev\n```\n\n在项目 `src` 中会创建wx目录装载基本的mpvue的初始脚本，然后会在根目录生成`wx-dist`目录，使用微信开发者工具直接调试此目录即可。\n\n### 微信小程序mpvue打包\n\n``json\n\"wx-build\": \"marax wx-build\"\n``\n\n功能同`wx-dev`，会一次性在`wx-dist`下打包好mpvue构建的小程序代码。\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"2fc33a1f9f4c68036dc1412068f872ed23b08aae","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.11.4-rc.6","_npmVersion":"5.6.0","_nodeVersion":"10.2.0","_npmUser":{"name":"happybang","email":"franktech84@gmail.com"},"dist":{"integrity":"sha512-8uxT36ppHI8z7eyrqhz5kLCqSM8YrMJs0do9EoW/cCznkntWjEU60HhXGqkgJg2I8+RZVwWqMpPk5g+ydOvSbQ==","shasum":"e440797ce98cbe73cae50450f0714bb320cadc2e","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.11.4-rc.6.tgz","fileCount":65,"unpackedSize":139973,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbaZuoCRA9TVsSAnZWagAAB24QAIzovkO9DqZCmTtsy+Gx\ng9cpViR//t8PPpd47Xbk/vPq5KnqPGXD9FWVAe51l+7Ay6ajgAzD8y7bzV44\nZDDCfk0z8S4yh17UfI+tiKPXzxR48Eof/e3FyeTpCF4Nj/+NoEYpfpe9TWX4\nvPsRfIDf1chF64VHy/bIaubcpzqHCoOIuBMub05bJeM6vDawTM0dg/Uxnj9C\n5Mr2UiP4O8RVEnGvBsXLVYn32gc5U5jQYdmwIW/H3Ht/kG9ZoloPsHj3k+HB\nAlhkicr4lc16+73+vqMzoDLa3JzMU+oEFMFkMq3dk3uzFOQYOI0XOL6rr/Au\n5u+BoPx+EGQwEvVYKCFwKP8vvrTP4fy0iO4hAYfLbgfvi6IbegBtGg7j8+Lz\nxTC1xgScfvsFNevrD4Yh1Iouv5oVWuhno1V362YWUkzf4mm8t1oqkre6Itij\nSpisv8xoD7xHfYAm47D8PjqboMzGmjlhCQu/h1H4sUot+3DV8ZuGSXA76VUr\nbyyL7+GTNaDPjUpfHIrV7CzRaZWdRqaCtAw4YNe1WnA7mqKF++2GYMcTDi5r\nkngL7Vf2QYx67mdrLQ0ti+lQZlXZzqkpiAXrfRbvnjOjOfSOFY836Lx7CvWw\nnoimAjQ8MIO/XpZACVLDAT2vVcRNMt01ViqihfatRrtIgTVtXzlSPIOR92ik\nE/LM\r\n=Wgfm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF1ePLG+HjmXjPFbsaMBnns6ALenH88Ykrh+GRh/AEq4AiA5hg8e12D+n7BzR8dTZJulAlvXlp1PgkLQ9oAedSWURA=="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.11.4-rc.6_1533647741203_0.9848762801374138"},"_hasShrinkwrap":false},"1.12.0":{"name":"webpack-marauder","version":"1.12.0","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^6.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","sina-html-webpack-plugin":"^0.0.7","sinamfe-marauder-debug":"^1.0.1","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.1.6","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^14.1.1","vue-style-loader":"^4.1.1","vue-template-compiler":"^2.5.16","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"27f2e2c5fdb510e74c9f85543888c9962774d8a6","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.12.0","_npmVersion":"6.1.0","_nodeVersion":"10.3.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-Bvv3Exew8jRMd1vQNRTzgX2q0XWjBHx2K7ZZza9Bu0gE3luQ8vit5gZeUjFm7bZ8BuY8mNO/1N47CmfMpcSCqg==","shasum":"acb9d0d37619ddb42556c14bd8c3fd0dfa89404e","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.12.0.tgz","fileCount":65,"unpackedSize":139875,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbaZw/CRA9TVsSAnZWagAAVmcP/j6jnkCUV94Awl41dwNJ\nO5rBm7coqMQcpgKhmL/f8YycJnLC4Fjj9gjQsDolrWKlGjPKYgLEoiHW/xn3\n8tkYxHeUulOOBUPgkJVzaVYmTs+VfyfsHzhWdtlACz1GXchb7uZX4YbLbK6P\nZ+RHWVv5XqMw2I78RrMepD1w5HS1cxeky+uCv+bg2oaWep2jNn1i7YA2BStS\nM2WYbHl7d9DsPC3O4Rx20Hgo3PdLZD1zZBnuTO4cOjq+agtMvIwSBPJhwz5S\nARuqM+aNx89aYH0ujVRsIeZmqI0wRIofGhxt/1Pp2jRBbIARbIcOuJ5p4usJ\nzf44NtWOYjJhYX9kPFABX4RLy+DwFSf5NmH9lJ2g59aJX7e2gnKArYjPz3CW\nO7jSs82eKiGtEkyW9cEuCw2nYFu1XEII73I7DxgopurPNIqP5rAElIG6+UDR\nQ24wMVnW/o+ZVpfkYNjwGYbrkh3OcmEDAYt26k5qBlurOLJbcJw8jfbJZ/nn\nyXMQhw6dPjPdcv9rZ+aHAcfMYPEQz0ghvAo8khJNFXW9H8ZQsFwQMo+6Fdd2\nNmUQKFz9zpBUUyhWkhUpfRGyTPupHiP2MrKMcHauAQelkgsffdJDj+wAPqwI\nzrytFtJdTJXR1zlvu9mFmkNhgShVks8//31APOWMHzmSCh2EB2OOKO91s+qm\nl1xe\r\n=qSlz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCcjRqgfK8Xxi/lSM5nBE2vpmHDYxZjhaE+og7O4FOdGwIhAKDjnPl4IXlc9YRS1caPxgTpv7xX19C3zIWeq1tGGbI2"}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.12.0_1533647932349_0.554093436414439"},"_hasShrinkwrap":false},"1.12.1-rc":{"name":"webpack-marauder","version":"1.12.1-rc","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^6.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","sina-html-webpack-plugin":"^0.0.7","sinamfe-marauder-debug":"^1.0.1","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.1.6","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^14.1.1","vue-style-loader":"^4.1.1","vue-template-compiler":"^2.5.16","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n> 注意：本项目使用了 async/await 特性依赖 Node.js 8.0 以上\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n* [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n* [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n**注意：由于 `yarn` 无法获取自定义参数，请使用 `npm run` 运行本命令**\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n### 启动微信小程序mpvue开发环境\n\n`webpack-marauder` 除了可以做普通web开发，也支持小程序mpvue的开发环境，详情mpvue的使用方法见：`http://mpvue.com/`\n\n```json\n\"wx-dev\": \"marax wx-dev\"\n```\n\n```\nnpm run wx-dev\n```\n\n在项目 `src` 中会创建wx目录装载基本的mpvue的初始脚本，然后会在根目录生成`wx-dist`目录，使用微信开发者工具直接调试此目录即可。\n\n### 微信小程序mpvue打包\n\n``json\n\"wx-build\": \"marax wx-build\"\n``\n\n功能同`wx-dev`，会一次性在`wx-dist`下打包好mpvue构建的小程序代码。\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"28d4f7e961ac87aeaeebf527f639c30f73860ebd","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.12.1-rc","_npmVersion":"6.1.0","_nodeVersion":"10.3.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-Cam6eJ6mDVFZ5uqA2p/qNPKtArCvaXhJDyusffETM0bnAqQLUyCclrDvAHGJcq6D1oa5XZ0c7PdmBb9euU1IQw==","shasum":"8efff643e6a46297948fe5329fe31480f3640a98","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.12.1-rc.tgz","fileCount":65,"unpackedSize":140129,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbaq0cCRA9TVsSAnZWagAAH94P/0K9yl0h7tkSz3x6yo+v\nT0ltcKsDbctN9N1+/AipJ3WeRdMW4/xNnPU05mtKMrnardM9pFahJuf3kI7z\nWn6JVtcWBoyS8XsDQlqSHk6NRQOJt+syeleO4uFoNv6+ZsyooDHD0ELs9I5V\nvDGhvQhUCPC+8Kx9bYHe9bOxQemAa3eU5x89qM9wl5yPpngd/zfH8DbRkyCN\n79IBCT4ZVMbE+suLAmVMqwlQuz2HnmY2Snhhp3ZnhLE2bwsDimbGd/X8vKUm\nNOhoucyIgrvW3mZA6xULmys7P5Id0rmSiiQIqMcOsxuDuP+RHTmgT9r7HYUJ\n6+5NN1E6h5cgjixherOqzzv55PaGw80A0Ku1SvQau23IvhXC62nIaoIoJ+vG\nkFA5Wvo12L1CQirrVxqzT+Oo/euD5B8+8avHfhALj6MigGiLKfO0ecsCJ5Sl\n3YygHpqzoDomipA5ef6TV8XZ9OlBHCCXiLcGmVBaMeVsNMLwtjYXuGr0k72v\nZqrs+mnoRoZ0p0STZ2mHJQQePlSKs3D68IY5ei5UYDqD369wd15ZDGLPwlTr\nA3ba/UgbJGG+aatVj32i9Tv0SflbJShZLwQ7a9unua2FECA3nL+/kBnzQk7k\nJbimEbmcnh2eO32Tud9tyj/GV21JQmdBADydW1ViKa6iXg/G2Hqyr2LOQL3W\nSlwu\r\n=7MKb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD6r1aXENDbtS7U/d6gRSX+JP8scl3D32oQP8++P4O8DgIgYH0zyMZGSfq9jVbfjxSpJnqZ12nVqxJuKAK9c/WmRHY="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.12.1-rc_1533717788224_0.2371246086245331"},"_hasShrinkwrap":false},"1.12.1-rc.1":{"name":"webpack-marauder","version":"1.12.1-rc.1","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^6.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","sina-html-webpack-plugin":"^0.0.7","sinamfe-marauder-debug":"^1.0.1","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.1.6","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^14.1.1","vue-style-loader":"^4.1.1","vue-template-compiler":"^2.5.16","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n> 注意：本项目使用了 async/await 特性依赖 Node.js 8.0 以上\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n* [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n* [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n**注意：由于 `yarn` 无法获取自定义参数，请使用 `npm run` 运行本命令**\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n### 启动微信小程序mpvue开发环境\n\n`webpack-marauder` 除了可以做普通web开发，也支持小程序mpvue的开发环境，详情mpvue的使用方法见：`http://mpvue.com/`\n\n```json\n\"wx-dev\": \"marax wx-dev\"\n```\n\n```\nnpm run wx-dev\n```\n\n在项目 `src` 中会创建wx目录装载基本的mpvue的初始脚本，然后会在根目录生成`wx-dist`目录，使用微信开发者工具直接调试此目录即可。\n\n### 微信小程序mpvue打包\n\n``json\n\"wx-build\": \"marax wx-build\"\n``\n\n功能同`wx-dev`，会一次性在`wx-dist`下打包好mpvue构建的小程序代码。\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"28d4f7e961ac87aeaeebf527f639c30f73860ebd","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.12.1-rc.1","_npmVersion":"6.1.0","_nodeVersion":"10.3.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-HKCveKq1F32tpI7i6JAIaumgeq9wGAGq0rt2Yaz3veOgitrfZOVY4kBfNJMLjYWqQ8o6UtfpekbAj8hgEIsZDw==","shasum":"c46e13e99fb684688628350c3c3a561eb3fae88a","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.12.1-rc.1.tgz","fileCount":65,"unpackedSize":140196,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbasXwCRA9TVsSAnZWagAA5MsP/jzK/ImEbM9So/CspZ+U\nCyUMtOy2la08yDjoKYPR4hFWBBQqbp/EEZLVgEz6YrKCH800TQ+iQBVuu2x5\nwCDfadFZeFH9tnT51ULnhxRt+mfyL2WJYVowMgSrX2cVfeKUEJ8JtD7zqB/S\nN9Hmz8hL2cJOi0sND4M2h+dG9Yx9dqZ/pU08lA1X3V0Prtq4X3jeZnpaGOb1\nU9d5rdsLz3nwhrK1N5ChWC82ESA9uWUFH4PfLkizmlQFlOH4uNBd8mc2/WXt\nTYfa5gozVnqzuy1SFVGGftlydy6ByNeVqVYr7Vt8VnGMiueZqQUpK6A4yGNr\nqISO+J7A2G7lEPOgALf4L/DmNK4iKK5QFS3ZJcwOT18FwAx4sxkY/yLL64Jt\nBAZ4oMZPjvgYejCwAaOimzXuYp7DP8kBhvVNCkDJ5bumK8WwxqlJvsRPtctV\nEfOXkkcYpCbU/mp2r6PIO8y3wwgmnFDL82NQGt3WqHmg9EPvjCwS1hYtwqo8\nmcmmzovy4n2cDI9jSF0agOrDKgW0zXjRfGFjU6aWyoCgQTcq82IDdSgDDmRr\nx6wjEKPB7w0kJU5in6OusixgciRwT/r+gs+4KPUSf6aQq/SDQID6APYUKcQN\nxnw8964rgNOcUTvcpWHP2g79kuCggzsSUEwgIwxKQTbd/Z83Z+ur6PSdP0YY\n2oVm\r\n=GwyM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCF6fvznYGOJZtO9zlH2LlE4HQ1gmELmB47rW1JrdVaEgIhAIYgQD2k4dH+IKeTHimitiN/cXuj/lX1iLsJFQolxTtg"}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.12.1-rc.1_1533724143956_0.6896922011457907"},"_hasShrinkwrap":false},"1.12.1":{"name":"webpack-marauder","version":"1.12.1","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^6.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","sina-html-webpack-plugin":"^0.0.7","sinamfe-marauder-debug":"^1.0.1","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.1.6","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^14.1.1","vue-style-loader":"^4.1.1","vue-template-compiler":"^2.5.16","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"461efe973cf630cdaeaf078c0f2705a102227a98","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.12.1","_npmVersion":"6.1.0","_nodeVersion":"10.3.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-WnrKIsyZaFpDIw2mrv8zMXgotCnkqcPrXBmsFslaUIcWrGsTiwBj51xI/4ENIfWbg1XDPNxsSnnXXrhpHLb+Qg==","shasum":"7a9b2bf52e090b4d2a98651213de7cbffb129646","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.12.1.tgz","fileCount":65,"unpackedSize":140068,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJba9o8CRA9TVsSAnZWagAAn0kP/im6AYNNVvJrgxOelm3O\nJuAlQrUggf9UwnmwFCMVEccR45Ma8IehMKz/BPQmFsfii691D4TCqagBO7mZ\ns8tvoyESzC2CVMre0qcV5l/v1zILttjZv7U0tLOYbRRrEY8xtgMoPWndktis\nnApmBfbsYflMfrGX05jU90nUjAahPPrs/rbY4ybqn4Hn8D9ekTluFbrPr6cy\nAUJic4SmISpazblAfVqFK4lvBuCG+tSuogi+5XpsibIij9iO9LIuDi4lc8II\neCfBNjpfJPhxtKVNoHoKosCGn+aV07XOgIfovDdpNsnVRGPuEo5lpAlqy9TE\nsEvp8mGc8pw6dG0MZV9cNCUqS5ESskxJSOHahLF1l425abFH2kuAU7IIqpZs\n8Oeru/XJVqAryzvhYDb5j8BjxMyE+aDlrVpTLk0QuPbHTZk+QeI3OOe85z45\nv6rj0Cnph4eH5tv80GL9oQcrn0mkPURK52y0V1QGm9h9adFa+LPwWOE3yjSk\nH6Ali4z3C3caqLSugDkh5ff3zOFlncu/hX/8OQMeo9g+bo+n3u57At8zI/l8\nfejqu11w7+DQQPqOxGg2n2c2JEGTRe9Z+Vxws8XTDVAUF723vZEvu257qaYx\ntQIREdBHn3jgRaAeEZbv+ATsbrUIOyTdimXJRQ4g4VFM9oGYtUMOvZR2F9WU\nS7hu\r\n=M8yd\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCokrFmh0XA0d/+22L4aexd1R1KNmFwXpBVgH0VveikOgIgHoVGEyRe3dRDsdyXClRJ9x/IZ8/Ejx1KNWXW2Vc8p6E="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.12.1_1533794876392_0.46532496844499116"},"_hasShrinkwrap":false},"1.12.2-rc":{"name":"webpack-marauder","version":"1.12.2-rc","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^6.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","sina-html-webpack-plugin":"^0.0.7","sinamfe-marauder-debug":"^1.0.1","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.1.6","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^14.1.1","vue-style-loader":"^4.1.1","vue-template-compiler":"^2.5.16","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n> 注意：本项目使用了 async/await 特性依赖 Node.js 8.0 以上\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n* [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n* [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n**注意：由于 `yarn` 无法获取自定义参数，请使用 `npm run` 运行本命令**\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n### 启动微信小程序mpvue开发环境\n\n`webpack-marauder` 除了可以做普通web开发，也支持小程序mpvue的开发环境，详情mpvue的使用方法见：`http://mpvue.com/`\n\n```json\n\"wx-dev\": \"marax wx-dev\"\n```\n\n```\nnpm run wx-dev\n```\n\n在项目 `src` 中会创建wx目录装载基本的mpvue的初始脚本，然后会在根目录生成`wx-dist`目录，使用微信开发者工具直接调试此目录即可。\n\n### 微信小程序mpvue打包\n\n``json\n\"wx-build\": \"marax wx-build\"\n``\n\n功能同`wx-dev`，会一次性在`wx-dist`下打包好mpvue构建的小程序代码。\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"8bf430507b844da8d39ebf547874d44ae6f8cdff","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.12.2-rc","_npmVersion":"6.1.0","_nodeVersion":"10.3.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-HWrhGL7t2ObILSN26TtW3ATBSv6gPCnmijjyPk5LIofnds0Bqi+BHzxezC7QOrZoK9sd0Qa+0my+wzsXnOIFbA==","shasum":"325979d6c5883d16a19bd5ecef86d9a2f9ab779a","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.12.2-rc.tgz","fileCount":65,"unpackedSize":140617,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbckw+CRA9TVsSAnZWagAAOEYP/R+G/8kStqq3ABuexSkC\nXakNflAMxUMeje2h0d/iDOTQboyUgIcfDH9AEkodVq9ZIRf3eZIKS9qVnCZ/\nPcu0sM1AcVJB+5XpH4SFMIS48/FjDV9wOTKAX67X4I0aYWBl6fF2DeHa+R1q\nghKgcimgQeZM8oKUAQPeqEokbPZsDRPHo3p3wBKU63+DOvJ5F7/WCo6smhJF\nIc8H/N3/PZ5/u2UfqhZg2/V3d4nj7/z+D+j6WXNmzzoPoRXzcFe+sHY/TF2s\nvgKcbCdwJ0SZUgjD0V2MfQUwsZk7QA5fKE38ewPhUWLJImaL9/V0X3q+SmJm\nCd/S9HwZ6lRtMudxbwGvQYHixgufNYLh/TmTimU1lsNjsE2MrsCZCRl7rAqL\nmGj4mq/8wFXjL3osghI+q8pmsmKWE4lyNJc62bgWclEsE2deChzH9lsWrkHb\nbtz84ww3M1y97AP+pon+ZReVmXTx1LG/dpuCisks4k3nC0VbUcz00b22LwWq\nb8z7cQBbJvDWsij00tQEyDJysLaYcGKQwPPF33N2F8YGhW3iewi+YKIHm02d\n9Lzx0k0gUkiTQ7ulMYrsoQK6/zUUV3j08gfknPyPUF4cTVb4eOfHdwIHPOI+\nzf7c+qHK9tfsWzpXo7xstD2Zeeb2z7t7liSoUoBHP5JYFUmDIuzJlMKnMkuE\n/4is\r\n=XQaL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDZ2MwxYBjUHz4rySsS/JrCj5NvC3HYsSXO78OnqgfbyAiBQXqoKKxQpJszdD3Z4R8OaRSAxB1h4PJGJYDoRA600WA=="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.12.2-rc_1534217277834_0.6640061525182306"},"_hasShrinkwrap":false},"1.12.2-rc.1":{"name":"webpack-marauder","version":"1.12.2-rc.1","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","meta-data":"^1.0.0","meta-loader":"^0.1.5","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^6.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","sina-html-webpack-plugin":"^0.0.7","sinamfe-marauder-debug":"^1.0.1","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.1.6","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^14.1.1","vue-style-loader":"^4.1.1","vue-template-compiler":"^2.5.16","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n> 注意：本项目使用了 async/await 特性依赖 Node.js 8.0 以上\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n* [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n* [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n**注意：由于 `yarn` 无法获取自定义参数，请使用 `npm run` 运行本命令**\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n### 启动微信小程序mpvue开发环境\n\n`webpack-marauder` 除了可以做普通web开发，也支持小程序mpvue的开发环境，详情mpvue的使用方法见：`http://mpvue.com/`\n\n```json\n\"wx-dev\": \"marax wx-dev\"\n```\n\n```\nnpm run wx-dev\n```\n\n在项目 `src` 中会创建wx目录装载基本的mpvue的初始脚本，然后会在根目录生成`wx-dist`目录，使用微信开发者工具直接调试此目录即可。\n\n### 微信小程序mpvue打包\n\n``json\n\"wx-build\": \"marax wx-build\"\n``\n\n功能同`wx-dev`，会一次性在`wx-dist`下打包好mpvue构建的小程序代码。\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"3070fa9ec158e0f7e9d317ba9f73f5fc805beff0","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.12.2-rc.1","_npmVersion":"6.1.0","_nodeVersion":"10.3.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-MiiwgWkhKMdB96xlswnoe1mtO/TmAZNZBTh+AHNvqW2QXmy3e6ysvsorVSxze+5oU1IZMhww/fazNIMvKQ3+MA==","shasum":"64b441f892d9cb6dd6c5f0dac0c747e2094c5adb","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.12.2-rc.1.tgz","fileCount":65,"unpackedSize":140929,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbcqEdCRA9TVsSAnZWagAAcTkP/RpdoxEE2Yd3RWr0IJXI\nsUd/bDxkC0WKlFUeVaskiRLzDQkVNckNjTBOMPCMlG+lQ1UBUX0dfu4kZLYY\nBR3J6mziOV9XmzoJvkvhQbrtLggdmT2FYOpWuklpt4EVca/ob5h73tausc4J\nWsFedXvLJwffjFpxomIZlozdbhcVBAg1mzxK3juBMQYNzpNgv6X6PDe92mys\ni18miQtUW5pstZ4KS+jN5Fd329J+LuyeDV6yvXFbX3tcwbyDJgHA2wi7zR3+\nNo3J5Fk1LDnmj6kuqY3jShVP7dQJgmJ0rSJOTT5g3RiRRLX0hr/EatdTsZOw\ndNWMJKL/cu8OsgfkvhQK9I5hMSXOlseTW93wW8Zx1khObJmium1MHML7eq+y\nKPWt2hh5jPD5chcJzZeUrtO35OlglWt2qTD5Gu5avNrLf8Of4x7O1cbbvtva\nzqIvx5KkDqxAecdFg9MzLzOUJs/08WzLFeKLm67bSLlD5JmSv2zc2B6ESPHw\nFVxBdUnDAPJFxU/4HsvdPgpiyn6H4Bi6UYhQ+CuNmH5CAo/52WeAkUmCCjEH\nutGSw/kZF+7XmWAY3QtlWwvRUZ8pvWpEzR+KfT1FbdxPM6/qFgr7sGRSxD3y\nQIwZIwyBiTzibv8XxqQuo9dEneUI9Oov5nRC3MzeZ6kQExQcxCqbuJjdeWIa\nWTcV\r\n=poQm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCrKbpOniw1PkSGftMImZChy/eN9yJKrSKg8bLLHXqmTAIgBhNAZCdjxOKNrulXok9dLAuhMgqlvsMw00njdE31upo="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.12.2-rc.1_1534239004411_0.5390732369390672"},"_hasShrinkwrap":false},"1.12.2":{"name":"webpack-marauder","version":"1.12.2","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","meta-data":"^1.0.0","meta-loader":"^0.1.5","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^6.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","sina-html-webpack-plugin":"^0.0.7","sinamfe-marauder-debug":"^1.0.1","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.1.6","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^14.1.1","vue-style-loader":"^4.1.1","vue-template-compiler":"^2.5.16","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"0b614be92bd0258391b80c128a03e219946e4e25","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.12.2","_npmVersion":"6.3.0","_nodeVersion":"10.3.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-SAQoe9obImbanDvhzpcNYHd8fCtlja1RVPrOwTNZwgJAWpdOwUW8ero7sYXRr9qBcDzynsrorZk1XhJHvyPTPw==","shasum":"07c2e51abad106210033f30211c7473a419571cc","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.12.2.tgz","fileCount":65,"unpackedSize":140930,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbc8wCCRA9TVsSAnZWagAALJIP/jMU1e4oapmqIdttwyzC\nsfpZWk5vUhqWyaaLUAX3YxbMJHsMs8QDZVBE5Q1UuMMplhyyIsUOoiKpF97J\n5fHazPumoXKBzrou0gS32wwmX4AB+U+n83bmbm2rLdI3R7vrURzK3yqFz+yv\nr0iKiy6KQIosQ35x5bSJbHPcEWUXKwhDwW9uGcOOHW2KpMmWm0vk6dvjDr3Z\nlqlFW+EjXzcawDkHWQmChAfzGjdtfyfD8bEGnX0d7EKUAwUrjRbR/2UMTm22\netB68UOBrHGWHiWCusqZM3nPAJLDc7HCALej3BDpTfNT/eQVBixG0WMhW/sy\ntpwTY9yZadKwY/d8yFGGhCnxgimOzNUzx7YZmXoGPk1VESMJbfB0JfAK8tSs\nNoh2cBqsC0W6iO3r+nch8XnrRdBFO8m3tlWX/zTm35Gv+srkZNPxOM46ycXt\nXS2lXHH091DM6Xb78cNAbe6Npr022G9PjQ6KM+xNMZncZHt7ppcMVMowNRrG\nhI0AivpsV44T+NHHn0zCEvdd9rSL6/cXoeOfMtImHG14o530hvXy0oMB0xGm\nlQ1yB+olDRKzX/d3JiM9CuZe/1fXVx5UCAIFFRzYYZiq8kfpG09UTzh8v0sY\nW5gb3WLB3J6DHbOZx1CRLpxCfWS+9blOBdXmFHr0n7Ee9yi7MpOOYyJxKLPF\n8ZQX\r\n=GmnC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDJs2svwE7U9XxqDtC6zL9/NSgP7Gsj2ZSfj86raNmpXQIgFGY2MUA7CiWWCsuHA8L0Nhmq0+Gjozkc0CNNd6Dk3lg="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.12.2_1534315522436_0.6788237704879532"},"_hasShrinkwrap":false},"1.12.3-rc":{"name":"webpack-marauder","version":"1.12.3-rc","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.3.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","meta-data":"^1.0.0","meta-loader":"^0.1.5","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^6.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","sina-html-webpack-plugin":"^0.0.7","sinamfe-marauder-debug":"^1.0.1","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.1.6","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^14.1.1","vue-style-loader":"^4.1.1","vue-template-compiler":"^2.5.16","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.2","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n> 注意：本项目使用了 async/await 特性依赖 Node.js 8.0 以上\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n* [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n* [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n**注意：由于 `yarn` 无法获取自定义参数，请使用 `npm run` 运行本命令**\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n### 启动微信小程序mpvue开发环境\n\n`webpack-marauder` 除了可以做普通web开发，也支持小程序mpvue的开发环境，详情mpvue的使用方法见：`http://mpvue.com/`\n\n```json\n\"wx-dev\": \"marax wx-dev\"\n```\n\n```\nnpm run wx-dev\n```\n\n在项目 `src` 中会创建wx目录装载基本的mpvue的初始脚本，然后会在根目录生成`wx-dist`目录，使用微信开发者工具直接调试此目录即可。\n\n### 微信小程序mpvue打包\n\n``json\n\"wx-build\": \"marax wx-build\"\n``\n\n功能同`wx-dev`，会一次性在`wx-dist`下打包好mpvue构建的小程序代码。\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"0b614be92bd0258391b80c128a03e219946e4e25","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.12.3-rc","_npmVersion":"6.3.0","_nodeVersion":"10.3.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-7+PxIO1UR5DSbeCTgGLCJlpuINqnDQFcqzxhSTxpUjGGdVMHhbChE8y0txvRfMHHdEeZ+WXZ1xISt8rRht8SIQ==","shasum":"f7d539c7ba6354d5fe5a5e08c0a0876ad3118857","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.12.3-rc.tgz","fileCount":65,"unpackedSize":141472,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbdRD5CRA9TVsSAnZWagAAS8sP+waA7TefNIpbI6ZCWXDl\nbrkUGEmtXDXFhEiprpz6mJ3HI4F33NpH6rRqmREsLw1Y2dS0bF805sng/MXZ\nguI4pKJbMXGwVCCskd+p2ra2LoDlHDwEa4hlc2cwOf5aXhbzaVhiEYS1T1c8\nl/boTi6h+gNuq+84AC8qJ8lfIYRuVkf80CNOwn6nwxCy7yUT+wGXvbz6qFGF\nQFwGAI4fMvgWt9AVMrQEUKTJKVwxRgd+OKMbK0hYvN99/ZSwp6VFwndg8ALZ\n5VPBHnPcziMyaKYn+3Bq+c3oaE++KGqtZPNgr1VTNlqK3oryWL4uAl3RNVdc\n+f5D0rAoNp3Yi0frtWJF0VUiPqCd1HBheAiieEH0XQHL6H5VwvUET7dgLBeP\nsbd/yAdyBWTD5rDb7WtTFkxE8M4RzxbjdwCgq6FibFzBgc0WptPZ1Bk7dC06\nxWYn8BppJT/YJsOY2OUP0uCwWhoYYMKSwR55lwXQCty/TnWD8fAXFDp/rgRE\nMOQgSAwMQzB75S2frNpLUl8GVX9MIU9OM8oK8juP9QH9i3+aNeXdP1Pq9Q8p\nt5DP2DAMvRCaF2RGK6QQ75qzF5ZLal3SL0p/Yp2dK/ex70UcMcKs1Px9cU/1\nD5KigBJ3SWt2BL3u0R3Z5YWWPmwFi2krP/VsBeoz9CjBGrhUaOHcmMn60wgv\nTBdg\r\n=Gzzh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDWL5gkBk6y9oWpr8mAUdUlXzWk0h2VPpt+QAKFkZKLVAIhAM3aaxOZSHhZUDFQ3KuU1rlMMhv8T/5FhEaMc/P6DnRZ"}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.12.3-rc_1534398712725_0.22055589001512566"},"_hasShrinkwrap":false},"1.12.3":{"name":"webpack-marauder","version":"1.12.3","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.4.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","meta-data":"^1.0.0","meta-loader":"^0.1.5","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^6.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","semver":"^5.5.0","sina-html-webpack-plugin":"^0.0.7","sinamfe-marauder-debug":"^1.1.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.1.6","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^14.1.1","vue-style-loader":"^4.1.1","vue-template-compiler":"^2.5.16","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.4","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"fdce34b9b48b4eab2624b67a3a2a77301c1225d2","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.12.3","_npmVersion":"6.3.0","_nodeVersion":"10.3.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-PIxOjZWGcN/b2Hrbl5E/0BAgu9LrjB3ZxlZzIyTXCwswAMuImsV+gUO9W+DcdZAAK917NVKOw8LPonfhsXbeFg==","shasum":"5b6b778b0ce712c3e18f24a4ccbb581e48ab290b","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.12.3.tgz","fileCount":65,"unpackedSize":141520,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbdSA3CRA9TVsSAnZWagAAKnoP/1GtiH1Sub3HvY/Tw1wk\nAXC8caZZGPSxZFRizhpyj6ZYMKaf2kid63P53N8BBS0vctL+zQPBMdkkFi05\nBrFMf53NIrfVWtTENCf4NaLO5ZEUJzNQDnVM5hDQLkx3jso1BQXUhpOGyfl8\nxo4A0QXsQjjEONBbvOJRP6SatCXGuSfl6Rmlqz1skkG2f5ll9zkzT6YMI0Ju\nRVwi4SEPPlBbwUxrxPHqy2QPo5luxLgTQhAk77sYIx+IsmJ6oHO6JgFQ2qVt\nnEHY+/uVpdMQuMMM0Puvx9qnELZ3k6nsMDT1GoQPzrSuKGb1K38CwHtij3Yp\nSfn8+Ce2Xhozx+ux/0JBl5r0Rkisd/aYZS1dGdXQpr+r1ZjFnG/32bxDXDwa\nQ9IIYKdLEsTY2LPM3r0bCXflMCUnzu6Lr6lPMIIpBIYIvVdaKp1oFMa+SP10\nT+0iMiiWbJ2VFT5etjr4VuSCinT3klWWgxat48Lu6gWIz7Rafd/YWnO+YrTw\nl+CcJvZsZZ+kyLk9iUxAdbSVgb3TkglZy2N9RQuEIGRmhudGaEDNq4l1X1xl\nH72Qq0hTJ7FNRUNOzvxU6nFbyI2qDhzvjDDzVFjcMLAmMiS9tEZwAjZ446IY\nKrNgvJl3ia95alQp3SPFLiNVkzElkEk5Lp5ku7jXRziBkDZaQaFliA2lUV4s\n8jqV\r\n=/mwY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDsNlN1Zh9aHTBcSCm5ua9vly37h8qw2MASh6ViUl1LnAiBEJgxkfa+7PFN7oXKcBJ1bz+dB2On7fIygjw0guT2sWA=="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.12.3_1534402615168_0.9203910982816648"},"_hasShrinkwrap":false},"1.12.4":{"name":"webpack-marauder","version":"1.12.4","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.4.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","meta-data":"^1.0.0","meta-loader":"^0.1.5","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^6.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","semver":"^5.5.0","sina-html-webpack-plugin":"^0.0.7","sinamfe-marauder-debug":"^1.1.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.1.6","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^14.1.1","vue-style-loader":"^4.1.1","vue-template-compiler":"^2.5.16","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.4","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"fdce34b9b48b4eab2624b67a3a2a77301c1225d2","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.12.4","_npmVersion":"6.3.0","_nodeVersion":"10.3.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-c/aj4Lwi46Ig7h34GO+L1YVIxY/7ez3BfTHLOgVXLTOaTa264Dkt1j0kvzTHRYccc9Azd1LdcSmCmbW+T5QONw==","shasum":"873277523ede24d1dced9a6c6bf550ed7ec78573","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.12.4.tgz","fileCount":65,"unpackedSize":141520,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbdSHeCRA9TVsSAnZWagAAnwoP/jo/QVHduM+OpGlVD93o\nvFhSf8KzzHBM3ABdZnnG1eSR7FfMOSyuXckYXTiw7qifLkqNeIfkTCPqdzEs\nIO075R7V4/h6L+MYjyW6abWfKgeqQb3xjADZh7iibuFIWHQ0SoSadFWdSy8G\nv2FiFRQXPUQL+J8u5YaMeeqhaTZotj9nNL4DG+ZiZmW0n5E/K5sZtSXjkzTY\nEGbVocwg8ixtKyfYbFNVJuRebFnfejRSf1iNvNQG0DLkTwTRB7IqjyJPKqvb\nfm9iBURETfUzgSwBiHteag/3FwCtsUvCPN11kqOg2FO9Qb79QZUo0Th/75+z\ng4/c1xOq8ZmLF3TekPCZzZwrWfdIlh0K+cqDF+2ePylJY7kUENHqtOTIYx+k\nJQA0fIwJyWlub+qAGBQRsBP+3nqqhRJ1lTB2rqa7gjen2wIzlI0xt08gj9aY\nil428gwrg3W5MO49SusAxGEoHtdRd/x6kBD/2ctCJL9FDVktyFugf9lABInX\nODVDFkB1mEaFix+II4Prm4wGH01rtGCkuKIDDPNKdRrcK+eb9U3zKiS0YJfy\nhuWwF/NM8z+JnobhCFqS+2tESg4WjRxxjYOz8N2etP7N/lD/foz9St3h7T0S\nXRmol5SnALobXGRvX3yXJp+mQ1/shLaiU2jm/daxrkjKJudLlnowG6BUhuH+\nqQpx\r\n=tMpK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID3M+RDaPeAsgaNsNJ6Mqwhl2ZsceCPm7x+iLx8WXPwqAiBLpZ6jUx1Txz75xTbm5CYuu8/lq+v6eoYlBWLbAXl62A=="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.12.4_1534403037720_0.2617596177818138"},"_hasShrinkwrap":false},"1.12.4-rc":{"name":"webpack-marauder","version":"1.12.4-rc","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^7.2.5","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^2.11.3","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.4.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","meta-data":"^1.0.0","meta-loader":"^0.1.5","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.1.1","postcss-flexbugs-fixes":"^3.3.0","postcss-import":"^11.0.0","postcss-loader":"^2.0.10","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^2.1.0","postcss-url":"^7.3.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^6.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","semver":"^5.5.0","sina-html-webpack-plugin":"^0.0.7","sinamfe-marauder-debug":"^1.1.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.1.6","url-loader":"^0.6.2","vinyl-fs":"^3.0.0","vinyl-ftp":"^0.6.0","vue-loader":"^14.1.1","vue-style-loader":"^4.1.1","vue-template-compiler":"^2.5.16","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.9.2","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.4","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n> 注意：本项目使用了 async/await 特性依赖 Node.js 8.0 以上\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n* [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n* [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n**注意：由于 `yarn` 无法获取自定义参数，请使用 `npm run` 运行本命令**\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n### 启动微信小程序mpvue开发环境\n\n`webpack-marauder` 除了可以做普通web开发，也支持小程序mpvue的开发环境，详情mpvue的使用方法见：`http://mpvue.com/`\n\n```json\n\"wx-dev\": \"marax wx-dev\"\n```\n\n```\nnpm run wx-dev\n```\n\n在项目 `src` 中会创建wx目录装载基本的mpvue的初始脚本，然后会在根目录生成`wx-dist`目录，使用微信开发者工具直接调试此目录即可。\n\n### 微信小程序mpvue打包\n\n``json\n\"wx-build\": \"marax wx-build\"\n``\n\n功能同`wx-dev`，会一次性在`wx-dist`下打包好mpvue构建的小程序代码。\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"bda36a1399910368cc56c4e016d571b9ad9234a2","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.12.4-rc","_npmVersion":"6.3.0","_nodeVersion":"10.3.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-ZogCJXB6Tv9po9o20ZqYcQGJMHDCnKnVmG44DBLY6u9pBbnnNcvpqDpBNqOKLyjF8k3svm/gFRjU/h7Bs8NEkQ==","shasum":"42406a55e201a392bbf11c6746d69a594063f241","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.12.4-rc.tgz","fileCount":65,"unpackedSize":142500,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbfSCWCRA9TVsSAnZWagAAxA8P/3FrOjGTmeFZ45StlXxt\nJYfPnYIMgvIaOvwMSKm9HterN+PQjL+TUJrq0Af7AHFDrC81blpyXyNCGuBA\nyZ5zyIl6kjmmscj61xDsFMKNuvljEWZ5H4By6J0uaEQgB8pjrJS/JcQ8buXI\nKbf1yWab3A6MU6ACQFJD7f6jir1X2JUsxR8kBkcqpEUvxMHzN/zRWv/jyDkr\nux2Ah+N0qj9zoGw6ECc731G3fjWKeUmEWcDp7e5akn5kLAqhMBU+2jbnqEAK\nX7pQ7tgmsuQlXdAllCyxBGZSln4apNotYonK/3ZWjzDEHv1wdn+D8QCWDcGD\n9rYVautNZGme6dKmEDSbbJY2Yr9WQFyZ7UylG1kWsZTWpA3YcHQZ5cwNlfaT\n5M46IYvZXXhrtYNn3omDS8NSdKmF3cayNp8PB1alGRO5pfEb4iOOtWMSH5zt\nsJ0gTjrpZe8isTIM5ydrRWpjxMECKvvwUq+HuIeHcGdxpeanSF0G1i888Trf\nlT8BcrIasXLACqDQ5Wv588vV6q1BP3Xvex8paHCRfHlCVc9xVZ9Cqnu8Hulm\nlB1vE47y4XAeVNF68R/aBhSJQYxCJ9AciIoGrgvw7qhf3iz18fgrjgXD9C0Z\ndz+uIhjGmxyIiMVAwmUX98ohMIT8/z/Ou1dPq60ZfSN+bYI4ovPRltBJJcxt\ndFm8\r\n=ozZ1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCX/DvSHJqaQqqAv8RqsYaTJbP+iJSC6Qey0yrkdCMMLQIhAJuOouS7E1dpK9Py0+iGovV+vl8uaSV5sFlaePtd6o5T"}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.12.4-rc_1534926998175_0.9028530306358917"},"_hasShrinkwrap":false},"1.12.4-rc.1":{"name":"webpack-marauder","version":"1.12.4-rc.1","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.12.2","art-template-loader":"^1.4.3","autoprefixer":"^9.1.3","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^4.1.0","case-sensitive-paths-webpack-plugin":"^2.1.1","chalk":"^2.4.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^3.10.0","dev-ip":"^1.0.1","devalue":"^1.0.4","dotenv":"^4.0.0","dotenv-expand":"^4.0.1","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.0","friendly-errors-webpack-plugin":"^1.6.1","fs-extra":"^5.0.0","glob":"^7.1.2","gzip-size":"^4.1.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^5.1.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.2.0","postcss-flexbugs-fixes":"^4.1.0","postcss-import":"^12.0.0","postcss-loader":"^3.0.0","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^5.3.0","postcss-url":"^8.0.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^8.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","semver":"^5.5.0","sina-html-webpack-plugin":"^0.0.7","sinamfe-marauder-debug":"^1.1.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.1.6","url-loader":"^0.6.2","vinyl-fs":"^3.0.3","vinyl-ftp":"^0.6.1","vue-loader":"^14.1.1","vue-style-loader":"^4.1.1","vue-template-compiler":"^2.5.17","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.13.1","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.4","yargs":"^10.1.2","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^6.1.0","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n> 注意：本项目使用了 async/await 特性依赖 Node.js 8.0 以上\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n* [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n* [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n**注意：由于 `yarn` 无法获取自定义参数，请使用 `npm run` 运行本命令**\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n### 启动微信小程序mpvue开发环境\n\n`webpack-marauder` 除了可以做普通web开发，也支持小程序mpvue的开发环境，详情mpvue的使用方法见：`http://mpvue.com/`\n\n```json\n\"wx-dev\": \"marax wx-dev\"\n```\n\n```\nnpm run wx-dev\n```\n\n在项目 `src` 中会创建wx目录装载基本的mpvue的初始脚本，然后会在根目录生成`wx-dist`目录，使用微信开发者工具直接调试此目录即可。\n\n### 微信小程序mpvue打包\n\n``json\n\"wx-build\": \"marax wx-build\"\n``\n\n功能同`wx-dev`，会一次性在`wx-dist`下打包好mpvue构建的小程序代码。\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"3381ff7b749eb5e6f5a494912032f336b96a6673","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.12.4-rc.1","_npmVersion":"6.3.0","_nodeVersion":"10.3.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-lbz71f07epcyQeI0RzMWM5p/fgk+wlZzijcIV79bmP/5DG1zIXfp8rKBJevllMkUV52+qNEEcJCXF70FC7d3yA==","shasum":"a75ebc3fdd6945f8a0c2e75c27f3d89d5a9d4624","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.12.4-rc.1.tgz","fileCount":57,"unpackedSize":137507,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbgQ6gCRA9TVsSAnZWagAAfHAP/2OZvLtfuwp+rhfZ9xmT\n8FkVsqVqZ/2EvyXpxt7DlC7kpy3495+332IsYypvTeKY8RT9pKaP1GElnDQD\n3FfZpxBA4mNyNXizSA1wkjpoHn6eTECPIV7TVUnvK2l9QePXUv0x+mTQ1j4U\nUqh+eN70lcB6iLZN873700lYTq0TtWxBtOdknaNYjyvhz+LUX/a/f18+trQw\nH9pMCum85SngtN9/rHWyA/v+hYirpnYJ51mikB6An0nSGeYtt6nBTMMJ400L\nPY3f4J8BPqbs71YZMXUrltxGhrQE5tuQ8d4iIi6TOxxNkafrlVzbVgTkI0Fa\n12HWmnWntH3ZKcolaZvzmw7yvjZ6MTNz3Pwfuf3l4iTVXRr9PTjIjL2GuRah\nL1lQpCH+a1UfcjZthCs0pJ5AFXvsZL4frOgyLnxjeLm1owVsrkhxmQqTzkyU\n3PlIdATRO8FBmyFMFWS5v1HY5R0VlAmx93zcT2+KfB67jJm4CWFU18SYsXpw\nHh42BpDZtsw7I01ZpAC2fiNlw0CxAfQnYUYnQD/9oKJ16FA/tFVZOLHNdByQ\nbXTX3JzP6mNoRXHGftZeaZEKw5EJxVpXNMn8YKP1MXi5/BzLyk0s0XhyCuoW\niZLhDRpYHxpfqAbe7igF90O9JS9C9Gf4pVqYa3PxoKnBAgUtbTRdWXvuDMZU\niqP3\r\n=DVkl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDRnkcYnh4WzrTn846JNCojUpQsV3Y7irkZqNTjRGirggIhAJoJ2VMvzErmhsWqFBYyHvvB0AB3Xg21qKlBu+57d5H1"}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.12.4-rc.1_1535184544146_0.8571389522888349"},"_hasShrinkwrap":false},"1.12.4-rc.2":{"name":"webpack-marauder","version":"1.12.4-rc.2","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.13.0","art-template-loader":"^1.4.3","autoprefixer":"^9.1.3","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^4.1.0","case-sensitive-paths-webpack-plugin":"^2.1.2","chalk":"^2.4.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^4.1.0","dev-ip":"^1.0.1","devalue":"^1.0.4","dotenv":"^6.0.0","dotenv-expand":"^4.2.0","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.1","friendly-errors-webpack-plugin":"^1.7.0","fs-extra":"^7.0.0","glob":"^7.1.2","gzip-size":"^5.0.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^6.2.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.2.0","postcss-flexbugs-fixes":"^4.1.0","postcss-import":"^12.0.0","postcss-loader":"^3.0.0","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^5.3.0","postcss-url":"^8.0.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^8.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","semver":"^5.5.1","sina-html-webpack-plugin":"^0.0.7","sinamfe-marauder-debug":"^1.1.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.3.0","url-loader":"^0.6.2","vinyl-fs":"^3.0.3","vinyl-ftp":"^0.6.1","vue-loader":"^14.1.1","vue-style-loader":"^4.1.2","vue-template-compiler":"^2.5.17","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.13.1","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.4","yargs":"^12.0.1","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^7.2.2","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n> 注意：本项目使用了 async/await 特性依赖 Node.js 8.0 以上\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n* [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n* [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n**注意：由于 `yarn` 无法获取自定义参数，请使用 `npm run` 运行本命令**\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n### 启动微信小程序mpvue开发环境\n\n`webpack-marauder` 除了可以做普通web开发，也支持小程序mpvue的开发环境，详情mpvue的使用方法见：`http://mpvue.com/`\n\n```json\n\"wx-dev\": \"marax wx-dev\"\n```\n\n```\nnpm run wx-dev\n```\n\n在项目 `src` 中会创建wx目录装载基本的mpvue的初始脚本，然后会在根目录生成`wx-dist`目录，使用微信开发者工具直接调试此目录即可。\n\n### 微信小程序mpvue打包\n\n``json\n\"wx-build\": \"marax wx-build\"\n``\n\n功能同`wx-dev`，会一次性在`wx-dist`下打包好mpvue构建的小程序代码。\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"21a36d4b25e838d87ccd877a37da7da4bd2006d4","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.12.4-rc.2","_npmVersion":"6.3.0","_nodeVersion":"10.3.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-hv9GSc2q0RmmBl4J55KnfqVjJM2Swb9pE/bAUP6anYbLe+bosUlPgI6hTn49CGZxGHCN8AR4DfBHp3+goA+49Q==","shasum":"1e8e6344f4ebafdea0dd0f693a295c688218c0b6","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.12.4-rc.2.tgz","fileCount":58,"unpackedSize":520024,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbg2rQCRA9TVsSAnZWagAAkw8P/0Sy8JNzj3Hit7hH7Q5N\nB+JUewJ6pMGnfjgGykOcowcq8s4aS6byoMKFJ5Kaxkmy7CKClX0rcqr108jo\nb0L9BUk1d2YktiplWvx4tK2c+QBV4m9k5HNUUgSzTlC8n3OiY5ef3rkBy1SA\nzjKDZzqTZ474FzhNsbiCXAO8MQt8Sw3cyPL43DRd005NlQGaHFDoQgUitIlt\nGuk3CNQ+8qgb57uarJATrWgJddMCpXBW0S4uvQDQM7xBMbHovQ/SVzZAsdw+\nXUR2PNsYMzaA43iYRxr7Nmi9X4zWAz2bFHH8pGTMqYwrHqC3okvMshxvjIyl\nPpmMTW03ULbYKk7/Ef8smhOMZaXq50IM+EmHnFGA49O9em2KI48DR2ICC6kN\n7BSZ7X0XCyTRUsUyvD9Qz/m29PMUmXqza5KYrYp8TIj/X1yPFMse1WRcJz6M\n9LimeHcvtrHd9pMGFLdYA/ikRkLVolKRGEGJlLNyQQfzNLxLQjn4asQeJzuh\ney604g7DMpgItmu3pVqVFEPp9wbXTKxtPjQHm6vEMHtKKGsIeK1iD8covXmf\n5JCphsbB7KOFpVqDmxhvGfzn1FkiNv5Yp5c+Rd862HV5YUJCnYjnZQwJwtVR\n0APafNePjgxNgHzYHvELBo+Bl6VAb67TDtE0OvFpgliI206JnnfwstrlUKUW\n4bnB\r\n=ECyV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICPZzF9pYJpC2QOyURiHO7jtRxMerlTxhdfHRHh+68AUAiEAwapQrNCloR1PmhkUmT5Ysmyf2RxLRtPiKftKm64iS/E="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.12.4-rc.2_1535339215870_0.9507877067134318"},"_hasShrinkwrap":false},"1.12.5":{"name":"webpack-marauder","version":"1.12.5","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.13.0","art-template-loader":"^1.4.3","autoprefixer":"^9.1.3","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^4.1.0","case-sensitive-paths-webpack-plugin":"^2.1.2","chalk":"^2.4.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^4.1.0","dev-ip":"^1.0.1","devalue":"^1.0.4","dotenv":"^6.0.0","dotenv-expand":"^4.2.0","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.1","friendly-errors-webpack-plugin":"^1.7.0","fs-extra":"^7.0.0","glob":"^7.1.2","gzip-size":"^5.0.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^6.2.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.2.0","postcss-flexbugs-fixes":"^4.1.0","postcss-import":"^12.0.0","postcss-loader":"^3.0.0","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^5.3.0","postcss-url":"^8.0.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^8.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","semver":"^5.5.1","sina-html-webpack-plugin":"^0.0.7","sinamfe-marauder-debug":"^1.1.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.3.0","url-loader":"^0.6.2","vinyl-fs":"^3.0.3","vinyl-ftp":"^0.6.1","vue-loader":"^14.1.1","vue-style-loader":"^4.1.2","vue-template-compiler":"^2.5.17","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.13.1","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.4","yargs":"^12.0.1","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^7.2.2","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"cf735a5dedeb1c0975288c6a70576cb53f63aa43","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.12.5","_npmVersion":"6.3.0","_nodeVersion":"10.3.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-B5mmfvDWnhveUGdaHmKBJLe2gQjcwSOIc+c7ZoTnsDsCwTkazYRYhWO/x5E6n2BHIgw3GksXJfZiz4dK/+/n6Q==","shasum":"c3adb6f26b675265204952e4d3d9e596e97d69c3","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.12.5.tgz","fileCount":58,"unpackedSize":520315,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbhRG6CRA9TVsSAnZWagAAjU0P/0EoP7CGY835WYVDQ9Yf\nZjS0aGTnaNm3eyE15tFSQEQNprD3DzC+xq56HAcOyhCe8d9VTaczKo91m0uT\nq55Akx+i/x9yZuqLXy/rtMPrtkLJ8LAYDqzt3dTDLelNmmkAjLm8WyzMIdhN\nJTbmTWhNc/+fSwRzfc8R5XfKvNmmqlHw+5x/s8JXVGF+lYps0xlq/tuja6+e\nvQED/ezE06mVok0Kj6tC3XRhaOm3uH/a8v33gHyg7+fy/nkVSXibl+bZ3Q1M\n5eidEyz/zwhNDP8ndzjrGGYCactOVgcLdMOjLQ9fPYgcbyhchEBrS9nnrKTz\n7fCi599JA1Xcj4qjD8zSK65pMx3nJ9RdQN6ei1XGiYhpNn9kuqKS3zuZuvwh\n6kzooZO+JJWghy5l01UhOKyvJseJr3e2F1lLjdjbSeiJxpyyfoBh5TgleZgn\nNlc513nerdKc+8LXp7aqYEWvbU7p32WAEwl4QH25Ty+vt0r1EQuayPPXydGj\nNwaOKENy6jv1cRPbJIuDyuoZ16otO/fvPJ8pIQuj8z1P58mMfUMFp1c7Kt+m\n2FvFc6V5XeY5I2cOt+diAOYNGPOtgdw8+jv47J5um8JfA8pJ9lGNRNHbNJld\nkbc7XcH3Rdei5F8NjssA5p7ytNBR7NzyVVdTVijkidWWT9S51EBxQ6YFsEpv\n6yLR\r\n=M5/M\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDBfO7TU661drrfMUJ+V3rZrNSVoa4E/b3LhgnHElA4NwIgH0+yf1z3Qmghnsig8QiBnjTssoFBKBEzjUm+SaAllRE="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.12.5_1535447481717_0.05810252280383188"},"_hasShrinkwrap":false},"1.12.6":{"name":"webpack-marauder","version":"1.12.6","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.13.0","art-template-loader":"^1.4.3","autoprefixer":"^9.1.3","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^4.1.0","case-sensitive-paths-webpack-plugin":"^2.1.2","chalk":"^2.4.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^4.1.0","dev-ip":"^1.0.1","devalue":"^1.0.4","dotenv":"^6.0.0","dotenv-expand":"^4.2.0","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.1","friendly-errors-webpack-plugin":"^1.7.0","fs-extra":"^7.0.0","glob":"^7.1.2","gzip-size":"^5.0.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^6.2.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.2.0","postcss-flexbugs-fixes":"^4.1.0","postcss-import":"^12.0.0","postcss-loader":"^3.0.0","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^5.3.0","postcss-url":"^8.0.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^8.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","semver":"^5.5.1","sina-html-webpack-plugin":"^0.0.7","sinamfe-marauder-debug":"^1.1.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.3.0","url-loader":"^0.6.2","vinyl-fs":"^3.0.3","vinyl-ftp":"^0.6.1","vue-loader":"^14.1.1","vue-style-loader":"^4.1.2","vue-template-compiler":"^2.5.17","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.13.1","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.4","yargs":"^12.0.1","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^7.2.2","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"1fad6d95636d9abece127021ac4b657c526d2275","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.12.6","_npmVersion":"6.3.0","_nodeVersion":"10.3.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-kJZUCtUIr73ORIEWU+ZVtiO5XGteJni55z2Eq4rpfYHcvbvb/PKH5crgNS1VUKdD1ajVMTMuvc8Hoy54dlDu/A==","shasum":"6a3c1f29f5496f10f2aa65ae68481dee052b229a","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.12.6.tgz","fileCount":58,"unpackedSize":520537,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbjkN5CRA9TVsSAnZWagAAj8EQAJFvEJrwU6EvahK5wTCQ\nz+sIaiY/hX0arZTBxBQYtGRBmbIDepGTKpxKJqdttozYeKrhe7U9RYhkva3k\nCWhpEr0d5X9xD+kiSXHctj6kYLZ65H9RBsdOYVyeNFy7D7VcNnVySUWvYwIJ\n/O85i57Nj2uXChHnc8FipqUznVA+Y2G7bVf1o8Hw7v2oNJEFM24j6KYD/wXe\n9ISq/6HUeXr3hsDwa+P32rXYs6gB0l1C352K//bbHMSiSeY6jsJHKAqnSn1n\nsJUxSvOOzgxBCH5GMraCJS1dwQTw6NclTuWXtVAf0wllQFE3ZHRmup7y8lTt\ncYvZlqrrAvUpluMU6mdY7byTr9QU1mkl4AiwFLv4Te7Hc6AHAdIzLb3iSWJ0\ntXEHsXZMIWKcK93JSdLjqPxoIGo6GK9/MOHsJpwVxTxEBNftL/jiB8ii/CIK\nUTMgZRXSV69QNtwljAj1otRK1Zq9HbrYSzKCiA+BrLqVlcjdqWIFVQj9s7Np\nnbCH1SE2RW4ZuzMtI49frBlB00ghTx80AN154YcljqjpWoK5gVREywmBAkUs\nELHvd2AtL/+yYwzpl3oLyPq7G5V23/fozUr1XWWHUr+kuoIzWvCs5iK2FnZ0\n1tTL11bld7drxj2xrKlriT/yDEYc5QX4FZUDGOp3JwP8gscn1ceACGj6d5HL\nE83x\r\n=Zs67\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCY0dn98XTgwgLA7eR8xQ+4eJdN6DA8Yl/9DpdA3oPg3QIhANbZBiDc+RIP8OjoHpQXgaaCG7U7es1K0Pd14AcHlmz7"}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.12.6_1536050040340_0.17291460973137052"},"_hasShrinkwrap":false},"1.12.7":{"name":"webpack-marauder","version":"1.12.7","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.13.0","art-template-loader":"^1.4.3","autoprefixer":"^9.1.3","axios":"^0.18.0","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^4.1.0","case-sensitive-paths-webpack-plugin":"^2.1.2","chalk":"^2.4.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^4.1.0","dev-ip":"^1.0.1","devalue":"^1.0.4","dotenv":"^6.0.0","dotenv-expand":"^4.2.0","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.1","friendly-errors-webpack-plugin":"^1.7.0","fs-extra":"^7.0.0","glob":"^7.1.2","gzip-size":"^5.0.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^6.2.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.2.0","postcss-flexbugs-fixes":"^4.1.0","postcss-import":"^12.0.0","postcss-loader":"^3.0.0","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^5.3.0","postcss-url":"^8.0.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^8.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","semver":"^5.5.1","sina-html-webpack-plugin":"^0.0.7","sinamfe-marauder-debug":"^1.1.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.3.0","url-loader":"^0.6.2","vinyl-fs":"^3.0.3","vinyl-ftp":"^0.6.1","vue-loader":"^14.1.1","vue-style-loader":"^4.1.2","vue-template-compiler":"^2.5.17","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.13.1","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.4","yargs":"^12.0.1","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^7.2.2","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"7b0d6e07893177fd7f4262786d70648c972b3244","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.12.7","_npmVersion":"6.3.0","_nodeVersion":"10.3.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-0dzosGKzIw/MUt87IR6lDD2DGd06ZIUGzqViALn1h0u9Ymj7fnd6ytI0qpRoH0OC33ZdJm/WoZm7DfRBp0sQ0w==","shasum":"822dbe8d27f94bc061060542c18cddbc11dfa8b9","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.12.7.tgz","fileCount":58,"unpackedSize":520426,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJboMqLCRA9TVsSAnZWagAAR6YQAJwdQeroNnAmsgVSdFvM\ng0OjC7kpbbn5EstC75LgBnzfSNG7TfgvJDFIemFZilM/kN5IfRqHH4yhK0h8\nTWpqzMpPDjYZ0irX4xjprlDR0rRZcmit44j132zHme7OmbsXw9hdEOAwuv9j\nfEjDzApez2ZQm2rnFrUymMDdHA/gp3KoilPfUv3bNd6Fy3mg7lqIeBM++RsH\nqQ9ZIPPkLQ3mmiUuBvInWCIm4YWRsEKyKuuxL4IdghjNRN9fuWs0yqdCLOxy\nkIDo300LY9C00xAZtWqTx/HkStFZkrZtmwWsEi6o8LqEmmdjfUUI7KO3NVQ6\nfdVPumiUnOSdAf2BVaNU2ssYaFABKiovDS6SYHfb+6PjZxcSeYtvF4BLAwgn\nJSIcUSBEZZBv/Df7ozc7LN6UbPUMRRIK4pL05dz+FMheVV5C5CxBY3TqU/LQ\nFKU6mOE4LXC1JlL8ToWi75uzr5RFtX5SOAnBgiyzVhK2iCo6c0WNA6zG7mo1\nZZfhMCMicPknD9kUPJYP31SXHhqixA1sIgeY/JUrJw1MlcM6E7WORbXcpmtN\nkZEIRhZblhde+EIalxoWJ4VggWbY1vT4kP1o+nDcK4N8GYtfcUCIYnlzugcR\nlm3F6sBrMZhQ9jZldXWRYN773phaciHjFu0FNTxzxwrnfuQGUyK8QaHNpQgD\nYx9T\r\n=8/RO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGQmhJDok0WmExbiu3fe2VOyKW6MmMp/2hTVeZBCo5TVAiEAnsxWMyQEZdf3+Fj4vMWHIWV/JSxpVHNlFoJWbnHjIM4="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.12.7_1537264267008_0.20762345403540583"},"_hasShrinkwrap":false},"1.12.8":{"name":"webpack-marauder","version":"1.12.8","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.13.0","art-template-loader":"^1.4.3","autoprefixer":"^9.1.3","axios":"^0.18.0","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^4.1.0","case-sensitive-paths-webpack-plugin":"^2.1.2","chalk":"^2.4.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^4.1.0","dev-ip":"^1.0.1","devalue":"^1.0.4","dotenv":"^6.0.0","dotenv-expand":"^4.2.0","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.1","friendly-errors-webpack-plugin":"^1.7.0","fs-extra":"^7.0.0","glob":"^7.1.2","gzip-size":"^5.0.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^6.2.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.2.0","postcss-flexbugs-fixes":"^4.1.0","postcss-import":"^12.0.0","postcss-loader":"^3.0.0","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^5.3.0","postcss-url":"^8.0.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^8.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","semver":"^5.5.1","sina-html-webpack-plugin":"^0.0.7","sinamfe-marauder-debug":"^1.1.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.3.0","url-loader":"^0.6.2","vinyl-fs":"^3.0.3","vinyl-ftp":"^0.6.1","vue-loader":"^14.1.1","vue-style-loader":"^4.1.2","vue-template-compiler":"^2.5.17","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.13.1","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.4","yargs":"^12.0.1","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^7.2.2","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"41a15eb9bd11d5c9ff8ae2f65dbba0092846a570","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.12.8","_npmVersion":"6.3.0","_nodeVersion":"10.3.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-vn+nuROYpihhWVKOoKYrDO2j54+jKx3h6B1D3gRa8ptRniPCbM+lCP7XMC55XVS7lNpP9EH6ATqM0B8HUbSKrA==","shasum":"de26f02c2dec7618ad3683556535a2417adbce84","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.12.8.tgz","fileCount":58,"unpackedSize":520716,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbqgGTCRA9TVsSAnZWagAA/IkP/Ail4kKqvqUtJYHmyaar\nVY8HXCeonBr0QaSijD3+aFN0suVZSuCZ0rjhScKs7i43JUuDhkPqNl6zdiaU\nJN/KV+zsN175Rckhs/Abg6wrpsHJjDUl5a4XLtnwc4cFEzYe25IEFpb+6jIh\nNCmWRfw2fCHYDdYuvNGnQmkE+/B8Q7X5gRHrGEtFyyX0x6r4apyLTQJOlgGc\ngBMXny3CkxUijxVYLEdcbegDpwIELJ2QmsZ1Hw62NbOCmeoDMqDQU7s0UBbZ\n98uxqcS4X+L/Bzji3U0/zn27IiyvleDW4SWeZPp+yb8AtpfYxWpq0ix8edXC\nqTOyKqZpn0XqYhH1RUHpsKQrkdjjFgQ1ah30TwHBb1/e/uIp5TOaPwCu0ETB\nxfRPg9q0m1IU8sODlVJIUz2Fm4PCmseH1U6cE9Gvt5Yz7H/nQJlqRTFX2SBj\ndqEu+OsahYX1GeNh1G8hpmRJh07pYNYjhkaNyuPrEUUKO993gNuo3X9Ldcf+\npa8nBYM4WhOWmdCciIoTlGBjckqNgh28g9TvzcEJiv/rgdieJxwhKSa4okoy\nNc+85OImv4QcEyBEeJU2hC3w0z+fF/vhuxICxyUkHIp1YzVSvYm2/fVzWe38\nl9b0LJ7oyBaSS9Z4i/T8q4xcs5hvQRsTavLExIWlmBr2mv14Ll5GRkIF/lWq\nK3Pp\r\n=ooy/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDWViUcSDHRCncNvHE9SPyqRrk+fZqYtFzDRRl96vlapwIgeuK8zyp745IEzh1OvIpwybA86Tib0e5e83TfN1U6iwE="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.12.8_1537868178403_0.9826281795318439"},"_hasShrinkwrap":false},"1.12.8-0":{"name":"webpack-marauder","version":"1.12.8-0","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.13.0","art-template-loader":"^1.4.3","autoprefixer":"^9.1.3","axios":"^0.18.0","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^4.1.0","case-sensitive-paths-webpack-plugin":"^2.1.2","chalk":"^2.4.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^4.1.0","dev-ip":"^1.0.1","devalue":"^1.0.4","dotenv":"^6.0.0","dotenv-expand":"^4.2.0","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","ts-import-plugin":"^1.5.5","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.1","friendly-errors-webpack-plugin":"^1.7.0","fs-extra":"^7.0.0","glob":"^7.1.2","gzip-size":"^5.0.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^6.2.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.2.0","postcss-flexbugs-fixes":"^4.1.0","postcss-import":"^12.0.0","postcss-loader":"^3.0.0","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^5.3.0","postcss-url":"^8.0.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^8.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","semver":"^5.5.1","sina-html-webpack-plugin":"^0.0.7","sinamfe-marauder-debug":"^1.1.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.3.0","url-loader":"^0.6.2","vinyl-fs":"^3.0.3","vinyl-ftp":"^0.6.1","vue-loader":"^14.1.1","vue-style-loader":"^4.1.2","vue-template-compiler":"^2.5.17","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.13.1","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.4","yargs":"^12.0.1","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^7.2.2","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n> 注意：本项目使用了 async/await 特性依赖 Node.js 8.0 以上\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n* [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n* [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n**注意：由于 `yarn` 无法获取自定义参数，请使用 `npm run` 运行本命令**\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n### 启动微信小程序mpvue开发环境\n\n`webpack-marauder` 除了可以做普通web开发，也支持小程序mpvue的开发环境，详情mpvue的使用方法见：`http://mpvue.com/`\n\n```json\n\"wx-dev\": \"marax wx-dev\"\n```\n\n```\nnpm run wx-dev\n```\n\n在项目 `src` 中会创建wx目录装载基本的mpvue的初始脚本，然后会在根目录生成`wx-dist`目录，使用微信开发者工具直接调试此目录即可。\n\n### 微信小程序mpvue打包\n\n``json\n\"wx-build\": \"marax wx-build\"\n``\n\n功能同`wx-dev`，会一次性在`wx-dist`下打包好mpvue构建的小程序代码。\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"a83be40886f5ea31b4fb038a61e6352acf76862c","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.12.8-0","_npmVersion":"5.6.0","_nodeVersion":"10.2.0","_npmUser":{"name":"happybang","email":"franktech84@gmail.com"},"dist":{"integrity":"sha512-ZdZuRzUKbwGz4UJIIDHQtW6V1+dXmHSvou1+ioPCkCHUnXM3mIfWGYT03903IDtrNNMJjCd4otronaHtdW0Z2Q==","shasum":"7628647e5991ba8701b525b56fb6a2336f6e940d","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.12.8-0.tgz","fileCount":57,"unpackedSize":139372,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbx/BNCRA9TVsSAnZWagAAAH4P+gMzq0Yx68z6kusRX/8F\ntkqKuzhoGRkNB21CKXcs4SNqSutaEN0e70bt0mTIfPH9ceJh5hmQdjTFHiMm\nV9S6aKNuER1XWVnncGaVO7/dwkQVuX4NxGEWtsFyssYJwT445msM8eHGhU7f\nstiDBGBKPXxLAx8BvoeguBufQ3FlK0l22rSpNJ+4SvOYs9Efgl7TlG/3o1qm\nUF+fZWMcWLqcTtJ2mHvcSIGN9bePydNcfFmyyfLXXCJ4qlTmlopTsq2C+VNe\nt+8rwmbngUirJEzBSCi5VaFkSwgFLL3NuEwwZbnI2zvagRyXMmnba1f8rldf\nSz/Fsnf8/rmjzaD7TXYTx0t07Ms6ycwAXPjV7dgnKgLyqjGl6f1m8+SrBGGZ\nmcln4SN+48VZzgveJ2vhZ9dQwwJFfarALYt88K/gsPeSSOtYFbeKDju+/Qg4\ndti6o6kwBgWO2hoUpwECFxUd1dMYu8yiM3m8n3eDzVaXR2jiDFA30+UgIB7G\nAbE3tKygpStIisixjHC6sYSAYjgD+HMyKfQc1tR7u+UET+NdEKlj1jKzLo7Z\n0JbiiBFrmme13y9+b+oQ+cCUIhi3wsV7qQ/zMXL7jENQ0X4sHqq3n1T7e01e\nn1GyXdZgqCYFN84pTPicLAXuwq8ACvEVBomNumflrnWTs8IMrD8xh0NLdU+A\nM/KC\r\n=5gMH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC+rMdoFj6LOQWqyZAkgQPVJKKkIJ6u5W/CcUZ+edPBBAiEA8Izq+N7eftXEiN2yCKRCUeUGrrMB2nmTypPi7WyDMPM="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.12.8-0_1539829836973_0.0014056022022090886"},"_hasShrinkwrap":false},"1.12.8-1":{"name":"webpack-marauder","version":"1.12.8-1","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.13.0","art-template-loader":"^1.4.3","autoprefixer":"^9.1.3","axios":"^0.18.0","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^4.1.0","case-sensitive-paths-webpack-plugin":"^2.1.2","chalk":"^2.4.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^4.1.0","dev-ip":"^1.0.1","devalue":"^1.0.4","dotenv":"^6.0.0","dotenv-expand":"^4.2.0","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","ts-import-plugin":"^1.5.5","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.1","friendly-errors-webpack-plugin":"^1.7.0","fs-extra":"^7.0.0","glob":"^7.1.2","gzip-size":"^5.0.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^6.2.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.2.0","postcss-flexbugs-fixes":"^4.1.0","postcss-import":"^12.0.0","postcss-loader":"^3.0.0","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^5.3.0","postcss-url":"^8.0.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^8.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","semver":"^5.5.1","sina-html-webpack-plugin":"^0.0.7","sinamfe-marauder-debug":"^1.1.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.3.0","url-loader":"^0.6.2","vinyl-fs":"^3.0.3","vinyl-ftp":"^0.6.1","vue-loader":"^14.1.1","vue-style-loader":"^4.1.2","vue-template-compiler":"^2.5.17","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.13.1","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.4","yargs":"^12.0.1","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^7.2.2","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n> 注意：本项目使用了 async/await 特性依赖 Node.js 8.0 以上\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n* [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n* [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n**注意：由于 `yarn` 无法获取自定义参数，请使用 `npm run` 运行本命令**\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n### 启动微信小程序mpvue开发环境\n\n`webpack-marauder` 除了可以做普通web开发，也支持小程序mpvue的开发环境，详情mpvue的使用方法见：`http://mpvue.com/`\n\n```json\n\"wx-dev\": \"marax wx-dev\"\n```\n\n```\nnpm run wx-dev\n```\n\n在项目 `src` 中会创建wx目录装载基本的mpvue的初始脚本，然后会在根目录生成`wx-dist`目录，使用微信开发者工具直接调试此目录即可。\n\n### 微信小程序mpvue打包\n\n``json\n\"wx-build\": \"marax wx-build\"\n``\n\n功能同`wx-dev`，会一次性在`wx-dist`下打包好mpvue构建的小程序代码。\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"84ded53e3b0c52dfefbe2c3c08911de762b58b29","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.12.8-1","_npmVersion":"5.6.0","_nodeVersion":"10.2.0","_npmUser":{"name":"happybang","email":"franktech84@gmail.com"},"dist":{"integrity":"sha512-mKXerpI9fDOI0UuTaGU+KzotddK2N4+QD15nszs/YA7pORdgTegjB9wVv47B0GrZ1WjtXsj5PI+yXFAPHWPxSw==","shasum":"c12ab20f1a52f2490b71c08fdb62ccf6148d2ad7","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.12.8-1.tgz","fileCount":57,"unpackedSize":139269,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbyDRNCRA9TVsSAnZWagAA2TIQAJqy4jYU7/CJp4Jghq3Y\n1ffxq8CdoscWkJI/e2B5IwvpX+liifTQpf54R7AHuh2NbXg278OddEO5SCFT\nlt0k432hR0m73/c37R+FMjOm37l4ubYWtfULw08/QlHfPEtQ1mQY/R9bL8tp\n5Wim8OEU/8jxbqiWmLXKA9tkeUzFYKXbGMspJCzodcdIyMa5i3ZIWfu9bzi9\nRKjJmnKgPAMBiY2gv2DdphOy80wbscV0Yl0vs8Ih6HR/MHJeKPV6Hxb9MTzm\nitffjh9vHBJFLfXEEIa0YpXbYmQgPDFrVT/ZuHekdv9612947EKGhw9BbNn6\no+LwVoLCh+vuVcU98/JEJLkw3pRyaGF3qDOr788lWvEbiklK6HqK9Y8V8qB4\n8MbFgxXeG1ji8RQzJhD8KNudXNZbh9x271UBcigtJnY6eq0DCPRKG1WSMbnA\noeAqBebSPY/YA1UdJm36HXSG78KeoqZPqwg/R4PFqjdIMhtERC2UWXuBlTeG\nNMT4d9uxYtIEDaMOsK6ybur2ARsOyoRgo3n0gnDgf3OakDGbfzsDNIbnbar7\nphlt81lZ3EaCagIUqAlFPp7+NrDsgaBSbMV9Wm0R1znRnFvsJbEok0crBq8B\nILYhlF7mA+nwTdEEbobWlpAcXDdOSX7eum4/FkcpWWQf1DDtF6X4bSQXa1Y8\nIVf1\r\n=eKUm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCqmtmDM1LvUtiWzAZIUk9WAjuhg2RyAtJwH//QQBo/UwIgeZsvBvI5xciFyrok91IiY1XjDtDiAuyzTyYjJKkZbQo="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.12.8-1_1539847244878_0.742137628159917"},"_hasShrinkwrap":false},"1.13.0":{"name":"webpack-marauder","version":"1.13.0","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.13.0","art-template-loader":"^1.4.3","autoprefixer":"^9.1.3","axios":"^0.18.0","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^4.1.0","case-sensitive-paths-webpack-plugin":"^2.1.2","chalk":"^2.4.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^4.1.0","dev-ip":"^1.0.1","devalue":"^1.0.4","dotenv":"^6.0.0","dotenv-expand":"^4.2.0","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","ts-import-plugin":"^1.5.5","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.1","friendly-errors-webpack-plugin":"^1.7.0","fs-extra":"^7.0.0","glob":"^7.1.2","gzip-size":"^5.0.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^6.2.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.2.0","postcss-flexbugs-fixes":"^4.1.0","postcss-import":"^12.0.0","postcss-loader":"^3.0.0","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^5.3.0","postcss-url":"^8.0.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^8.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","semver":"^5.5.1","sina-html-webpack-plugin":"^0.0.7","sinamfe-marauder-debug":"^1.1.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.3.0","url-loader":"^0.6.2","vinyl-fs":"^3.0.3","vinyl-ftp":"^0.6.1","vue-loader":"^14.1.1","vue-style-loader":"^4.1.2","vue-template-compiler":"^2.5.17","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.13.1","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.4","yargs":"^12.0.1","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^7.2.2","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"21b24e1173a2f3e74a82f21a125ae4e2ef9c66e7","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.13.0","_npmVersion":"5.6.0","_nodeVersion":"10.2.0","_npmUser":{"name":"happybang","email":"franktech84@gmail.com"},"dist":{"integrity":"sha512-5Sk/DoXSzefzdx/4W0rTcNFyEVXXEDeFDtPJg7yhFXtKA2N0kHwAxw9bOG8emYrMSUxt19cfnGXDKPgkz9E02g==","shasum":"63bb62c8a893d2d76a6a5abe68bc58e11e477064","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.13.0.tgz","fileCount":57,"unpackedSize":139267,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbyE/BCRA9TVsSAnZWagAAnugP/AtC3vYLcwTMmXIiz6fl\nEi2uAMYcatW15Z1fQrvkO7kM3Cth4DtpPXR+UHFIA8hRWT30d+xZ1FzjUVwZ\nLv0vzAlNafgfYcCseQ0angtWzyDZW0piWlDkMBGPYc4hMQg24HXoBDKSCXbf\n9oyQm0DzfkuH4d8WbEQa7MfIY2VQAM+mElOhoUzUkMDwcUYvhMFjLKoj23UF\n0PlzjNaSlTtq+guFT0AqT2S1mFq2qSSV12yaBc8Pf9m/SsTI6DRpj+sY2U3D\nLLBsKY6jUVGXvtlr0Ts+gAP15ksO/BnuAvmE1qo0voAblOkwdjTjCu+mponn\nVLh2sQ7ttKkHCEQx7oo4dqfphwvyU2CMWPUocElrg8t5qRlix2Hwu4Ba/OO7\nyBePUq8Lq5Pf4O4smkDUv4vXnPW3H8BPYBSkueCsr7GM+cekR9XShqAv5l09\nXFZKEXmv3doTnsX2DXm/sXYshdaldUVb5dfbWna6dudw1wsCqbGG2OEL46el\n8kSNk2t3h/Q3RhWQdqUe5yIHwktajxbBgPkYgSTxddJvRT2/ghyQnalVK6AH\nD4a+6VuHTEfmkXq69X2PYnB9fCZRywGATWkv6YSozI1o9wlYo6eSNUDib04Q\nRk+QzfgHI7sEJqyIvGv+gHB6L1WhCD4XjB02H/J4fnonLreBtQqItroQsVIU\n2oYq\r\n=eA76\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCnfzq6pV2H9RlvbX0CNzyd3Yzghnw+qAChGdzE+zW6TwIhAP5VnElQ45JghANn5VfYFt7VQtWfG1wHqE91SbkMFc8n"}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.13.0_1539854272410_0.2905520558121817"},"_hasShrinkwrap":false},"2.0.0-beta.0":{"name":"webpack-marauder","version":"2.0.0-beta.0","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/plugin-proposal-decorators":"^7.1.2","@babel/types":"^7.1.3","acorn":"^5.5.3","art-template":"^4.13.0","art-template-loader":"^1.4.3","axios":"^0.18.0","babel-core":"^6.26.3","babel-eslint":"^10.0.1","babel-jest":"^23.6.0","babel-loader":"^8.0.4","babel-plugin-inline-json":"^1.2.2","babel-preset-react-app":"^5.0.4","babel-runtime":"^6.26.0","browserslist":"^4.2.1","cache-loader":"^1.2.2","case-sensitive-paths-webpack-plugin":"^2.1.2","chalk":"^2.4.1","copy-webpack-plugin":"^4.5.4","css-loader":"^1.0.0","cssnano":"^4.1.4","dev-ip":"^1.0.1","devalue":"^1.0.4","dotenv":"^6.0.0","dotenv-expand":"^4.2.0","duplicate-package-checker-webpack-plugin":"^3.0.0","eslint":"^5.7.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^2.1.1","file-loader":"^2.0.0","filesize":"^3.6.1","fork-ts-checker-webpack-plugin-alt":"^0.4.14","friendly-errors-webpack-plugin":"^1.7.0","fs-extra":"^7.0.0","glob":"^7.1.2","gzip-size":"^5.0.0","hash-sum":"^1.0.2","html-loader":"^0.5.5","html-webpack-plugin":"^4.0.0-beta.2","html-withimg-loader":"^0.1.16","inquirer":"^6.2.0","jest":"^23.6.0","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mini-css-extract-plugin":"^0.4.4","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^5.0.1","ora":"^1.4.0","pnp-webpack-plugin":"^1.1.0","portscanner":"^2.2.0","postcss-flexbugs-fixes":"^4.1.0","postcss-import":"^12.0.0","postcss-loader":"^3.0.0","postcss-preset-env":"^5.3.0","postcss-safe-parser":"^4.0.1","postcss-url":"^8.0.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^8.1.0","raf":"^3.4.0","react-dev-utils":"^6.0.5","sass-loader":"^7.1.0","semver":"^5.5.1","sina-html-webpack-plugin":"^0.0.7","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","terser-webpack-plugin":"^1.1.0","tinify":"^1.5.0","ts-loader":"^5.2.2","url-loader":"^1.1.2","vinyl-fs":"^3.0.3","vinyl-ftp":"^0.6.1","vue-loader":"^15.4.2","vue-style-loader":"^4.1.2","webpack":"^4.23.1","webpack-bundle-analyzer":"^3.0.2","webpack-dev-server":"^3.1.9","webpack-manifest-plugin":"^2.0.4","webpack-merge":"^4.1.4","yargs":"^12.0.1","zip-webpack-plugin":"^3.0.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^7.2.2","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n> 注意：本项目使用了 async/await 特性依赖 Node.js 8.0 以上\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n* [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n* [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n**注意：由于 `yarn` 无法获取自定义参数，请使用 `npm run` 运行本命令**\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n### 启动微信小程序mpvue开发环境\n\n`webpack-marauder` 除了可以做普通web开发，也支持小程序mpvue的开发环境，详情mpvue的使用方法见：`http://mpvue.com/`\n\n```json\n\"wx-dev\": \"marax wx-dev\"\n```\n\n```\nnpm run wx-dev\n```\n\n在项目 `src` 中会创建wx目录装载基本的mpvue的初始脚本，然后会在根目录生成`wx-dist`目录，使用微信开发者工具直接调试此目录即可。\n\n### 微信小程序mpvue打包\n\n``json\n\"wx-build\": \"marax wx-build\"\n``\n\n功能同`wx-dev`，会一次性在`wx-dist`下打包好mpvue构建的小程序代码。\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"c9a832b898c3827d41d93c3cdb9cb7e606491f66","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@2.0.0-beta.0","_npmVersion":"6.4.1","_nodeVersion":"11.0.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-s+8lfq5sEpNG0/QZ9YG5FMOQ95/rIrrmvUPwe20vFOaFg4PxZsHJLVS+EPijeWuSNh+8yENi6YhZ4Tmk0rJX1Q==","shasum":"96bf272b2db06841be6bc638af21f67e0168610f","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-2.0.0-beta.0.tgz","fileCount":46,"unpackedSize":506891,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb2y4xCRA9TVsSAnZWagAAY8EP/3nY8F2yF4vHD8Qmx4aY\nisacHgCfcGzhlJrnCDbFgnP2NJ5e3xzFRQVoVZ2/eyuSjPgz1ra+ly8PUpcx\nrH5p+NvI0gLW67bAq3545xbHAZstSSeYgDyuspml3KT60vwxRZBkkYd1PCHG\n729J69/swXrc2XAHVKxh+Fb5bF/1NBLt+mf/sr2TPM84FXKlxgPb5dr1mb3C\net+yRpMLQOF04Ie9AvsXguuk/noIN1vlENucS4x07eQ6yzZZ6GvS0xkqQRFG\nrZ5HENMT80otRpbPDLzGtZkhvbeZadrbW2r32fFtfc5fhHBJk77WSa17IoqR\nd7cK8DKgC8V8jr4/mg8E7SxBrP5VtkMOaFvvMdeAJ10ciNoDVVShrwq42PCG\nITJl3UfTK3YLtUP7NuI9ypqvm19Bge7+2zxyU9gH7jc5tG1RlHn2BAXyH8As\nSraUwJllkPotN8DUs385QlOOjc2O8rzDPG5q9JYSP+L08WdF0C8+YXYmOkt6\nrOInDiDSBQ6FzbJYrowIQquTJJMRS46wVZuVAqyQtsAnrBHPk0Bmn6j0HZFp\nA6/MrwexrFZNIcmxitUpA6DOMU4yvnXA1bmu1V1166jx/R08/uI/pGCPBWmm\niZTUYkiYcOl5hbRgSzB7y97q0Qsdi2VISfIWq45i4QQDF6lbeQI+rlTL8rzF\n2z39\r\n=/rVS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDk2mM4ebkAH1IpvZs0laDQFML6KBf/FwqNxHCeqndVOwIhAIQZGhFA0WX0pijYEaM3GqzXTnhrL1FbD+zJE4nvzOc3"}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_2.0.0-beta.0_1541090864639_0.2512262678365351"},"_hasShrinkwrap":false},"1.14.0":{"name":"webpack-marauder","version":"1.14.0","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.13.0","art-template-loader":"^1.4.3","autoprefixer":"^9.1.3","axios":"^0.18.0","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^4.1.0","case-sensitive-paths-webpack-plugin":"^2.1.2","chalk":"^2.4.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^4.1.0","dev-ip":"^1.0.1","devalue":"^1.0.4","dotenv":"^6.0.0","dotenv-expand":"^4.2.0","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","execa":"^1.0.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.1","friendly-errors-webpack-plugin":"^1.7.0","fs-extra":"^7.0.0","glob":"^7.1.2","gzip-size":"^5.0.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^6.2.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.2.0","postcss-flexbugs-fixes":"^4.1.0","postcss-import":"^12.0.0","postcss-loader":"^3.0.0","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^5.3.0","postcss-url":"^8.0.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^8.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","semver":"^5.5.1","sina-html-webpack-plugin":"^0.0.7","sinamfe-marauder-debug":"^1.1.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-import-plugin":"^1.5.5","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.3.0","url-loader":"^0.6.2","vinyl-fs":"^3.0.3","vinyl-ftp":"^0.6.1","vue-loader":"^14.1.1","vue-style-loader":"^4.1.2","vue-template-compiler":"^2.5.17","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.13.1","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.4","yargs":"^12.0.1","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^7.2.2","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n> 注意：本项目使用了 async/await 特性依赖 Node.js 8.0 以上\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n- [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n- [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n#### Test 发布\n\n使用 Test 发布功能，需在 `marauder.config.js` 中注册 gitlab privateToken 信息。\n\n在 `build` 命令基础上，可通过添加 `--test` 参数发布到测试环境。\n\n```bash\nnpm run build [page_name] --test [tag_message]\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n### 启动微信小程序 mpvue 开发环境\n\n`webpack-marauder` 除了可以做普通 web 开发，也支持小程序 mpvue 的开发环境，详情 mpvue 的使用方法见：`http://mpvue.com/`\n\n```json\n\"wx-dev\": \"marax wx-dev\"\n```\n\n```\nnpm run wx-dev\n```\n\n在项目 `src` 中会创建 wx 目录装载基本的 mpvue 的初始脚本，然后会在根目录生成`wx-dist`目录，使用微信开发者工具直接调试此目录即可。\n\n### 微信小程序 mpvue 打包\n\n`json \"wx-build\": \"marax wx-build\"`\n\n功能同`wx-dev`，会一次性在`wx-dist`下打包好 mpvue 构建的小程序代码。\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"c1200c8eacda81707feac07ac9efe2ff0820d5f6","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.14.0","_npmVersion":"6.4.1","_nodeVersion":"11.0.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-Vk1RpdWvGGeMDtYHeokRrJ+X9Anep4phFNVyM4dVpt1dR3i0MAG3fez/oiWofSJ2tZHLuhbEs7p+4IeLy4JL+g==","shasum":"a15d08964977e22a9f7e7a99672c6bf1dc68e3c8","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.14.0.tgz","fileCount":57,"unpackedSize":147116,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb/9GFCRA9TVsSAnZWagAAyMAP/3h7I3IUGiLpnAGLkej5\nt7cJY7ow1PYAhxUQmIwpdu8DVhdsP05vlMy7b77jM/jfTSVR1Xj07NVnVTQN\ndl+mtATnPG1oL7hR7ywf3ZnTl7Rq7DNLRdh87dHJoLIXzRnG2VJroFMgqGoW\nLqnW7DT+mJGrmzlrhh30Tv4GKUFRh38WE3aDkA79QKpV2x17vfGUysd+oPob\n/5CLWlG1RpL+N7+JC6/WQPpkVx1UaZIvMkd0fhmu1pdNNJq4kpBHHwIivQBD\nI8nQgigqW0ywz8UDJiHAcA+yCyV1lTbONw7xrd8efk8G4WxlQL/uT6qoz221\nbKZK3D8UiOLJD6bBvOID73tQhQza8HJDkraDjHIZHbOCteXW9vdiU+E2VJfB\nzUj2iTN/x4YGB9pTA/DXgTcHan8gL8j8prLjcEWEqSk302kw8j7tfnkSDzHM\ns/XRqhtGaTK0vX7JPp6YD9mj6hlYX2wgWkzgy6IvC95oGnSCl7i6jUAYQkQ2\nM/u8pPaocej68isuHIBUXbkkDmMpaAwAB/lRMMKeUmgdoWVcfGG/JeIA7R1P\nzYBncl4DttQSHMrHbXoENowacwOeQ11dF0/G5Q/sbcd+MF54o93XEsF1Jw/C\nDbTH3JKD3vyu3FAEIMr1EPIaGlodM8a08Zj592+vTRFqFd9uLOKXHW6mLrDI\n6XeO\r\n=vUzL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCUqwe+oSOSbvMhIt+nDQsIIWlJ6prt7ybWwaR79Sn+SQIgTMm657S5VwAb53kGrQr6iynS9OFI6WkgrrLLCTuF0+Y="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.14.0_1543491972403_0.709974223971426"},"_hasShrinkwrap":false},"1.14.0-beta":{"name":"webpack-marauder","version":"1.14.0-beta","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.13.0","art-template-loader":"^1.4.3","autoprefixer":"^9.1.3","axios":"^0.18.0","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^4.1.0","case-sensitive-paths-webpack-plugin":"^2.1.2","chalk":"^2.4.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^4.1.0","dev-ip":"^1.0.1","devalue":"^1.0.4","dotenv":"^6.0.0","dotenv-expand":"^4.2.0","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","execa":"^1.0.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.1","friendly-errors-webpack-plugin":"^1.7.0","fs-extra":"^7.0.0","glob":"^7.1.2","gzip-size":"^5.0.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^6.2.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.2.0","postcss-flexbugs-fixes":"^4.1.0","postcss-import":"^12.0.0","postcss-loader":"^3.0.0","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^5.3.0","postcss-url":"^8.0.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^8.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","semver":"^5.5.1","sina-html-webpack-plugin":"^0.0.7","sinamfe-marauder-debug":"^1.1.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-import-plugin":"^1.5.5","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.3.0","url-loader":"^0.6.2","vinyl-fs":"^3.0.3","vinyl-ftp":"^0.6.1","vue-loader":"^14.1.1","vue-style-loader":"^4.1.2","vue-template-compiler":"^2.5.17","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.13.1","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.4","yargs":"^12.0.1","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^7.2.2","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n> 注意：本项目使用了 async/await 特性依赖 Node.js 8.0 以上\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n- [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n- [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n#### Test 发布\n\n使用 Test 发布功能，需在 `marauder.config.js` 中注册 gitlab privateToken 信息。\n\n在 `build` 命令基础上，可通过添加 `--test` 参数发布到测试环境。\n\n```bash\nnpm run build [page_name] --test [tag_message]\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n### 启动微信小程序 mpvue 开发环境\n\n`webpack-marauder` 除了可以做普通 web 开发，也支持小程序 mpvue 的开发环境，详情 mpvue 的使用方法见：`http://mpvue.com/`\n\n```json\n\"wx-dev\": \"marax wx-dev\"\n```\n\n```\nnpm run wx-dev\n```\n\n在项目 `src` 中会创建 wx 目录装载基本的 mpvue 的初始脚本，然后会在根目录生成`wx-dist`目录，使用微信开发者工具直接调试此目录即可。\n\n### 微信小程序 mpvue 打包\n\n`json \"wx-build\": \"marax wx-build\"`\n\n功能同`wx-dev`，会一次性在`wx-dist`下打包好 mpvue 构建的小程序代码。\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"c1200c8eacda81707feac07ac9efe2ff0820d5f6","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.14.0-beta","_npmVersion":"6.4.1","_nodeVersion":"11.0.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-d7eyH3SDPpSggt+e3lx9G/ZSkVPjbBdwFV4YWJNkQm7vpFI4e6cLzAQ0hlF4NKMKdJwl3vLg7319A95OEubrKg==","shasum":"c6329dd01c1d167491d914766a71f4faad1beab4","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.14.0-beta.tgz","fileCount":57,"unpackedSize":147121,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb/9GcCRA9TVsSAnZWagAA6cYP/177MyWIehhInq9gjriz\nrdMROKkqUC7VF+xBI/LdVMwAHWgD3DkAWjAH0SXMbz/Pmq+ddhOGp7ImDoh1\nn33TyOXtmw80DMwDwjl/FDgu3E/zHRRcGkpKsVutDY7m4fqglLw4zraXfe2s\nKK1f9xpyJbU2ZCSdZz+t2N34v8xgVD65JytUha9BMKSIA65AHm9bP0zKr4aX\njp/FHdFbA83o9+0eN9F4hPtOnxLgqJgiIdOijxg0kvM5TiU2uqDnfaNRnTuL\nqsiFzko+/fK61sDRkldw3LLbUoIx/7i5E7phUlHMcNW9E/2VK7wGesVlKR9Q\nS8oVVpTMfKByoUm6Ws8PV+Zd7LCkI6+GU4SEBBkCtCjpd6HBDJb2omRh6aHd\nbkpBZJeKkpJnU0Rs1AK60knuwtLLpJRZW6DNqcV38oadDorEWGmX2qNlvai3\ngG3M8TwYrgXd4hqjOoHg/MDsCF94x+jE3KWe0QUS1iqLm2iQUPWOvqa+uP0y\nITBbzK4VWl1nEqBfzGoVNZqwZVZMKE5dsV7Gtw9Fs4oZT3+w7KCmbleyisKv\nYT+25yNg/cqYAEnbay5DO+d+mQv/5NOG1Zg2WQJ+t0PHM56QP8pajDcUOnP4\n3oxdLD8n/KgZLqtdEItXHmY2xtcERbXwLjNgqgrcUkkpouvv0K4jyQI+VdpP\nszf3\r\n=0sCU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIENOnFC/Omf29C2L3fNZyV58TBvME8F+uLFO9R7QjYnoAiAVXN2jzllNam2+INQlVcq62C4ZHW7hVTmg/iUI4zPoLw=="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.14.0-beta_1543491996261_0.9004273412118087"},"_hasShrinkwrap":false},"1.14.1-beta":{"name":"webpack-marauder","version":"1.14.1-beta","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.13.0","art-template-loader":"^1.4.3","autoprefixer":"^9.1.3","axios":"^0.18.0","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^4.1.0","case-sensitive-paths-webpack-plugin":"^2.1.2","chalk":"^2.4.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^4.1.0","dev-ip":"^1.0.1","devalue":"^1.0.4","dotenv":"^6.0.0","dotenv-expand":"^4.2.0","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","execa":"^1.0.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.1","friendly-errors-webpack-plugin":"^1.7.0","fs-extra":"^7.0.0","glob":"^7.1.2","gzip-size":"^5.0.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^6.2.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.2.0","postcss-flexbugs-fixes":"^4.1.0","postcss-import":"^12.0.0","postcss-loader":"^3.0.0","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^5.3.0","postcss-url":"^8.0.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^8.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","semver":"^5.5.1","sina-html-webpack-plugin":"^0.0.7","sinamfe-marauder-debug":"^1.1.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-import-plugin":"^1.5.5","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.3.0","url-loader":"^0.6.2","vinyl-fs":"^3.0.3","vinyl-ftp":"^0.6.1","vue-loader":"^14.1.1","vue-style-loader":"^4.1.2","vue-template-compiler":"^2.5.17","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.13.1","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.4","yargs":"^12.0.1","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^7.2.2","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n> 注意：本项目使用了 async/await 特性依赖 Node.js 8.0 以上\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n- [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n- [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n#### Test 发布\n\n使用 Test 发布功能，需在 `marauder.config.js` 中注册 gitlab privateToken 信息。\n\n在 `build` 命令基础上，可通过添加 `--test` 参数发布到测试环境。\n\n```bash\nnpm run build [page_name] --test [tag_message]\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n### 启动微信小程序 mpvue 开发环境\n\n`webpack-marauder` 除了可以做普通 web 开发，也支持小程序 mpvue 的开发环境，详情 mpvue 的使用方法见：`http://mpvue.com/`\n\n```json\n\"wx-dev\": \"marax wx-dev\"\n```\n\n```\nnpm run wx-dev\n```\n\n在项目 `src` 中会创建 wx 目录装载基本的 mpvue 的初始脚本，然后会在根目录生成`wx-dist`目录，使用微信开发者工具直接调试此目录即可。\n\n### 微信小程序 mpvue 打包\n\n`json \"wx-build\": \"marax wx-build\"`\n\n功能同`wx-dev`，会一次性在`wx-dist`下打包好 mpvue 构建的小程序代码。\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"d07951dcfcbc2b4fbc7e481ad93354111081fd40","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.14.1-beta","_npmVersion":"6.4.1","_nodeVersion":"11.0.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-vG2Q8t20r9BnAZAF+t6qnHoDDbm8oZBCbSQsrfCDDFpeNRMMd4bVcNMsDXP5tQMWGaJGh0mbRXE6fSQTenS5RA==","shasum":"982c4ae440fd761de2250f548320c8bca25ff247","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.14.1-beta.tgz","fileCount":57,"unpackedSize":147991,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcAOlRCRA9TVsSAnZWagAA3MoP/jS61049cncdwbdrzIAk\n8RpI+F719d+F5qWC9KP+XwWT/XkRUzOyDZxZ7mHLLkbU2pTSX71I70OL83RH\nO2+neGU9eqCeB3GNpR2q2PJOTtMG3pCovImrFPgRUNAgOphuINZYDXgaulVr\nfXxZTUGIxS9N/Pq0gw0veaGvNDHh9oOh62eMEM42vRFuqf1s7hzg/AdH80H5\nWrDW1x45+GkEF1v0j0otwkqNa7UDqP/alRMxjXI/mvnOO5AI/JdFufGTRqn0\nz78ilmW+AErNr24mLkD6R7Ig391lhctVU6x6MN+QEg+OBdr0FHJ18fIcmf3m\n4JoMajYaSXDV6efBxpD4PHUo/g1AgnhtT23PQnVCV7Nd/FlRE5jnKZXxDB2T\nx4bWQtT4tkil+gKR9uIP+2VBLPZdLR6npiu7IlifvdsPVpRCnyxmcsEsO4Yu\nbTqeRhc64/nQK9A8I9LyMOHYd1/g702PU4PFejyCHOoAWWao8u2/1bu4G5qE\nC/ziGw6RhGFUYvV+S/ig9RrNHxZ+OoFrr9kr+mX6PHBufOaworcuRNECPTrj\nRizuuTLXrW+1LtDNlci8rC+DCV8E7txjQ8e+zv5900GgG5dItxMJ5fMhOGlt\nBv2+R4ucBMLmSQXj+nJdQ53ZTyJ7ECNoxlXyz8kTwAX6uuJDH0TCEqH2u0G6\nfDy6\r\n=H/JZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBW0ImCaem6ZK2G7OkdRLJE5/icXFVL/0b/zp3LSkiSQAiBmpKWAnjY1MBiThJt7zNv/gZ3J4QfAMaOCNKm6ztfQsQ=="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.14.1-beta_1543563600756_0.45817401926941304"},"_hasShrinkwrap":false},"1.14.1":{"name":"webpack-marauder","version":"1.14.1","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.13.0","art-template-loader":"^1.4.3","autoprefixer":"^9.1.3","axios":"^0.18.0","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^4.1.0","case-sensitive-paths-webpack-plugin":"^2.1.2","chalk":"^2.4.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^4.1.0","dev-ip":"^1.0.1","devalue":"^1.0.4","dotenv":"^6.0.0","dotenv-expand":"^4.2.0","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.1","friendly-errors-webpack-plugin":"^1.7.0","fs-extra":"^7.0.0","glob":"^7.1.2","gzip-size":"^5.0.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^6.2.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.2.0","postcss-flexbugs-fixes":"^4.1.0","postcss-import":"^12.0.0","postcss-loader":"^3.0.0","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^5.3.0","postcss-url":"^8.0.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^8.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","semver":"^5.5.1","sina-html-webpack-plugin":"^0.0.7","sinamfe-marauder-debug":"^1.1.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-import-plugin":"^1.5.5","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.3.0","url-loader":"^0.6.2","vinyl-fs":"^3.0.3","vinyl-ftp":"^0.6.1","vue-loader":"^14.1.1","vue-style-loader":"^4.1.2","vue-template-compiler":"^2.5.17","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.13.1","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.4","yargs":"^12.0.1","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^7.2.2","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"dd73aa7cbcf513ac4bb9ed6aff2d777f72568679","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.14.1","_npmVersion":"6.4.1","_nodeVersion":"11.3.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-8yLyaWpzWTVb7JdwDDXf0SXD1Byc6lUqGCxBO/GwpFlTIzQEKyynQgPQZpAAxUwiHVwHq2dxiozI3uyJqY9Rgw==","shasum":"912536458114b7f267f4025a6acf93f664e1e927","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.14.1.tgz","fileCount":57,"unpackedSize":139782,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcB2FQCRA9TVsSAnZWagAAsZkP/iqQpyly9BXGR7ib/63V\nM2eKGp/6xHUmyFtygmD8rLQQIdoNyox3ZRXzoJ6QDff1vjlNv2896qZVjVH+\nlfOvkWrGbEOx2LiwYTJbMuzuknjFw4dE5PxoC3lh9H0L1HzzoKPccRmeAQnq\nHQ+dul0GJ2SZcBIoMOt8hQUcttt/owH/Fe1/Y6J0bwfuIBCU3wW5NEb2ioUY\nLOnxmuSz9kraeddXrKaVhztMhG79ewFHUDp8fk5bkcXKveHPxoM7QFuOi2qq\nMv2OPlKRgP5WxN/001yi5XnkYvJQWOlkxQSic7u1zDgOUI6tqp0ByWhOxQtZ\nLjQvuDGFZFjyykaivm6u9Xx9M32geNlzoy3YRt80JW115cOgacuArfmooVXY\nFvpwygzRbDSX4dlU4hLH4PTeGMfF2EMX1+xm9SafOB7mBHoIatGS2LdixISE\nbc3gCL7Z+BIluywpj2e9rP+jVUQGK652TVJMbDwZfecULxH/XFSZeKffTEO4\nCQo1DvZlsQiPfEz6A2moKZKewFC8jDhDPq91aAkiZ8xTh3/Av7NsP0gIEpNA\n8JcTPNKoSYnx7loNt8LNcus70jfilufS/qjXZ2dMaAwIazOTl+Bxoxa3BtVe\nmfEJYyxH/woL9gb/O9+QfOWZ77idiaqssURQI54/EUE6o6coOmQ4NYrLpUpt\n++gQ\r\n=ZVXJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDBCok/250AZb1zwR8bVp1hIu9ZwoMerROjBYtFSmHwagIhAOGyRl2y2AYt9i2WM/0qyYrnG7aGoZODuR3t8rsnmkJD"}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.14.1_1543987535220_0.3789085215929642"},"_hasShrinkwrap":false},"1.14.2-beta":{"name":"webpack-marauder","version":"1.14.2-beta","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.13.0","art-template-loader":"^1.4.3","autoprefixer":"^9.1.3","axios":"^0.18.0","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^4.1.0","case-sensitive-paths-webpack-plugin":"^2.1.2","chalk":"^2.4.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^4.1.0","dev-ip":"^1.0.1","devalue":"^1.0.4","dotenv":"^6.0.0","dotenv-expand":"^4.2.0","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","execa":"^1.0.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.1","friendly-errors-webpack-plugin":"^1.7.0","fs-extra":"^7.0.0","glob":"^7.1.2","gzip-size":"^5.0.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^6.2.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.2.0","postcss-flexbugs-fixes":"^4.1.0","postcss-import":"^12.0.0","postcss-loader":"^3.0.0","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^5.3.0","postcss-url":"^8.0.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^8.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","semver":"^5.5.1","sina-html-webpack-plugin":"^0.0.7","sinamfe-marauder-debug":"^1.1.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-import-plugin":"^1.5.5","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.3.0","url-loader":"^0.6.2","vinyl-fs":"^3.0.3","vinyl-ftp":"^0.6.1","vue-loader":"^14.1.1","vue-style-loader":"^4.1.2","vue-template-compiler":"^2.5.17","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.13.1","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.4","yargs":"^12.0.1","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^7.2.2","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n> 注意：本项目使用了 async/await 特性依赖 Node.js 8.0 以上\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n- [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n- [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n#### Test 发布\n\n使用 Test 发布功能，需在 `marauder.config.js` 中注册 gitlab privateToken 信息。\n\n在 `build` 命令基础上，可通过添加 `--test` 参数发布到测试环境。\n\n```bash\nnpm run build [page_name] --test [tag_message]\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n### 启动微信小程序 mpvue 开发环境\n\n`webpack-marauder` 除了可以做普通 web 开发，也支持小程序 mpvue 的开发环境，详情 mpvue 的使用方法见：`http://mpvue.com/`\n\n```json\n\"wx-dev\": \"marax wx-dev\"\n```\n\n```\nnpm run wx-dev\n```\n\n在项目 `src` 中会创建 wx 目录装载基本的 mpvue 的初始脚本，然后会在根目录生成`wx-dist`目录，使用微信开发者工具直接调试此目录即可。\n\n### 微信小程序 mpvue 打包\n\n`json \"wx-build\": \"marax wx-build\"`\n\n功能同`wx-dev`，会一次性在`wx-dist`下打包好 mpvue 构建的小程序代码。\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"54929e6aae294c1297f22169c5c97e1b5083401d","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.14.2-beta","_npmVersion":"6.4.1","_nodeVersion":"11.3.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-orkeDGwCDGeT7GT5Nf1bp8gISK9ENCEeqwoXhDSO9MYroodRgPpIT3K1w5RYRL1yLDEX4Fx5pq+ueGtxw5YVLg==","shasum":"4b4d0b0b2489edc13e7f7496d24d7bdf82d2afd0","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.14.2-beta.tgz","fileCount":58,"unpackedSize":148047,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcD5oICRA9TVsSAnZWagAA2A4P/0pxo5uMkxPZDY2c0D4J\nwiD5L5kRpdLBtDOifZZDQLg0B0v02lvylujIn6xrvCBpAQ/Lih2uqvA876ku\ny1yDkVxZXvjCunaiDUcIUu88bdpBGaWAlzfy0Vljojb4LQbVUuJj83dq+UzQ\nWC5RrxeOhjRYeTQ/qTmZ01M5kFNNukF5Wwjcx3IWDiacXEXBcg9RpM/ADhqP\nhAyBcaCpzxC6GoWT5sYE6Tzq6f0pIqAtat3FI6uuWFUI7HPHclmv+cqEaop0\nc6gbDf18ji0+YVbCngaFJYKDo1UkdIAsY0kNz7RDNvV/qin6BgRnr91h01UB\nyGfMrAJgfPurkLnMISt0yhWoP4PO0VPiJYD9/+du4lFCPMkSxciAKz5EGIDx\nEXyjThVUcVRCTV6IkXANIwQ6lT3Y8+kwiSs/cIbE2uU1yNDKtKQ4O06Izvhr\nWuSpSq/GO6RDhOe+6zD2O1Iyli6LNpCT6Aby+1K+XK45VvBwvVr+/n7ELodu\nEZ3NFl9E/iKD8yXr6zeyoi6LFtT1V/Lfa8WgMu7V2IYyqJihrS56BhF8hf3A\nrcg+NZ/CJuDO7/gwI/bCinJGNnFuAXrBqNqEg7cRx2DOfSrZ9v5+anCY+Vf4\n2uCHK24WiHEtoxHrOMBZ6b8EnEF6pdiwtMYXtgS//4j1Hd4IfZDjtG43PQu8\nvs0Y\r\n=sAJS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHVDC5zDAcMgKov8Y+K9DcC6Gp/gyFPTX4kjiac92Mo0AiBVsDC2DJIeANfCEmB69kEZsL5gk97Sa3HjU4TW1PkexQ=="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.14.2-beta_1544526343549_0.04177221810503462"},"_hasShrinkwrap":false},"1.14.3":{"name":"webpack-marauder","version":"1.14.3","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.13.0","art-template-loader":"^1.4.3","autoprefixer":"^9.1.3","axios":"^0.18.0","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^4.1.0","case-sensitive-paths-webpack-plugin":"^2.1.2","chalk":"^2.4.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^4.1.0","dev-ip":"^1.0.1","devalue":"^1.0.4","dotenv":"^6.0.0","dotenv-expand":"^4.2.0","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","execa":"^1.0.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.1","friendly-errors-webpack-plugin":"^1.7.0","fs-extra":"^7.0.0","glob":"^7.1.2","gzip-size":"^5.0.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^6.2.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.2.0","postcss-flexbugs-fixes":"^4.1.0","postcss-import":"^12.0.0","postcss-loader":"^3.0.0","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^5.3.0","postcss-url":"^8.0.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^8.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","semver":"^5.5.1","sina-html-webpack-plugin":"^0.0.7","sinamfe-marauder-debug":"^1.2.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-import-plugin":"^1.5.5","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.3.0","url-loader":"^0.6.2","vinyl-fs":"^3.0.3","vinyl-ftp":"^0.6.1","vue-loader":"^14.1.1","vue-style-loader":"^4.1.2","vue-template-compiler":"^2.5.17","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.13.1","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.4","yargs":"^12.0.1","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^7.2.2","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"2112a653aa60fff6fa81092f3b6dafe0b4142dab","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.14.3","_npmVersion":"6.4.1","_nodeVersion":"11.3.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-t7nyguRnXqwJa5fve6bYZRW5wt8dJrr2SIP1PsoK2mU4j1fMm90UwhFYioKiwWr9QtkhNIFeInyXyUTXzXVwaQ==","shasum":"aad00597eb700fab50a30f7128b17de6ea1d2d02","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.14.3.tgz","fileCount":58,"unpackedSize":148498,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcE1VQCRA9TVsSAnZWagAAHhkP+QFzUVmw6rtqUE1oVfhd\nsNeHgQjBspswEFbUVdPlZ+LKNhsbS/f2yQAcuyTrv2uoC6C7Cdp6yskAbyk1\nTvZlOS2LJti7XXz6YabqgeJJcoByWkWY3iPETcKhXwflYgFzMK2GY2zB8lw4\nJBSe9qVbzEjp66WQIf8CJIKg1mbH1NZgA2f93F4tgS1zjPEV82WqaspAiBfU\nNH33qfIHtWNlY3naDc/WkYUnPBeQusxMCbwhfAz67gxt8I0XsUK2Y5gyM2Xa\nXsiXnee+EnE19A/J1MVg0FR24AAvglPe+xXM5NoP5Q25deaQfxNL+G0NgD3A\nLf0OOF//oRcRuy5KvA+DQ+NdxXMAUR7YyVYpUDAtEfBzJmRjvenFghALBhYG\nfDaTRBeSHLHCTHBJZB3J1nruiQ4svY6SHnmCpREv+aALpbzGFDLciK+aoEiZ\nIWZFljgc/IFO7SyYA8pMlAjNZpwzVfPVhgC0nicVA1vuNBtg++B8ijBSiFxh\nj5O5800vz9rfhfNLlOtpgdLV4uUI+QA7iv0PMILosJtr2MtBh1kUOI3c/RZy\nvezCmsEmQoL3+YVCWO1ZRroB68M7dcrnDSduagUUNqdWUXBOk+kfzK0lX7P5\nZLo4sVSZmvGemfyPAA1LsquRo/+gXli/m4FBW603mtQsPs19pQQFB2Q7JkwY\nGqxv\r\n=X/ks\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHFCXrtXy98VJRzozjRNXpXR0cpCctbHrpgdkL/0QTIkAiBcZaFYdQMr55MJegS1EsT8tTWBFZWDxnytI45VwN2o/g=="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.14.3_1544770895677_0.15414578394916378"},"_hasShrinkwrap":false},"1.15.0":{"name":"webpack-marauder","version":"1.15.0","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.13.0","art-template-loader":"^1.4.3","autoprefixer":"^9.1.3","axios":"^0.18.0","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^4.1.0","case-sensitive-paths-webpack-plugin":"^2.1.2","chalk":"^2.4.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^4.1.0","dev-ip":"^1.0.1","devalue":"^1.0.4","dotenv":"^6.0.0","dotenv-expand":"^4.2.0","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","execa":"^1.0.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.1","friendly-errors-webpack-plugin":"^1.7.0","fs-extra":"^7.0.0","glob":"^7.1.2","gzip-size":"^5.0.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^6.2.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.2.0","postcss-flexbugs-fixes":"^4.1.0","postcss-import":"^12.0.0","postcss-loader":"^3.0.0","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^5.3.0","postcss-url":"^8.0.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^8.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","semver":"^5.5.1","sina-html-webpack-plugin":"^0.0.7","sinamfe-marauder-debug":"^1.2.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-import-plugin":"^1.5.5","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.3.0","url-loader":"^0.6.2","vinyl-fs":"^3.0.3","vinyl-ftp":"^0.6.1","vue-loader":"^14.1.1","vue-style-loader":"^4.1.2","vue-template-compiler":"^2.5.17","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.13.1","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.4","yargs":"^12.0.1","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^7.2.2","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"c23e436b5ce90eef018921c6f62ab6aff44a3007","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.15.0","_npmVersion":"6.4.1","_nodeVersion":"11.3.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-IKM2r7yCILWlnDSSozKBeebaVqfLpRkoSlKowhNwCWUBH4vV7CVjGZ9jx1OxhYrrewhA0bc5IvjGuhaHwk1zHA==","shasum":"c6fb1d44c21966e9acec4915035cdd74cbf7ee33","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.15.0.tgz","fileCount":58,"unpackedSize":148240,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcI0vSCRA9TVsSAnZWagAALc8P/1M3Bqh4FFIOPsv4D+yF\n6hmYaD9DthuPv4nfPMCEu7mcFUGwwpfADIG/Mubel/VN3KCsNu1v4X253DjS\nNJfMOh+nYC50i/Im6NissZ9DnEXSy4zbp+7gmt+HvVwVobvk53etvE8p31Fa\nfeH6cbX+RSkIQpM5XzfXeUJsoJ6JbNZ/i3b3ROoSVFyZ/V65PLqi+fkJnpti\n10lfw3LhZfeL5RWUa8NSjp4jCBwDvK2mZsM34Ia5+WWE+3EmLnVZavX04IuL\ncCU46J9b2d3vuMHGJtZkIh5nejEPS4QOjLtASJzGvfxlD3RXhVR5KqdfxqHr\nmTCRGsPtfzzx1rrv5cUyF+ysQSO6v9FxnBABMrytGJ6+5RwerRS9xhTjkvLH\n3NsTxJSezHmcwyV/VfkAJq5XMsO5z7Z01goZeCNHTTUlZc6ghZylYNaPZR1a\nNI1/7Vl4gXFqljEerJlssp1VwY8Tb8btN77kMGvJl3wYwszqzYk1/Uz06CFH\nhoe66orGYREtt0k1F8nTeXmMmZVigiXm4Sy5fk1A5w5nYXzgj8kw9q3HvlG0\nZt0jNbHRFrWSrr1220W7FBTKZ7FAPW7Rw+GJ4Y2O57TGt9F6GeIo0R7iJUM7\n0kV1JA+um2ZENI7gLuLEkuBVgf5KvK3XqNnqrZvPkby+gcSm3ICx7GdanpyV\n5pxJ\r\n=0jrW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDoQs27mBf+I28DYxR/5e5uDNlFNuJBusYemSmB/pfhfgIgYoqPAaI4u6FwpMVy42SrbUmCrSvuxCQvi0YQJKfKOHY="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.15.0_1545817041842_0.9418081241849336"},"_hasShrinkwrap":false},"1.16.0-mc":{"name":"webpack-marauder","version":"1.16.0-mc","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.13.0","art-template-loader":"^1.4.3","autoprefixer":"^9.1.3","axios":"^0.18.0","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^4.1.0","case-sensitive-paths-webpack-plugin":"^2.1.2","chalk":"^2.4.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^4.1.0","dev-ip":"^1.0.1","devalue":"^1.0.4","dotenv":"^6.0.0","dotenv-expand":"^4.2.0","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","execa":"^1.0.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.1","friendly-errors-webpack-plugin":"^1.7.0","fs-extra":"^7.0.0","glob":"^7.1.2","gzip-size":"^5.0.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^6.2.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.2.0","postcss-flexbugs-fixes":"^4.1.0","postcss-import":"^12.0.0","postcss-loader":"^3.0.0","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^5.3.0","postcss-url":"^8.0.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^8.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","semver":"^5.5.1","sina-html-webpack-plugin":"^0.0.7","sinamfe-marauder-debug":"^1.2.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-import-plugin":"^1.5.5","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.3.0","url-loader":"^0.6.2","vinyl-fs":"^3.0.3","vinyl-ftp":"^0.6.1","vue-loader":"^14.1.1","vue-style-loader":"^4.1.2","vue-template-compiler":"^2.5.17","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.13.1","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.4","yargs":"^12.0.1","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^7.2.2","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n> 注意：本项目使用了 async/await 特性依赖 Node.js 8.0 以上\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n- [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n- [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n#### Test 发布\n\n使用 Test 发布功能，需在 `marauder.config.js` 中注册 gitlab privateToken 信息。\n\n在 `build` 命令基础上，可通过添加 `--test` 参数发布到测试环境。\n\n```bash\nnpm run build [page_name] --test [tag_message]\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n### 启动微信小程序 mpvue 开发环境\n\n`webpack-marauder` 除了可以做普通 web 开发，也支持小程序 mpvue 的开发环境，详情 mpvue 的使用方法见：`http://mpvue.com/`\n\n```json\n\"wx-dev\": \"marax wx-dev\"\n```\n\n```\nnpm run wx-dev\n```\n\n在项目 `src` 中会创建 wx 目录装载基本的 mpvue 的初始脚本，然后会在根目录生成`wx-dist`目录，使用微信开发者工具直接调试此目录即可。\n\n### 微信小程序 mpvue 打包\n\n`json \"wx-build\": \"marax wx-build\"`\n\n功能同`wx-dev`，会一次性在`wx-dist`下打包好 mpvue 构建的小程序代码。\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"b813965aeb1987b3184855015407257d85a430b0","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.16.0-mc","_npmVersion":"6.4.1","_nodeVersion":"11.3.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-dK+E11KoSNbqsPj2HLwrqaMud0MjPuiXEvDsoie/+hjcjTjkAYv/ObyqkilAm4nUUdcnZ592dCthx5u2dxxBdg==","shasum":"f7a84ba6ee86565da1b99bf1242dc0f1686e0b96","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.16.0-mc.tgz","fileCount":60,"unpackedSize":161667,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcL15dCRA9TVsSAnZWagAAqroP/jsE7jEuzSIDkYrSUpD+\n5kPzuxzIaSZlUqMeU0rIZk7obN/10Bf/La86MvQ4FybbWGaLXRV97GeIGxnJ\nzdrqW6NaBDq7QbVkRKFwW0gdb42NHbsmgL6uuqXrU5aAa5RigKJMjZxIriho\nb6my1rL0loBKFBO6BBLx8pPhg9M/f53SxFUks90sNEbPxDvZesFQF8eJtHJl\n04CvRyRC7/cUC7jf3GLfQhzCcGm2Zggzzb0xRVfQlVdxLeF9AbC42N641AUZ\nZJIosebWIDdP/Fc7O5ggNrnLaNXWSPTvpI7hH+gZXSID4B54t9QcJ6B6nb9f\ndAipYQk1UXVbVIyMFAY42bnQU9ILJwx25Mf8EYszXCyaQlyDe6V+qcLambir\nvRmyW2jWCQ3boxQLL+gQugglwyLtVBKuDYcxX64SnAo+27vA0GoQqikOWaID\n7cM7z2+fvhBRot3BeeY6MmzQZWPgjiPvteidf/Uj10deQqQW+RGbc8yzW8Yv\nzOH06aLpIIciRE6mvO8uIeWwAV9agE9AiVhQ3sQuav1rlFfhxrk9DSAjC240\newq8PIoAYnc7qj7CBF4VDh0l17Y4yEqLpuGl6uRjLHFbl92aQMgbQI7002MS\nJ8/s4HD7u3SRX6DQg9p4kMW0pBCmjhR/Jknt5wc7pJNi8SUYJPlH9UQaT13l\nxV18\r\n=fJT5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID+TiaQTvi0EP7CF7WihwglveRmolWMdProzLXaZE24KAiBGBMptW/rJ8l655LpIr/LOcBfqkb4pr4u33TmqkBX/jA=="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.16.0-mc_1546608220705_0.8862696129520291"},"_hasShrinkwrap":false},"1.15.1":{"name":"webpack-marauder","version":"1.15.1","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.13.0","art-template-loader":"^1.4.3","autoprefixer":"^9.1.3","axios":"^0.18.0","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^4.1.0","case-sensitive-paths-webpack-plugin":"^2.1.2","chalk":"^2.4.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^4.1.0","dev-ip":"^1.0.1","devalue":"^1.0.4","dotenv":"^6.0.0","dotenv-expand":"^4.2.0","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","execa":"^1.0.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.1","friendly-errors-webpack-plugin":"^1.7.0","fs-extra":"^7.0.0","glob":"^7.1.2","gzip-size":"^5.0.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^6.2.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.2.0","postcss-flexbugs-fixes":"^4.1.0","postcss-import":"^12.0.0","postcss-loader":"^3.0.0","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^5.3.0","postcss-url":"^8.0.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^8.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","semver":"^5.5.1","sina-html-webpack-plugin":"^0.0.7","sinamfe-marauder-debug":"^1.2.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-import-plugin":"^1.5.5","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.3.0","url-loader":"^0.6.2","vinyl-fs":"^3.0.3","vinyl-ftp":"^0.6.1","vue-loader":"^14.1.1","vue-style-loader":"^4.1.2","vue-template-compiler":"^2.5.17","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.13.1","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.4","yargs":"^12.0.1","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^7.2.2","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"42bfe36e4299d02bc3b4fee3fbb0f46faab4642e","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.15.1","_npmVersion":"6.4.1","_nodeVersion":"11.3.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-ZlQ7XSo/lt2+fzujAYt1j0ha11M0naHZ3dhqBxnv1vRnbAZj76r93YNcEW6YYCBqUc4wMJeO2nRAvjOYilF9Ew==","shasum":"06e73f29ca33bdf120af77996cd6414a08b54a92","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.15.1.tgz","fileCount":58,"unpackedSize":149511,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcQA+KCRA9TVsSAnZWagAAz6gP/1+LLR/44t+w2QdDVCSW\nU8V2J3ZYPVYnx5jbHdN2qojMOCZ3GDGubTosqn8U6MrknSx1pVejvU1iMF+q\n32BVVjMSt93Yl6fhyGtmSRE/u8/244LfaNkNPjIeM3DtcFllMdvJ6jG1k/un\nRPCFVdvOtc4ODa6a9oB0hF2PTlwDAP8oVMrcMAQTLCuLsOovpMxbVIC5g+3U\nQCE/CvwpasNRNbHd5XgLn3Rx/H1haDrW0gAkKPdq66e66Bb/NdEMfwGbuds1\n88dPIYdo88GeXFfIZvhaCLEq5MIoz0Rsgu6xJNdRPBl9PhdLYylfNl/1AwFW\nSqyh4GWV1ADcQsCDwskzqWjvE0paw8tLwijQ7hQgXzDqWaLqslyIQcAHfRt9\nF/88QtjImmphu6pLDMiWR87koJKBVAz68ZcYBmA+NEpE4ZyXRa/sGJOD5aiq\nehb5/8mkyO/Q/4M3ASDmRuRaP4ITWO69Kduka7ks13nKf/p7abCo7MXZY5+C\nkyRtGnvczgomHVyxUcfL2nUaxQFL1ludpmhJcRrnsmEJMPEymDsYB+nB0JDR\nc17HuZj0XQKaYpQRhho00EZ77ioAeg5Qt6BuclXN29RyFZsH3wyFeZcSyg1W\nOW4i7WxJMu0L8QYK9CT94EAj37KcmUhh7bTRJltSkJPCUFMl+MyQr8rmvvcd\nSFro\r\n=MrKz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBSsj0exgBK9ZSUAiFJMa5vYK2JePAqJVBJNOorbWjWCAiEAmii1NTO8M48iQHrMaB0MsMOa6hcJAhrirqRS0vd+9To="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.15.1_1547702154044_0.3304886220850529"},"_hasShrinkwrap":false},"1.15.2":{"name":"webpack-marauder","version":"1.15.2","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.13.0","art-template-loader":"^1.4.3","autoprefixer":"^9.1.3","axios":"^0.18.0","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^4.1.0","case-sensitive-paths-webpack-plugin":"^2.1.2","chalk":"^2.4.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^4.1.0","dev-ip":"^1.0.1","devalue":"^1.0.4","dotenv":"^6.0.0","dotenv-expand":"^4.2.0","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","execa":"^1.0.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.1","friendly-errors-webpack-plugin":"^1.7.0","fs-extra":"^7.0.0","glob":"^7.1.2","gzip-size":"^5.0.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^6.2.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.2.0","postcss-flexbugs-fixes":"^4.1.0","postcss-import":"^12.0.0","postcss-loader":"^3.0.0","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^5.3.0","postcss-url":"^8.0.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^8.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","semver":"^5.5.1","sina-html-webpack-plugin":"^0.0.7","sinamfe-marauder-debug":"^1.2.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-import-plugin":"^1.5.5","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.3.0","url-loader":"^0.6.2","vinyl-fs":"^3.0.3","vinyl-ftp":"^0.6.1","vue-loader":"^14.1.1","vue-style-loader":"^4.1.2","vue-template-compiler":"^2.5.17","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.13.1","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.4","yargs":"^12.0.1","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^7.2.2","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"8495d0a4a35ce8988b7877ab3f751498b66c683c","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.15.2","_npmVersion":"6.4.1","_nodeVersion":"11.3.0","_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"dist":{"integrity":"sha512-xX7Ye/+FUshzu1Ps7vriI9aKn6ZK9UJYiL60Y2iyyA/66e2ytqOO0YqhliB3aEOkAdxOpszZZuPjB1QH5BZlQg==","shasum":"a0278697b4c9806d9060737a1e2cb08487b9b7c2","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.15.2.tgz","fileCount":58,"unpackedSize":149566,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcRXgNCRA9TVsSAnZWagAApdoP/0AUbUg09Hl4FX626/BE\nBba3YslLHUmhjuBACvmIJMDAg+TOuPAnvobcKvBrsiW9Fjq+hAThcb7k2i4W\nAJSIB0pvE4Qzx/R59vbbnpv9Ha9f0wlANgNG+v0vXXmb7Gs/jdJB5szwYPtd\nq9pRWI5NGB2ceA2lNVQdtYJms5miqeG9FYslbKnybIFJp/OcWqcFhHVJX94+\n3kI9gQnFdA/10jHdEquaFdgZuzkHvELparGn+8jXCfwvclkhbxnxoNRQt2VV\ny2y5Pxc9H1uDHpfp66cRLSYTImFL5+VnhxgXzjN8GvTHOrM2vl6HqirGjIBE\nfesFyZ/VhkVVdqaLvM/0Yeq1CeQIC+cQWkNd5QZxuVx+aySRAD4iQAC8+Y/e\ntRxcy0XF7D5qaq68ui5jALpkwK7OSmmT0fo1FiR3kfRqsgwfs2ZmXB5kGFZs\nfHre9DKRLng1zsIqj1KEsH/yVcNFnXM3XmTQV4jOOj9FHGhBhIe+9xkHr6jr\n6gMxV6bS8McVeYI7Ez5UGxaSGuqJ5a7t/41oNRrG/G0m1PSSVOrTYuS3DjeO\n7xtopLxmwylS3MqkPYAPIeohsPktMB/Vrd3ujnGREoLHGWpfhj/DwRs3qEhH\nPWOgPdutR6wL+/DFzNadrObXIsxfG73IrdfsvaBb0lulZyeblsyPoVgPC+tI\nxOrV\r\n=YyE9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCZlnrrkRqkNsqTtI0b7r2qCFfo9rHYw1Hw4DxMd5wQpwIgN6Zv8QtwoHHWdm8sFQy6j68giZacswh7k6YpOHVvlf0="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.15.2_1548056589309_0.15587585656208947"},"_hasShrinkwrap":false},"1.15.3":{"name":"webpack-marauder","version":"1.15.3","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.13.0","art-template-loader":"^1.4.3","autoprefixer":"^9.1.3","axios":"^0.18.0","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^4.1.0","case-sensitive-paths-webpack-plugin":"^2.1.2","chalk":"^2.4.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^4.1.0","dev-ip":"^1.0.1","devalue":"^1.0.4","dotenv":"^6.0.0","dotenv-expand":"^4.2.0","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","execa":"^1.0.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.1","friendly-errors-webpack-plugin":"^1.7.0","fs-extra":"^7.0.0","glob":"^7.1.2","gzip-size":"^5.0.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^6.2.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.2.0","postcss-flexbugs-fixes":"^4.1.0","postcss-import":"^12.0.0","postcss-loader":"^3.0.0","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^5.3.0","postcss-url":"^8.0.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^8.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","semver":"^5.5.1","sina-html-webpack-plugin":"^0.0.7","sinamfe-marauder-debug":"^1.2.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.3","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-import-plugin":"^1.5.5","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.3.0","url-loader":"^0.6.2","vinyl-fs":"^3.0.3","vinyl-ftp":"^0.6.1","vue-loader":"^14.1.1","vue-style-loader":"^4.1.2","vue-template-compiler":"^2.5.17","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.13.1","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.4","yargs":"^12.0.1","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^7.2.2","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"360e34ab7f99471b990c27d616eeab63f1debee5","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.15.3","_nodeVersion":"11.3.0","_npmVersion":"6.7.0","dist":{"integrity":"sha512-nyT91KmR5dNWWirVG4yUGnQcJGOo+vZ2Ok7gOGdRJQq6c2SvmyiuQX9EVkTrRJ8byX66cCMdqv29aYhaWlKd6g==","shasum":"cf8369fd631d1e5a237596be2c3e9696f92050cc","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.15.3.tgz","fileCount":58,"unpackedSize":149366,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcTucYCRA9TVsSAnZWagAAZ2UP/3jwPWnAHCBHuC+1hsi6\nWFhYhlJfDF3yKv+U//xzVeWOeYOaB9AdmxxcFZNZa5Pv6r3ZQkqmCHW03hYa\nnqbAJ681iZ6YsJDAprLAPWce4vxYbWnv6gUzKalzi7mcHnihU2m5hkB38s4i\nbUBERi0tc2VNH4cxaXTngaC/2m8bfj4iFRsLX2PODfPf7fPJwtfVYnyyXbvK\nlupyqRZ/a7G+ml4upFVSFE/d2c2hcxZd8CN3jSgsasVY+89vwYKa9fFAkxei\nfJeIHIddckLQockRJrc67osL6HeWXej2lJzRcgid81hbKF35FoRSgj8J77J6\nRrkt8xyBIlaV0sxvGwvqtTtuiUb4vtwreFuLPDfhfhwojojFCaslQ2vYWr71\nRNQ2AXRc2PC7NcPemV2ouOK8iWIeqryFt4+zPJUpjecvJF+gugl2s9cXfRAB\n8EeDeXECecxLALD42rQYRSADmcwPXMO6lNVtb46nTvy9aMPsYG6E8Ux+1exL\nvh2aB3W284Pan2Vw9h+yH7hJtHRqljZogJ+H+9+skdXY9ZVjtpebksiNxatc\nXPF0uyRQCC75Mx+PuSC4wkRazz8HeufaFWdzfnzawyvhqOyZDRHZAJOL7TGz\neajOJYK7MgQNU8HMugroH38oe61ZCbGwEz+XWVd3oMdtfcgK07QkLIpXIkZU\nZNZQ\r\n=F8XH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDt3crqKt55FogR9RdsxRKiwl+V1Ysu0vTpbfXNtbLsywIhAPh8snqL5aBcWDsQ5NMpXZ+dgtp3h4UZ3VIvEZLVRaqE"}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.15.3_1548674839384_0.6435757538204931"},"_hasShrinkwrap":false},"1.15.4":{"name":"webpack-marauder","version":"1.15.4","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.13.0","art-template-loader":"^1.4.3","autoprefixer":"^9.1.3","axios":"^0.18.0","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^4.1.0","case-sensitive-paths-webpack-plugin":"^2.1.2","chalk":"^2.4.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^4.1.0","dev-ip":"^1.0.1","devalue":"^1.0.4","dotenv":"^6.0.0","dotenv-expand":"^4.2.0","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","execa":"^1.0.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.1","friendly-errors-webpack-plugin":"^1.7.0","fs-extra":"^7.0.0","glob":"^7.1.2","gzip-size":"^5.0.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^6.2.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.2.0","postcss-flexbugs-fixes":"^4.1.0","postcss-import":"^12.0.0","postcss-loader":"^3.0.0","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^5.3.0","postcss-url":"^8.0.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^8.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","semver":"^5.5.1","sina-html-webpack-plugin":"^0.0.7","sinamfe-marauder-debug":"^1.2.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.5","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-import-plugin":"^1.5.5","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.3.0","url-loader":"^0.6.2","vinyl-fs":"^3.0.3","vinyl-ftp":"^0.6.1","vue-loader":"^14.1.1","vue-style-loader":"^4.1.2","vue-template-compiler":"^2.5.17","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.13.1","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.4","yargs":"^12.0.1","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^7.2.2","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"dc0a8aba847d1a44cde063e7154003c67271e04c","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.15.4","_nodeVersion":"11.10.0","_npmVersion":"6.8.0","dist":{"integrity":"sha512-LM+zmEaTPra45c2UPv9Dp+HP/K5j1QihT2lQtmlZWCu4godvzi+8fukdwPkyyXjK+5vgRV+RW+5PoPcTvDfwwg==","shasum":"dc9b2d70108a2b80a33bf87615a433d49c233979","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.15.4.tgz","fileCount":58,"unpackedSize":149414,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcdO6zCRA9TVsSAnZWagAAvH0P/1KWpQQ/14Dmc7fyl1/v\n35DhAnIqjhKOX4MdlJbG0zUZgfc/5at+yWZQWP7quuJ2eKq+W7ZAxMxkaz72\nj+O9YVr27WF5VLCGJYnfYgQVgLnF4I6KJ9WMmvv3drgjgPIke6Yz5TNJadje\nIG45deO68hYwtZEWNiIP8xKiqrEU6dYrMoLVXqKrPxYm0gz3WzIxHPAa2euP\nGltLk3lAottZhSVaj0eRlRzK0e4OtLn67jfmDd1bBoTxictYVFVVBnCgjdEB\nZWaVGGwBWfNAANQLvsw5jd+4kK6iCQ8aimyE2moUi9nRKsrkGhlSsS/fKGGb\nucea+Riu2Z35bw3ZtW+bnUgnFLTxURj9M6htlfLMNOPMnTV3sz6bBtFsFNTz\nhXVKD+85ao8SxO6JvL2RXJhEQWCFRWddiU4QCdwu0h56I+fjamxRL5wKGR6/\nZpsZxaIb0V1Qdix87toh9tg27ULC3Mmh/SY6MMSqcK3RjOi8L6ITdWvceD8c\n9g5afNjKMohkLQQlqk7tgu7dwnNHM1Rrn7rNMzvOhWR9u0hGY9YnUDqfxYxv\n7g05XhlJOnP1DlVJlizA9yVoYh4MfRBOKP/23ZF4/m1xoXDSR1LgaRX2o9A3\nLhx/haABzARWs0Mp0/Bv8KlIswChchsvQolEq0bzlrmKsVUd9R3R0YZ15Byo\nRlJC\r\n=/AyO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAHXLNn2GUVMnlENCR9KazYXIILtwr0zYEiU+19YivmKAiAS5qLiPzQ2EO9lEgkBz3eJXZ0fxkSnxjlk6LueR1Qxhg=="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.15.4_1551167155300_0.6254800636749669"},"_hasShrinkwrap":false},"1.16.0":{"name":"webpack-marauder","version":"1.16.0","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.13.0","art-template-loader":"^1.4.3","autoprefixer":"^9.1.3","axios":"^0.18.0","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^4.1.0","case-sensitive-paths-webpack-plugin":"^2.1.2","chalk":"^2.4.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^4.1.0","dev-ip":"^1.0.1","devalue":"^1.0.4","dotenv":"^6.0.0","dotenv-expand":"^4.2.0","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","execa":"^1.0.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.1","friendly-errors-webpack-plugin":"^1.7.0","fs-extra":"^7.0.0","glob":"^7.1.2","gzip-size":"^5.0.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^6.2.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.2.0","postcss-flexbugs-fixes":"^4.1.0","postcss-import":"^12.0.0","postcss-loader":"^3.0.0","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^5.3.0","postcss-url":"^8.0.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^8.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","semver":"^5.5.1","sina-html-webpack-plugin":"^0.0.7","sinamfe-marauder-debug":"^1.2.0","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.5","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-import-plugin":"^1.5.5","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.3.0","url-loader":"^0.6.2","vinyl-fs":"^3.0.3","vinyl-ftp":"^0.6.1","vue-loader":"^14.1.1","vue-style-loader":"^4.1.2","vue-template-compiler":"^2.5.17","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.13.1","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.4","yargs":"^12.0.1","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^7.2.2","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"e96a08f5ce3a6c610ca6cacb50ef0be26f95054c","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.16.0","_nodeVersion":"11.10.0","_npmVersion":"6.8.0","dist":{"integrity":"sha512-aTIbS3wJKbNV9Cm3bjsW1S4iWDeOEYAXYSawqz2L+8U7sLtZIfEFK2XOGw3N734EYx2vA6fDOVzQ5p91y+uVnw==","shasum":"5a86d63c5c70b48ee156aeea1552446b5149015c","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.16.0.tgz","fileCount":60,"unpackedSize":161886,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcf3ZFCRA9TVsSAnZWagAAEQgP/RCKLMXRSodARIxcrSwf\nf+5xuIJMnreWJ7MCXv0FDgG47vlO9lzx3wlITawBqHdwJ/AAhAxeqWeKAlAa\njDdnHRbwSB7VB7p7xms+pNelM3DsIDpNg6GMMrzd2c4xZlZpIqbaHks+sFVV\nXJCEnHZakoy1S4m8UBJr0Mp7NoSJT0Uh460wwMCFaRq/U8L3gtkTgPTY33ER\na4mLby5kwfJHof0XIjEQF+t+ePQBt1iZyG5MwSscbfY0C0BaN0KrM18I9iO4\nNhY8DC7e/t6ObynZZMqHC662F7CHmENi/TZdC7EnQYwMaHV33FfdQblnGTej\n/GDQDgQqUJZT0hu9fmyGGZH7Y1/ucfLbklwUs9Cf+1G6K5XZhTmjyJ+xkuNO\nADKaIG/s+obO2KKFX6WjUnKqR8XcyN1U7D/BAqmOQpi1A2SeUUuO7jO3/XaH\n4LhFgIm9nHDz4X33novDUYbKkykO0ysVgR1FaKC8/xqKjNdUmPFfaDYHCTER\nvzW3XrSyCZ7Jy3jewlzB9T7wQOyxPQL3rjKDwSZbSwmq46jqIS8cY56TAyzA\ngn/7ylIO2edK5nuTakDYfp251S4ImwbJ3fVZlFZDrhWP/Y0Oi7sQvvqsQh7F\n7CGm6v8OKOGg0Gizfp4JXcauADGhMkp0xxIxdx++X+c4gGzYJvTrXLy1hFlj\nSUnl\r\n=uM8Q\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDKTQSH/z48sggtVV2FyfA4qJcbzFs5yakcsugr1sO+XgIgYeMXic+yO4UW6GDRh3E2QffFbEmLbXRwXcwP7wN3NmY="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.16.0_1551857220591_0.018107382039837194"},"_hasShrinkwrap":false},"1.16.1":{"name":"webpack-marauder","version":"1.16.1","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.13.0","art-template-loader":"^1.4.3","autoprefixer":"^9.1.3","axios":"^0.18.0","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^4.1.0","case-sensitive-paths-webpack-plugin":"^2.1.2","chalk":"^2.4.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^4.1.0","dev-ip":"^1.0.1","devalue":"^1.0.4","dotenv":"^6.0.0","dotenv-expand":"^4.2.0","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","execa":"^1.0.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.1","friendly-errors-webpack-plugin":"^1.7.0","fs-extra":"^7.0.0","glob":"^7.1.2","gzip-size":"^5.0.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^6.2.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.2.0","postcss-flexbugs-fixes":"^4.1.0","postcss-import":"^12.0.0","postcss-loader":"^3.0.0","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^5.3.0","postcss-url":"^8.0.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^8.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","semver":"^5.5.1","sina-html-webpack-plugin":"^0.0.7","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.5","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-import-plugin":"^1.5.5","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.3.0","url-loader":"^0.6.2","vinyl-fs":"^3.0.3","vinyl-ftp":"^0.6.1","vue-loader":"^14.1.1","vue-style-loader":"^4.1.2","vue-template-compiler":"^2.5.17","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.13.1","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.4","yargs":"^12.0.1","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^7.2.2","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"1a800bf5d5015d3babcf63b4fad58b4aea3c4b9a","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.16.1","_nodeVersion":"11.10.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-LOTEB4tajt/CFr5C9tlSC/+2RklzAf8luLskO3M5J14Pqi8NPpithFai2ZeItFej8LM+hB/XeGcuKli5tL9Awg==","shasum":"e34eca92cf84d5f5c39db85ae2af730d71bb1044","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.16.1.tgz","fileCount":65,"unpackedSize":211431,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJciKdRCRA9TVsSAnZWagAAzloP+gLnE0Lgm57xOLPn72qo\nEk6VD9yIgZdtYXf+t5Q70Zl5ADBs4B+T6SsR+PjfC8tt+O7FTmQc9EyoaLXZ\nzDnzW0uDa8GZAdWbD0MhYzhG9KH0Vo6ujWTYmWQ48Ky8nRXZReEl5ZEXOSMm\nfr4hz0WYbFNdo7ISjyi6brmju2tPTix8O+xCN55SNWlD7p9VFUeDfnHafIj9\nnsVpgyBZB5WJ56Moj5oLNKh3tRFEcplfB2V75G9S5HZC0kAh7gQvX+h6F67j\nvkgRO27V8p4STXnUUlFQuGQdpN+LXdEdY/MQr2lHp9AiCC18Muui8HiWpcFi\ntj29uaKWrGNgmK7U7b0DeBoFxqxDFJShiv42PU250BUKPpIx3wWVs29Dmh6G\nE4msjOvHNQAMn8vokGDaSRku6qXUp526JishwWrHxSkRL/R/r0D6Eq54WW8F\nubl1/bNooAzOszGYgD6kL4Q+xf9DBH9YUL8ZLESPeiOLvSNAjw4D5vDDAuXF\nx0KnCtrV3YjLXjDSPPtAuUXS19Gpk4wGgwKhDIbaaiVLDUZUY0qMPlDK80pk\ntszKruDa5CxqPFA9Mddc3F+I9u9z1TP4tjZSbLmbvZNVFF2h670LFEEe6rG5\nNFHTvaVYps9/wDKrbqddvLzzg4DjfxYS6M9X0Bd0QlltlF6xjpJhXdyTcOhV\nSNdP\r\n=IBSQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCuNz8neMlMwIrjlgx4MGsoV8lpkIaA9B2je6JVrhYYHQIhALx2ColuJPYnXTsxhISTFEVAU2EkXirAuvwUb0rEomv8"}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.16.1_1552459601321_0.7642629928025293"},"_hasShrinkwrap":false},"1.16.2":{"name":"webpack-marauder","version":"1.16.2","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.13.0","art-template-loader":"^1.4.3","autoprefixer":"^9.1.3","axios":"^0.18.0","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^4.1.0","case-sensitive-paths-webpack-plugin":"^2.1.2","chalk":"^2.4.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^4.1.0","dev-ip":"^1.0.1","devalue":"^1.0.4","dotenv":"^6.0.0","dotenv-expand":"^4.2.0","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","execa":"^1.0.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.1","friendly-errors-webpack-plugin":"^1.7.0","fs-extra":"^7.0.0","glob":"^7.1.2","gzip-size":"^5.0.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^6.2.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.2.0","postcss-flexbugs-fixes":"^4.1.0","postcss-import":"^12.0.0","postcss-loader":"^3.0.0","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^5.3.0","postcss-url":"^8.0.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^8.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","semver":"^5.5.1","sina-html-webpack-plugin":"^0.0.7","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.5","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-import-plugin":"^1.5.5","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.3.0","url-loader":"^0.6.2","vinyl-fs":"^3.0.3","vinyl-ftp":"^0.6.1","vue-loader":"^14.1.1","vue-style-loader":"^4.1.2","vue-template-compiler":"^2.5.17","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.13.1","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.4","yargs":"^12.0.1","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^7.2.2","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"4bb2d532cf3af05a4d2ba9e0941c4a38c111eb3a","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.16.2","_nodeVersion":"11.10.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-Q+fDSJvdlLDfZFNXcmKhPAE5LjUfXSvn6br/68KaQAAlE0AioP8HqT19S6IVnafkRYeigLYrADN0RX/rOVUTbg==","shasum":"969c6f8b140ab269c675645f2edb9c60525794b4","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.16.2.tgz","fileCount":65,"unpackedSize":211401,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJct/DICRA9TVsSAnZWagAAbqYP/0/5kLBwJENatQgGcr/J\nSQLmSkKX6o490+8I4fWbaAQAsUwdb51cJt6rbK3tZKw/FsY1h7a6hPlMkGC2\n6lYGe2aydP3OUQtJaUZVzkXlMDCKJvZoEtIQZzp6GdciaOkq6v0poEJCnoty\ndVBfi36PnOK4teBmTy+j9tVFnVXS0KDESQuJmMQfZgyGcDrE8D6leSJLwK+Q\nsCiffgLiQcDa2NgjmxE9hzbAgErr0hgaVm8qFWl2RtI5GOrZSstfBN97EIfh\npbkomJ2TWm5EU6+cx/EVgxxGNdf5jImlraO1YwIVw2SkCUlK/VJXS3WfZfYn\nqP0c3CE3sJFDTaTkDU9z+2wqLMbY0xsygdCp/NgwM4/5k1E/4/JCyrkLoDr/\nTkKf81VlGeNdBk3YQnh9dxurvkxagbsdgIvIktyKH+S25Wa6j+z5qaxJ81AY\naq4TTwbIXiGuqptOTpd2dKwDDatqW4+rqH20vkJUqmuHvrnprTwm6XN6yz1K\nPUKbJ2YTFYlZFoQ0dOgo4ISTqoJGbpzmyCZ9KI2pK1Z24eT9Ar6khw+mp+kP\nq8ttyDZeWsowboN5/Zly3pS4EXuGBs6a8FO3TPZVdXKuinweTZ8IA/efKJ3A\nkZB7npumXdjo9FtXjJvbZozBVio2JUr5lJFzzwifIORMHdPLEJb+D3HkVcRM\n71Yy\r\n=jch7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGNXdzAwDUwRNxQG625E/P40zLMViHrBxXpbCp5XC0BxAiEAlmDpWeEyx8Pgb+ktqLFyiFZ+DI28qN3VnPgDd/jhvYs="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.16.2_1555558599434_0.7096259416865309"},"_hasShrinkwrap":false},"1.16.3":{"name":"webpack-marauder","version":"1.16.3","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.13.0","art-template-loader":"^1.4.3","autoprefixer":"^9.1.3","axios":"^0.18.0","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^4.1.0","case-sensitive-paths-webpack-plugin":"^2.1.2","chalk":"^2.4.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^4.1.0","dev-ip":"^1.0.1","devalue":"^1.0.4","dotenv":"^6.0.0","dotenv-expand":"^4.2.0","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","execa":"^1.0.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.1","friendly-errors-webpack-plugin":"^1.7.0","fs-extra":"^7.0.0","glob":"^7.1.2","gzip-size":"^5.0.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^6.2.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.2.0","postcss-flexbugs-fixes":"^4.1.0","postcss-import":"^12.0.0","postcss-loader":"^3.0.0","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^5.3.0","postcss-url":"^8.0.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^8.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","semver":"^5.5.1","sina-html-webpack-plugin":"^0.0.7","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.5","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-import-plugin":"^1.5.5","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.3.0","url-loader":"^0.6.2","vinyl-fs":"^3.0.3","vinyl-ftp":"^0.6.1","vue-loader":"^14.1.1","vue-style-loader":"^4.1.2","vue-template-compiler":"^2.5.17","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.13.1","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.4","yargs":"^12.0.1","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^7.2.2","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"9d52e82d66ca18434848dcb35ea6f8d510dd0a4e","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.16.3","_nodeVersion":"11.10.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-Fe2bvH8p6Rb3YUxsNPi8qeheBZHqAmhYFaDIi6mHhDmA2vozp3gjFYA2uEbxVdhVb8fLZDVC8Ej7xOCZDgNcmQ==","shasum":"e755c1afe7afabfa36aea40550e533cd4015f941","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.16.3.tgz","fileCount":65,"unpackedSize":211471,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc0ovvCRA9TVsSAnZWagAA8iEQAJFHRkw3guSn1HdPLfkr\nciwrHAOOs/8VzyXIpUopF36bDRo1E7cHXF1+Imt2RMH7LVi1FhS0ApN/rC1Z\n3vLRY7jwlV3AEK7taG4jccufgUqBf3FVlXPHwfgEMaLAiJFJ0VEHTrbaCe6W\nRNPqo3kDRGFQd+qvFH5qkBan1bYiogyeuS+jjseqOR9Dvia293Tq8wJ7zOTd\nfhB8KcqguT6K6Wuw+kcVk8wUPqbQhdOUvWGAyX4O3v22dB9S3c99Np1kQMxj\nqYaf+i8v5JUGxss4e4TZYwpQtutDMnf+wC8JbNfMkPIYv/3VpwWTq+MSLYXZ\n5+M58ZqypUoU4+QlzoGFowdNab7AwagAN/bk/EyznkJYZY8xI8jnKtkgpO3T\nnUxfjCKty+8Jb59tJO8dqtb4knEM89FyFm6K8/emJX3RSV3J47fy0SWWUgum\nGnM+S4wCdXEw0ftWz/Ga5h5hBzJGLbu+/jYbXFCiwbhM9I9ETfuq1FeYF3Fu\n7gywfVjXHXHQfB1ABMPUiN9yGvTDcm/xEyQoHts6gwYjVORpfHQqcQzMUXQf\nl1k6kB2lqCzj3X25IQXnB2tWlFt/MRqHdmYlYn85M36E2U4p94ihAX4ecGTc\ng12kbWPCpmGHNy+LaiMbhaH278Tv94TUSnYTlfU9/IQoSUcBgn//mkzqNp5+\nBsd0\r\n=W6fY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC3gr4Ob+SrfzgBKDDEOdpaFtSgY9KDYdvEj07OK8mLPQIhALbxznzbTVAje18FOioCo1iGx30B6ewJnZiQ+8q80hpN"}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.16.3_1557302254516_0.5548491642004199"},"_hasShrinkwrap":false},"1.17.0":{"name":"webpack-marauder","version":"1.17.0","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.13.0","art-template-loader":"^1.4.3","autoprefixer":"^9.1.3","axios":"^0.18.0","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^4.1.0","case-sensitive-paths-webpack-plugin":"^2.1.2","chalk":"^2.4.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^4.1.0","dev-ip":"^1.0.1","devalue":"^1.0.4","dotenv":"^6.0.0","dotenv-expand":"^4.2.0","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","execa":"^1.0.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.1","friendly-errors-webpack-plugin":"^1.7.0","fs-extra":"^7.0.0","glob":"^7.1.2","gzip-size":"^5.0.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^6.2.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.2.0","postcss-flexbugs-fixes":"^4.1.0","postcss-import":"^12.0.0","postcss-loader":"^3.0.0","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^5.3.0","postcss-url":"^8.0.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^8.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","semver":"^5.5.1","sina-html-webpack-plugin":"^0.0.7","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.7","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-import-plugin":"^1.5.5","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.3.0","url-loader":"^0.6.2","vinyl-fs":"^3.0.3","vinyl-ftp":"^0.6.1","vue-loader":"^14.1.1","vue-style-loader":"^4.1.2","vue-template-compiler":"^2.5.17","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.13.1","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.4","yargs":"^12.0.1","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^7.2.2","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"22e7b4c4a170f453f2d29dadc277b4e0a1204c03","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.17.0","_nodeVersion":"11.10.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-IxZWtcdP2y0SqJS9o52k8wRrpnA/O53LIJXYbqJEpGAFNLdVUWyjaissSeuXTLEXhUatQHlvgNbivIne+VuEZw==","shasum":"51d36a7f2553d3017b2e0c8e7508879b760e471b","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.17.0.tgz","fileCount":65,"unpackedSize":211471,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc0+EhCRA9TVsSAnZWagAA9swQAJzt4h3XfGIicIomLwcw\nK3phiDthC/Ni4XzBNl6M9mNRp59u5pc2/KrnairyudtkJI0zDjnHDBVV9UMW\nZiEjZBnr4dbSlBWCI+e9+VNdy88fIQCH4sTMriPv3LS771DT0BGweauv/bWi\nNBF9tR7iLfs94a7XB4Dv7mnFs2K35Ctqmo6WHs0JxYhZuIaPQo+mVCoG0zDL\n8DFkGa/ecHIYIvLhXGU2F1EEqqW8Xx6r6nOaVpI7XJf6HbRCXInJX6ofUkCV\nYI+wHH6NClaYrQ1e9THk//WRWGjqhhmWtjFuzIvHKAIF0GBPGhEXnxjyAdpl\n1DNdjQg+kKVaX9d5EIyJjXPy5KK1QG5yVwtKyPAhHb17KxPJQxRToS9IDtvE\nT57lRYNP0kI6ZHmCa5cTCiFypwAjU2bGUgULUtLxS6MfmzSNt7sSFAKX36Ea\nQ55ptB9nJxnPQcH+tt1opiapsg6ULdmZ3eOig+4lCCquzKYVhpjvd0/TeHFq\nMguVW+25AdCWAYkQHb0XPhh2o/MWf6YnAwMA6nqrUd6XNndondfC1FnPA7KC\nOc24Qi/qf0lYwtodNdPasy/8i7gp3nOmWMQ/JlUzU6G4rW8bwmbgymTyoTGc\nAa2bALeLWe12eSKwOKZ6UI+kDjBbFG4kuq9uaP2ELVZxhtp9+4vihLUu4MBG\n56mG\r\n=5BJY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDUTUHgCzmmwh9SNIJrFOtf+/loeF5fj9S5gBcWaL8a1gIhAKQmeW+SQacAfL+gghiay8JgpglbJdU8UK4uCT4aRMcz"}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.17.0_1557389600198_0.8080449180487663"},"_hasShrinkwrap":false},"1.17.1":{"name":"webpack-marauder","version":"1.17.1","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.13.0","art-template-loader":"^1.4.3","autoprefixer":"^9.1.3","axios":"^0.18.0","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^4.1.0","case-sensitive-paths-webpack-plugin":"^2.1.2","chalk":"^2.4.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^4.1.0","dev-ip":"^1.0.1","devalue":"^1.0.4","dotenv":"^6.0.0","dotenv-expand":"^4.2.0","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","execa":"^1.0.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.1","friendly-errors-webpack-plugin":"^1.7.0","fs-extra":"^7.0.0","glob":"^7.1.2","gzip-size":"^5.0.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^6.2.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.2.0","postcss-flexbugs-fixes":"^4.1.0","postcss-import":"^12.0.0","postcss-loader":"^3.0.0","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^5.3.0","postcss-url":"^8.0.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^8.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","semver":"^5.5.1","sina-html-webpack-plugin":"^1.0.1","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.7","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-import-plugin":"^1.5.5","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.3.0","url-loader":"^0.6.2","vinyl-fs":"^3.0.3","vinyl-ftp":"^0.6.1","vue-loader":"^14.1.1","vue-style-loader":"^4.1.2","vue-template-compiler":"^2.5.17","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.13.1","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.4","yargs":"^12.0.1","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^7.2.2","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"4e822e4c89468a08391fd8bc2870be87abcb4723","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.17.1","_nodeVersion":"11.10.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-wIT5zxG0VVn8016z13up9gnKaGmSg18QKd0oEgqzrQIKFe+wtcdtyCoTtbsNU29lyw4RfxffDEGXnjCBOpWRUg==","shasum":"bc1bb6c4cbdc82e074cd2beb4c260e8fac4c6d56","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.17.1.tgz","fileCount":65,"unpackedSize":211471,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc2344CRA9TVsSAnZWagAAfckP/RMHmdBusxHcZ7uAXlFa\nM/lQF1af6OvN6UVEyc5OaFir7EAGwuwQ/B2KRpc90DvRO1Aynvtpzcjobc7y\n/dL5LupVRNtpqeiP3KqH1zTYwBsS6Dtfl2n0gjEUSAf0akgOt3XvjeXKw5Xf\nVNEr0eRWMC8HbvNDdwE9AbYgaN9ppGp1nM+5R7Pgjvv6WlAaC/HZIDlVT3Mv\n0ntmfiDHRV4YGrUqfNen+91VPlA0Qz+zV4w8hPXnQxSeckk3ZsfMRHPS3Y3o\nz9wB3Qo2PrdcryOjF4+5h4f65cJQYl41AUbPeUoHMtyeLseIfNaxC0d/7DuY\nmR/8QMJuT2S1JK8X8BSmZO+Ka8BTTyG8OyQDIgwMxRyLd+evAajv3Zbmdz9z\nH7AB57fPWQFDOPRKo8ZiRfuVtEgsLVW/N/aabsMMq3uk+32KhvfC81jpKZwb\nnlTagRLgPB6g0iCR3VUkrfpN4IjiyeKMnDuVljhww7AmjEwOed3LtMxMDvtj\nJ1Nh/Uba0+XVZdxi61G3AyFhozBQbqkXKQHxlbYr1y2Mu5MqCSxTktU0CMP7\niBtllVC5Blel/kVxQp0v2yUzc+iYSNqnDCrugcaGw1HsATVhgDrMQTXv5cG1\nYHDBykf/VHH2i64fEHg3CGTjVk8yRW6zqX/9qwt4DkN7o0RZmhezfYO+Czhq\nsQqQ\r\n=mgH3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDeYKjCa7OUN2FUkKIfic8UQ7SHcFBfQ+7kWAAoFmmYkwIgMdGuB3ryXRrGasPjuMomI+L6wTu7knUhwu/ZUKydhhE="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.17.1_1557888567595_0.9811651360322644"},"_hasShrinkwrap":false},"1.17.2":{"name":"webpack-marauder","version":"1.17.2","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.13.0","art-template-loader":"^1.4.3","autoprefixer":"^9.1.3","axios":"^0.18.0","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^4.6.3","case-sensitive-paths-webpack-plugin":"^2.1.2","chalk":"^2.4.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^4.1.0","dev-ip":"^1.0.1","devalue":"^1.0.4","dotenv":"^6.0.0","dotenv-expand":"^4.2.0","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","execa":"^1.0.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.1","friendly-errors-webpack-plugin":"^1.7.0","fs-extra":"^7.0.0","glob":"^7.1.2","gzip-size":"^5.0.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^6.2.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.2.0","postcss-flexbugs-fixes":"^4.1.0","postcss-import":"^12.0.0","postcss-loader":"^3.0.0","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^6.6.0","postcss-url":"^8.0.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^8.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","semver":"^5.5.1","sina-html-webpack-plugin":"^1.0.1","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.7","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-import-plugin":"^1.5.5","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.3.0","url-loader":"^0.6.2","vinyl-fs":"^3.0.3","vinyl-ftp":"^0.6.1","vue-loader":"^14.1.1","vue-style-loader":"^4.1.2","vue-template-compiler":"^2.5.17","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.13.1","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.4","yargs":"^12.0.1","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^7.2.2","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"daac7e9c23ddaff6921873179cee1c59e024159e","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.17.2","_nodeVersion":"11.10.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-+DUFunpiuCq0jPNdd6JOihrocQdPtkV8pUtKW65ZRENVRqRysP+bPBAWOfpksHDbqqd2hIVa+DGn3R7VLi8MTw==","shasum":"293d66e169486d17045a2c75d71c497d47c85298","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.17.2.tgz","fileCount":65,"unpackedSize":211471,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdCLShCRA9TVsSAnZWagAAg2MP/Rm10+61mh4We5qIBXmo\nfCH/JzGEZSbbUJUPSM41fYMoDzNffbLERB5ypDN82BaC8Ide6uqh4evxEVai\n172TUpdbqQnoKintGwNzoT4cb42e5jhsocLTlh5zijRKNfDEIE9LsZDGz2r/\n47qEhBqPvYdiQ3UWWdpNTnPaB0l8yMnreU2Lny3g0Jbe9SD9yYK7m9K/uzXv\nGBlhYmRFnad0aDqQ/wv/RGYVYgpCtXUFmB8Qw9vfDUcVaUMwRhpg2Wbafb0s\nRtBZxxthLHrwsS2BBmoQqxV9oiRSeRc98jLslufeA4ZeCMcS1H4AjNxtabnC\nFxqfe3K9cy8XHyapKAPBPsfxQt199Go6x9BaaO4+2KMrskDgDawJmdSwevFu\nzODn8jqcDP0iWUHYCdGOSiIT1ikyQqXitQONnwZenipOqljbNL7YRXpApXNi\n7jm0mqC62kmsa1gktoIe/UV4ihBLGDrVP/i2WHJTfTBbSAFcw6w+O7yuXjsT\n0eIwQDO0AoL+AdgnKom92H+1VtVollSsSp36wvj1NT7cj050/Yg4rbmYqIIX\nOy8sBgqUn6nHkBLZGsd7otLYCZGoSTy/NAqq5I0oFEVDMkRSrb44h2X27HJt\nPrAE0zvFOnPWwkqruvwehAPDGqPr9Fx/I/+uM7uRiFHNNFTS+CMmwmp7mBex\ny1eC\r\n=XtbX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD9r9qm7CsV7vfGiDReP0TPKHVnonBYyH2Ts9PF+A7ckgIhAMhzzZOJlbr7iH5MQpaPffBd2lDMDRbJTDK9wubEEWCk"}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.17.2_1560851617263_0.9973366205475143"},"_hasShrinkwrap":false},"1.18.0":{"name":"webpack-marauder","version":"1.18.0","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.13.0","art-template-loader":"^1.4.3","autoprefixer":"^9.1.3","axios":"^0.18.0","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^4.6.6","case-sensitive-paths-webpack-plugin":"^2.1.2","chalk":"^2.4.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^4.1.0","dev-ip":"^1.0.1","devalue":"^1.0.4","dotenv":"^6.0.0","dotenv-expand":"^4.2.0","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","execa":"^1.0.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.1","friendly-errors-webpack-plugin":"^1.7.0","fs-extra":"^7.0.0","glob":"^7.1.2","gzip-size":"^5.0.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^6.2.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.2.0","postcss-flexbugs-fixes":"^4.1.0","postcss-import":"^12.0.0","postcss-loader":"^3.0.0","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^6.7.0","postcss-url":"^8.0.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^8.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","semver":"^5.5.1","sina-html-webpack-plugin":"^1.0.1","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.7","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-import-plugin":"^1.5.5","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.3.0","url-loader":"^0.6.2","vinyl-fs":"^3.0.3","vinyl-ftp":"^0.6.1","vue-loader":"^14.1.1","vue-style-loader":"^4.1.2","vue-template-compiler":"^2.5.17","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.13.1","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.4","yargs":"^12.0.1","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^7.2.2","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"6cf91602c0499577eb669a87c2e4c834ac4258a2","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.18.0","_nodeVersion":"12.6.0","_npmVersion":"6.10.0","dist":{"integrity":"sha512-VWTmLj+O+Idfli+rcwiSu4sLeTNgqXmLNynP7HS67CxwfgY5Ig/6SCrd7c8lCIAiqfH1G2CwNZbWOwGW7r2hPQ==","shasum":"48cb3e549d520cea0ca67761f16d4d07a3106a7e","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.18.0.tgz","fileCount":63,"unpackedSize":167409,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdS8nECRA9TVsSAnZWagAAd8gQAI1uwzd9UJXE+eLFunkE\nPl7LCdjgC9YCe9JeZxDofhYcyYI8phN7JZia+FF426EBnW8u71Q/2VF4oQY8\nj3Nw0JSSvOmCSq5j+IIzYYEBw6zKce3Hg62zq3FdZncAnbit1QdkQmlICQw9\n3CVK7xe6JhTEsoH7s+fCUK+29Wq5UgQXpJ3txS3M1U64IxBb3XRmm6XOWazJ\ncBZuPuxUNVfupRrB4V3flDvv38IRA0sjtmcZVi5qmvHc9eQ7+jhQ0JDZqGJH\nfmVbef9MZkCajZTbBCfvmKGpuK2Zmrggsz3+wn/aIQOyjQDEakp0zAJirrQb\n1Jslk2I6HrlqmdCIDETesdbzfCz9D22YA2KILnrY05xBnTy3HvBtpzIYWuS5\nstPJ/xU1/uoZ6oYprltnRpIh4R5NEDpQGYdh/aLwKdz38/2R2N0W/L8SG5ao\nMq0sXZ1IexyDmLoq/0ISYM8aG0XAdKdbXoT/DlFatwcv5nxF5s33DJiJ5k7W\nugcPTEpUS9IO2lpXHM/gcDJp7Dq9rgbE5zPQxNfmfpMryRt7B1tHOMbzcRol\nQdDr9oM74AghaMTBM7Z1J5W2iyRmLRx3uzBgrC35rMritvTCzFiSMwIcGkyw\nYBXWkJNV8GCszXKgeTlZFqGXOfd6jJgdxNuZmjQiYYTrqWFxfezwHImd+rd5\nW1fW\r\n=Z73G\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCZBmPCwtkZY8dMUmEKYCZufWV08PLPlTYh7dLNJgaOLwIhAPh29fY0lUMRfTcI62TesMisQCe9ZhQ4JtYfxeaJ0/Ry"}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.18.0_1565247939728_0.008603495319016163"},"_hasShrinkwrap":false},"1.19.0-1":{"name":"webpack-marauder","version":"1.19.0-1","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.13.0","art-template-loader":"^1.4.3","autoprefixer":"^9.1.3","axios":"^0.18.0","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^4.6.6","case-sensitive-paths-webpack-plugin":"^2.1.2","chalk":"^2.4.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^4.1.0","dev-ip":"^1.0.1","devalue":"^1.0.4","dotenv":"^6.0.0","dotenv-expand":"^4.2.0","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","execa":"^1.0.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.1","friendly-errors-webpack-plugin":"^1.7.0","fs-extra":"^7.0.0","glob":"^7.1.2","gzip-size":"^5.0.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^6.2.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.2.0","postcss-flexbugs-fixes":"^4.1.0","postcss-import":"^12.0.0","postcss-loader":"^3.0.0","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^6.7.0","postcss-url":"^8.0.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^8.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","semver":"^5.5.1","sina-html-webpack-plugin":"^1.0.1","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.7","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-import-plugin":"^1.5.5","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.3.0","url-loader":"^0.6.2","vinyl-fs":"^3.0.3","vinyl-ftp":"^0.6.1","vue-loader":"^14.1.1","vue-style-loader":"^4.1.2","vue-template-compiler":"^2.5.17","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.13.1","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.4","yargs":"^12.0.1","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^7.2.2","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n> 注意：本项目使用了 async/await 特性依赖 Node.js 8.0 以上\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n- [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n- [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n#### Test 发布\n\n使用 Test 发布功能，需在 `marauder.config.js` 中注册 gitlab privateToken 信息。\n\n在 `build` 命令基础上，可通过添加 `--test` 参数发布到测试环境。\n\n```bash\nnpm run build [page_name] --test [tag_message]\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n### 启动微信小程序 mpvue 开发环境\n\n`webpack-marauder` 除了可以做普通 web 开发，也支持小程序 mpvue 的开发环境，详情 mpvue 的使用方法见：`http://mpvue.com/`\n\n```json\n\"wx-dev\": \"marax wx-dev\"\n```\n\n```\nnpm run wx-dev\n```\n\n在项目 `src` 中会创建 wx 目录装载基本的 mpvue 的初始脚本，然后会在根目录生成`wx-dist`目录，使用微信开发者工具直接调试此目录即可。\n\n### 微信小程序 mpvue 打包\n\n`json \"wx-build\": \"marax wx-build\"`\n\n功能同`wx-dev`，会一次性在`wx-dist`下打包好 mpvue 构建的小程序代码。\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"05784a0a5f5b5c26e7ddccd23416ca2198777050","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.19.0-1","_nodeVersion":"12.6.0","_npmVersion":"6.11.2","dist":{"integrity":"sha512-OyvqoSTH5z4dfLn9i9WNi9oBDKJT8ABoh20Owkw0zUJ6Ky4ikiGTLoaZJmJZgPR2tnG8TWHvpVzEKQjWq5ISwA==","shasum":"420f6dfcd555347d1e96c0d846daf78497a5214b","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.19.0-1.tgz","fileCount":63,"unpackedSize":168543,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdcM7lCRA9TVsSAnZWagAAtJEP/1kGiRklWF9IPnBz1mQa\nnvfM9OZJu4X0rU5lasPzj5iVYow2uPpN4HSIdETqYwlRPnLpspg7Q4kgRqwQ\nT9eBDtCTuPEc/O2dMuuXQpkIYrgx6zEDx0QpLIul/En05sW1jzj+MuFllIqW\nh/rAMh0hxY4q1nu5xWBzx5VeE/zuC9EcpCVGiVwnpBtnC4HD3+Q0WYif41pI\n1c/FIECOTuODKl7rPPEqiQCARzL0hNx46sYSX9fTtrtQ3EYacDRkAtJlyAn5\nsgyRgaiI6jM25Mi8dARb3FwI9NTmQB10xgP1AVdmcwQN1ogWJV2Hqqcoe0me\nTzrEjoLiWqqV1WY6aQeXxhY/t5f8btW3u1RufmOA5JzZsksHsr6G5BZwP4nG\n9kCJfBu9LTzZCvejmkFHSS66TQNZ1awCjm9FZsCPmRQOeNkm0DF35a+3PzTn\nFsFmqLs2W1hhZ2l9JCuCRbsLRYpQC3imKUpyBHHVj6bJO3j0Rzvqv5C7Lp8+\nVyi1vO7flEp8rd6XqzmAt6EveJuA+IEoXWfXlhLsOGm0aemkNiyS62IIBxYq\n+t47g3yOzPKcwH0SqzPbkNxSofGnvJrHJHSJKlxTD18zgWSEuqhS/Nb7lGsu\nsh/FlCAXvuon22R7TJc1/g4opFrOKMltby6eGMqzMIYDQgs2FGwS9cMDiKHl\ngfQm\r\n=6Nhc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC/IA6iUJX1+HuUCp7nIiramhswIlUKGp3UqT26E/hs1gIhAMfqOGLGev1r0UAYG7uQ5/nIqi12bnlxhWPANC41wAdP"}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.19.0-1_1567674085033_0.3791658581611832"},"_hasShrinkwrap":false},"1.20.0":{"name":"webpack-marauder","version":"1.20.0","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.13.0","art-template-loader":"^1.4.3","autoprefixer":"^9.1.3","axios":"^0.18.0","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^4.6.6","case-sensitive-paths-webpack-plugin":"^2.1.2","chalk":"^2.4.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^4.1.0","dev-ip":"^1.0.1","devalue":"^1.0.4","dotenv":"^6.0.0","dotenv-expand":"^4.2.0","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","execa":"^1.0.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.1","friendly-errors-webpack-plugin":"^1.7.0","fs-extra":"^7.0.0","glob":"^7.1.2","gzip-size":"^5.0.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^6.2.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.2.0","postcss-flexbugs-fixes":"^4.1.0","postcss-import":"^12.0.0","postcss-loader":"^3.0.0","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^6.7.0","postcss-url":"^8.0.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^8.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","semver":"^5.5.1","sina-html-webpack-plugin":"^1.0.1","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.7","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-import-plugin":"^1.5.5","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.3.0","url-loader":"^0.6.2","vinyl-fs":"^3.0.3","vinyl-ftp":"^0.6.1","vue-loader":"^14.1.1","vue-style-loader":"^4.1.2","vue-template-compiler":"^2.5.17","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.13.1","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.4","yargs":"^12.0.1","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^7.2.2","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"ed0d5d3e44549cc95fba516c1f636e9c16ada27a","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.20.0","_nodeVersion":"12.6.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-iw+awmwpUo2aoYRN4mfKCmm0Jcnsb7HG7cRLwOA4ridtW6lBnpW5AQp0jQi2Nv4i+Bc7R8GA0OOceDF0koat8w==","shasum":"dc0d467facfe415a0d9133aa2d45c2b315a3296b","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.20.0.tgz","fileCount":63,"unpackedSize":168654,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdxAJFCRA9TVsSAnZWagAAYZIP/25+JnRVDC9XbKM1P0KV\n2mQ9/SOlBTS6VE9S9OObPKxcgRgONJr2Ij2YyifB90E/6RBtswp4KwD5L9xf\n20d3CckAaZ+F9VgYakOr/prknEo3hCYrTyvZiE3mXkD1mb7uocBFGIi/Y+yv\n4UIGAKjvq8vzGQHp/auHwcz1gv02OMEeLVAI5mCNkmKYpDTLZzUubkBNx5wk\nGtS8WkjjYuWPBYyyJlMq93WjPk/RJWbUw+O87cuytEvFWaboSpwjpzd9vgZK\n2+VKS9cGjUs28BPDJ/ZDMJr1bnwUZcN9mugUOoybL+G8mER4sn3+fyRyitQj\n0zXlSZ01luZRunmUGTxGw6j8rB5vvQx52MTs4oRFMIUE9AmzQAdR+FBMYHp9\nnq/TAkMVdns1kfx5ebwK6bi9zyY/7x9o8vdeKEOwm/qCpIsdWPtlm49Jotuv\nWX1bqrsWQOXUdam4+j2WpLkZJC1/NL0fr1h77WpjTHqvg3Y1Fw2xakQY5Z9K\ng5YQg8vw/X3fz4TviRt0wfT1Gym35uXkI2En2tliW81IV6WzCdx1WxRton9I\nbnftgsheAwKWhKGaP1MIb/cBaBKAtWoLJlSNUKxGkDe4snPjU6bPMRxgaqRn\np+lwOjVJFPzElMCXDQczTXPaILqAm2a5gC9QyiZxAv0E3kMGR1r0B1uRKWpW\n/ITd\r\n=idse\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGNGBARQhCgHGDCm9RHGmk09XznhX5kBb7a+leqnVA9lAiAuLZsS156VnAugCdDDASE1lLIabhETRCaxbDFa4fOqBw=="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.20.0_1573126724772_0.7635239866552914"},"_hasShrinkwrap":false},"1.20.1":{"name":"webpack-marauder","version":"1.20.1","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"./bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.13.0","art-template-loader":"^1.4.3","autoprefixer":"^9.1.3","axios":"^0.18.0","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^4.6.6","case-sensitive-paths-webpack-plugin":"^2.1.2","chalk":"^2.4.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^4.1.0","dev-ip":"^1.0.1","devalue":"^1.0.4","dotenv":"^6.0.0","dotenv-expand":"^4.2.0","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","execa":"^1.0.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.1","friendly-errors-webpack-plugin":"^1.7.0","fs-extra":"^7.0.0","glob":"^7.1.2","gzip-size":"^5.0.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^6.2.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.2.0","postcss-flexbugs-fixes":"^4.1.0","postcss-import":"^12.0.0","postcss-loader":"^3.0.0","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^6.7.0","postcss-url":"^8.0.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^8.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","semver":"^5.5.1","sina-html-webpack-plugin":"^1.0.1","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.7","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-import-plugin":"^1.5.5","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.3.0","url-loader":"^0.6.2","vinyl-fs":"^3.0.3","vinyl-ftp":"^0.6.1","vue-loader":"^14.1.1","vue-style-loader":"^4.1.2","vue-template-compiler":"^2.5.17","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.13.1","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.4","yargs":"^12.0.1","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^7.2.2","prettier":"^1.10.2"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"bb90a375adba8fc68bc8303563b408890beff7b2","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.20.1","_nodeVersion":"12.6.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-X2jPTrmRaHGmfpzWEXYpYshd1JnJRX4A2puYcgNe0mgUuCyLPT3W8HsaFfglPZ4dAyEqX/EddNlWboPGOB9jdQ==","shasum":"1ab47f65289723157a205e69e40040a557fd5536","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.20.1.tgz","fileCount":63,"unpackedSize":168654,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdxASaCRA9TVsSAnZWagAAxaMP/1p4Se3qq4Hg9QtCjwv7\nYN+K1o0MqWaz+RtHO9+NxOOsSn4EwB0f6FpK7opBPu2jbNh737IbzJZzWVuY\nRkrV4j42Pq3r1OelT6wp18TIkBJYxHsKy3WoP1gGrJqycYYs2ebBfxKgzTiQ\ng/GbRMaa6OzKJQBQy3JySXRSn8mAgpBwzP+5CZ0lAF7hYpQbg249KDlPLxgc\nqERYTa/xs29isMsdIGWUlUGYUt+SV687ZAgdmIpCNAirQ1mOPA+ONVAEO3OW\nSJforXBDtEWyxseB6ezeI+S+W4Z4vyVBa4TGO1zViPjDPiTZKJdDrnTrYBtj\nRYEn/P1bWSqPklR+uXAzqQRQcrJ/lrPChpBOFVQA+NjlqGqwwgYK6cY/RRj2\n5t15eDoWIit+iX8eVfZ7kpdFFq9m6eO/nKwHnQJlIgz38jGd6l/ttipQUX+5\nEq2KYw/lXrqZk1iTfIyLEwLGpKEiSvF1sOnsoF+9Q6aOHLgxfak6b+hTRm9A\nMVas/44HC8QbBxILrnYAmcOGpa/liZhpkKE9XURa1Q0PKrwwP/v9moD6y1x1\nQFezCijVnOIH0mHjqkbU46FeuMR7Acfk8qju4wvY2JHf4r7R8ax87/TB/uR+\n9cw1k01+y4pe+Bj8KscK0ZCcCaAhPeYuU3g9WcVkuN3CkmnMWdFdjELXpGaX\n10bQ\r\n=Pk9z\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDtbtSj6O6B6FOUM1aWZTRzbIND6dBZiSiAmnpZhfjQ+gIhANUlnqv36VDCAn75PhZFKqYEiPkG2gU8GRRFcWvAnYO8"}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.20.1_1573127321609_0.6770695200653103"},"_hasShrinkwrap":false},"1.20.2-t.0":{"name":"webpack-marauder","version":"1.20.2-t.0","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.13.0","art-template-loader":"^1.4.3","autoprefixer":"^9.1.3","axios":"^0.18.0","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^4.6.6","case-sensitive-paths-webpack-plugin":"^2.1.2","chalk":"^2.4.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^4.1.0","dev-ip":"^1.0.1","devalue":"^1.0.4","dotenv":"^6.0.0","dotenv-expand":"^4.2.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","execa":"^1.0.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.1","friendly-errors-webpack-plugin":"^1.7.0","fs-extra":"^7.0.0","glob":"^7.1.2","gzip-size":"^5.0.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^6.2.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.2.0","postcss-flexbugs-fixes":"^4.1.0","postcss-import":"^12.0.0","postcss-loader":"^3.0.0","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^6.7.0","postcss-url":"^8.0.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^8.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","semver":"^5.5.1","sina-html-webpack-plugin":"^1.0.1","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.8","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-import-plugin":"^1.5.5","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.3.0","url-loader":"^0.6.2","vinyl-fs":"^3.0.3","vinyl-ftp":"^0.6.1","vue-loader":"^14.1.1","vue-style-loader":"^4.1.2","vue-template-compiler":"^2.5.17","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.13.1","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.4","yargs":"^12.0.1","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^7.2.2","prettier":"^1.10.2","typescript":"^3.7.3"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n> 注意：本项目使用了 async/await 特性依赖 Node.js 8.0 以上\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n- [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n- [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n#### Test 发布\n\n使用 Test 发布功能，需在 `marauder.config.js` 中注册 gitlab privateToken 信息。\n\n在 `build` 命令基础上，可通过添加 `--test` 参数发布到测试环境。\n\n```bash\nnpm run build [page_name] --test [tag_message]\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n### 启动微信小程序 mpvue 开发环境\n\n`webpack-marauder` 除了可以做普通 web 开发，也支持小程序 mpvue 的开发环境，详情 mpvue 的使用方法见：`http://mpvue.com/`\n\n```json\n\"wx-dev\": \"marax wx-dev\"\n```\n\n```\nnpm run wx-dev\n```\n\n在项目 `src` 中会创建 wx 目录装载基本的 mpvue 的初始脚本，然后会在根目录生成`wx-dist`目录，使用微信开发者工具直接调试此目录即可。\n\n### 微信小程序 mpvue 打包\n\n`json \"wx-build\": \"marax wx-build\"`\n\n功能同`wx-dev`，会一次性在`wx-dist`下打包好 mpvue 构建的小程序代码。\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","readmeFilename":"README.md","gitHead":"757e743fa2f600f0c9a9d13b871e70342ffd1746","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.20.2-t.0","_nodeVersion":"12.6.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-ezrxrDB60EQR6aF218dFo73SjeOpbncRLeWs33N1xKzcMfFnjd2b72DmO+2fQYKTDzaUmbCvuWV+qJmt6cZ71A==","shasum":"c4b572f9edcf3912688fcf22162a862b9a8ed423","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.20.2-t.0.tgz","fileCount":63,"unpackedSize":168737,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd+J+kCRA9TVsSAnZWagAAqeEP/0NLRj+2WYUMtUpeIOJJ\nfXYDcNKjtM9kZyh7cb30cCQOxOn28ahiU+VDZJk6ICU42zAPidgruUSCE9KG\nOTEnL02zIlkII/qfj/5NQLQE1VeTpDu6ZBCoMOB+ys+648S8wT2p5TSLV6S1\nErvrEOU8jsoE/x9wXfWHteQyfeM5vL54CaMoLkd468mI3yTL5ypsKaFfQiHH\nnYz2VsXbqPSYvM5/4xCgUQMuEQY1g824ymnUPEJNZsigS9D/AwGAeIn8fMlv\nCqXgjP1Qv1qq+lRvkCkjaYHKCqTPMeKRHlX+RTGmL0tj+JObnBun9Ty9Tbv0\nmFjxtiX9STNN5rVGlzjHGItFgHXg2dfsVIzzdnlVYFFos8VEEdGIrOHKm/qP\n1ZDyJ7f1E4H5mZVSnpelkGhVkfncg2fzw8qzgtaktQSpyl1Fv6bmoPqXEWgM\nNRRIdZGO2zsedEdFgzA9jY/bKvIm+ykwJrjYCKgURZrC6qwe6p5YnEapFOH3\nMMO+pmdvy4jkdm+FuAuIVF3VYeEbvcx+vFlekMWJG101zRXWfQ3Qd2H+32iU\nNhJmy3iHjuzFq6ksY+jLu7J7N2ZrSGySfA1uckqXSs7nhPBtN96lWFW6Ggr9\nJyNnOpJs91GAVdMLUM22gbWocJDj/23wVxbMXcif1GYBj5HBhP5RR/Sq8yO6\nxtrK\r\n=r45R\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICRNML0LEJWGffTXyqyAUyEiKCWU8pOoJh5SHyB4hAQGAiAKwlLtkaPyUvelF3zMpOCHyjU8sndRlypVviL7vmbaGQ=="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.20.2-t.0_1576574884199_0.4372304841800334"},"_hasShrinkwrap":false},"1.20.2":{"name":"webpack-marauder","version":"1.20.2","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.13.0","art-template-loader":"^1.4.3","autoprefixer":"^9.1.3","axios":"^0.18.0","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^4.6.6","case-sensitive-paths-webpack-plugin":"^2.1.2","chalk":"^2.4.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^4.1.0","dev-ip":"^1.0.1","devalue":"^1.0.4","dotenv":"^6.0.0","dotenv-expand":"^4.2.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","execa":"^1.0.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.1","friendly-errors-webpack-plugin":"^1.7.0","fs-extra":"^7.0.0","glob":"^7.1.2","gzip-size":"^5.0.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^6.2.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.2.0","postcss-flexbugs-fixes":"^4.1.0","postcss-import":"^12.0.0","postcss-loader":"^3.0.0","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^6.7.0","postcss-url":"^8.0.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^8.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","semver":"^5.5.1","sina-html-webpack-plugin":"^1.0.1","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.8","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-import-plugin":"^1.5.5","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.3.0","url-loader":"^0.6.2","vinyl-fs":"^3.0.3","vinyl-ftp":"^0.6.1","vue-loader":"^14.1.1","vue-style-loader":"^4.1.2","vue-template-compiler":"^2.5.17","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.13.1","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.4","yargs":"^12.0.1","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^7.2.2","prettier":"^1.10.2","typescript":"^3.7.3"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"cdeae53b9a46b8056a57bdb7aafefcb6e94458e2","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.20.2","_nodeVersion":"12.6.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-wt8eJasq/tuohni11xEzgt0KZJqn1Rjdxrt6RQNgmyS3OrtKiKAA3sVNMgZNjwS0B5G47QCMBLir7kukyxWyEA==","shasum":"775d72a48c3abee96da3303f8c07029b3f65284c","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.20.2.tgz","fileCount":63,"unpackedSize":168733,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd+KEvCRA9TVsSAnZWagAA/q4P/3ScZNI4jn6Il2bbshGD\n0W3W/3zyby9fKMT5YmO/xfjXIby5MHx8U2uABDOjG0cJQhYzSF7Uuys8dU6U\nW5OAzrSbZTfl3CEXgBipqsHx4RDAwaKwB/HhLVl0FW7v/P3bB1+uLgpCxFTK\nvpN+GPlfZbVSAGbCC7fM06Tk+nCZTmtVqopQClGfUaJUreENHf+GkpKELjx2\nUXXUszYT1m3eXpMH2wwCMsrKdNmwktonWBmdDUgf7f718NE0qR3VpzHuAlGL\ncNNBPW/cEAF00GSUHVP73l/oqMteZo8/A8yjSCratBN0EJwHQOdimz/RmPAy\nipQsBe1WiTIlEcve/K4SIuQ1EGuXtIlp+GdEFqYlAIBk44QXPPL9bTfgd5Dt\nW40WrCcZq8gB84WJomsYlGgJt4wF42mK7KF8T2l8W2FYFd6UhMCNqjGu1wUZ\nWzh+nvLb9gi1US2RGQb9jUeWQv1xAYYcxRnjOoRFlhBXx3TmueWmWHpv+FXs\nLKCswKw/oR+ECMVIFZVcoO0osLbJVtynp2NzemFNjGMVHQ5UWhLJQV+s3Zmx\nfozjo/JltwVuQ9+kZL5viP2iK1F/D+fTHN8xbZCcawAkUA5TY6aw5yAJfc8X\nH6x+ySEjYcgqD8mrlq77esgqOdh2zBc1jFEXImQMv5sacAGfftXWgizTTrWp\njSHd\r\n=EW4+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDM21SfMrkEoeI0PFpe72elVpB5ug5cv1vlhCIJVgEeSwIhANpzRXYo0gKr3fZPSUiqysx/myCQqitHd5nOiS6DBLVs"}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.20.2_1576575278928_0.15892614071538946"},"_hasShrinkwrap":false},"1.20.3":{"name":"webpack-marauder","version":"1.20.3","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.13.0","art-template-loader":"^1.4.3","autoprefixer":"^9.1.3","axios":"^0.18.0","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^4.6.6","case-sensitive-paths-webpack-plugin":"^2.1.2","chalk":"^2.4.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^4.1.0","dev-ip":"^1.0.1","devalue":"^1.0.4","dotenv":"^6.0.0","dotenv-expand":"^4.2.0","duplicate-package-checker-webpack-plugin":"^3.0.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","execa":"^1.0.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.1","friendly-errors-webpack-plugin":"^1.7.0","fs-extra":"^7.0.0","glob":"^7.1.2","gzip-size":"^5.0.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^6.2.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.2.0","postcss-flexbugs-fixes":"^4.1.0","postcss-import":"^12.0.0","postcss-loader":"^3.0.0","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^6.7.0","postcss-url":"^8.0.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^8.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","semver":"^5.5.1","sina-html-webpack-plugin":"^1.0.1","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.8","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-import-plugin":"^1.5.5","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.3.0","url-loader":"^0.6.2","vinyl-fs":"^3.0.3","vinyl-ftp":"^0.6.1","vue-loader":"^14.1.1","vue-style-loader":"^4.1.2","vue-template-compiler":"^2.5.17","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.13.1","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.4","yargs":"^12.0.1","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^7.2.2","prettier":"^1.10.2","typescript":"^3.7.3"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"cdeae53b9a46b8056a57bdb7aafefcb6e94458e2","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.20.3","_nodeVersion":"12.6.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-A9eXMjisQXhknIL75q0ZfeJsVK1rnUsjrV0r/l3lLnlQFqyP1flMb5gp7LVtuv/aBXHbrN2fjkGnjwQwaMgsOg==","shasum":"e9437d9f928233047eb0034613b354b4fa9ce296","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.20.3.tgz","fileCount":63,"unpackedSize":168791,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd+KXkCRA9TVsSAnZWagAAzqIP/19DIzIypK65GEvQiAHW\nwALs1Mx2VEW2xXK1HHE6MqfRg7/TUyBkr3/0noLrmqDFvLURiCoLh/p5mz8m\nZuYeqJ1Wa3vTXTa7J55w8sgrS9j6MgFdxmkumNPeZLgb/g+CMQ2QRxbkXcJJ\ns7iwJfsrcFhEWJOe0f+hf+osDgGAoep3Nhm/1zRePHid+w9lW6zP1SxdhK76\nQ8NyYMYirc+7uFjwbvoL+oiKzcUv9zkQlc+eKrq+fV6yT+thcyfzpQ7GSVss\n7QZnVzleRKzDGzt+XDsZWspl7BBYvAeoatLSPrRaDmmSBgbb78H3kvUPGYST\nxRia3kegGozqvZVrTqAYnadQWbNzY7gpQmXBmTgTt56kydK2Q4FeLiSGbvuk\nCKuNnBpzSVhAlyWYK2VfwpHg3LxXqnH6G/WqohVQol1kAJMHJ4ElD+bGne2I\nJ9w97qPwBQDXkm2VUTOxFlHFwjV69Ch5xsBVh33SrJPwewLb1dZvHDWHlSUq\nIaaJZpvrUag3ieMKHytzOyi1O2qg3mF3wR8gTf5X938yvzbkHTAbGllys7Bc\ngNsLMipmg48Jxs2XhGqizSKWL+oJUkorfDFnerqDK6BJRuuCABLlO/bQrkZl\naxMLn0eMZDgfHmBq4wh+5b/3XU8T6OjghMH+xH6xax2T4KReKyoeEvQIeSAv\nozyV\r\n=hunt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDG5BjWyA6CCGy/S88UE2S+Q1w2itixxWpW53hceA+0SwIgLDLgp8is5magonXLU3nlQd6sDBcr0nVPXoPjCzqLBDQ="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.20.3_1576576484079_0.9519430456580085"},"_hasShrinkwrap":false},"1.20.4":{"name":"webpack-marauder","version":"1.20.4","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.13.0","art-template-loader":"^1.4.3","autoprefixer":"^9.1.3","axios":"^0.18.0","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^4.6.6","case-sensitive-paths-webpack-plugin":"^2.1.2","chalk":"^2.4.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^4.1.0","dev-ip":"^1.0.1","devalue":"^1.0.4","dotenv":"^6.0.0","dotenv-expand":"^4.2.0","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","execa":"^1.0.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.1","friendly-errors-webpack-plugin":"^1.7.0","fs-extra":"^7.0.0","glob":"^7.1.2","gzip-size":"^5.0.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^6.2.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.2.0","postcss-flexbugs-fixes":"^4.1.0","postcss-import":"^12.0.0","postcss-loader":"^3.0.0","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^6.7.0","postcss-url":"^8.0.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^8.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","semver":"^5.5.1","sina-html-webpack-plugin":"^1.0.1","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.8","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-import-plugin":"^1.5.5","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.3.0","url-loader":"^0.6.2","vinyl-fs":"^3.0.3","vinyl-ftp":"^0.6.1","vue-loader":"^14.1.1","vue-style-loader":"^4.1.2","vue-template-compiler":"^2.5.17","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.13.1","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.4","yargs":"^12.0.1","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^7.2.2","prettier":"^1.10.2","typescript":"^3.7.3"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"7f5c554a6d4555fcf7b01bdb4b88970f0c48ca95","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.20.4","_nodeVersion":"12.6.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-42Mo94qpSvlINRiQnOsnMYWkgPZ/OBAs1bXoTJLDzDB/Pc+KaojPOMwDTp6WnnRr4e0ySfaOJBaKA1WrLH5drA==","shasum":"44ce59ec9047d9dc642e62aafa599014738e8845","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.20.4.tgz","fileCount":63,"unpackedSize":168791,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd+K9yCRA9TVsSAnZWagAA3ycP/jCnL+dbddb/miWuIKBq\n9h+xfbwpaqby6sLnHc8pLSirQCh1YKl0TXsJw2FeLcrU4Ls63qAhLUd+HwvL\nuPyMF69ZIQ7qsr5cByF4fIxWF/kHr6/lLGj9LbfNXn8snUQofPhfNYfRZNqm\nRhUpAN9o1dTRbLOHvlSfVSzD7ckkUAUVLzRsT3uS4SUM/yPl2fo9SjAg7mhU\nZvQpM3VgIqS3LdXvsk+k2h/Cc9aClbQdB+LqRiD9dSLLo3kIoipnFWXw5Rnm\nQ/KBTL8N0U800dReTVttHcGIXgnTAckxnaj1op3kvL97vD7C+hBfh3DKQnWY\nHNnAJyCWQcm2IHyLX8P3EigIpSIY6lKnabFgVdySH7RTQdVs6BaChPrQsJi5\noy2wpGF39JIuYaaJ+18RxBYAnkrzqd36N6hUOHDN82DyQ4pHONHW+vM07TTk\nI3P7HhJVrI60s3JAAm8UZntGXlc300xotMHdblvWCV9rhosIC4LbCkdw0rud\nlbJeft5s502VHjSiXV4Thin/YAuLgE2uceCJbkxpH3QM5iqXI/+e8Wxshwps\nnUmT8mTZzXBAKjPgee7QbtTv3G7Ss6Xn5NgVuqWFXa3i7YieUM4qo61AYGAe\ne3wy4QjbZmmrZy5jb4i0p2gQv/pzTAjHPfFhDboApMe2EE2DAS+urQa7GBs8\nHdkh\r\n=/w07\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICKDKxwcd7bLSIDnID6sFF+S2do3aWLzPNDl5/hylh/AAiAwWrlDVNAeNwrucsNRKUK0TjL1YQHxJrEUoc9HA3CezQ=="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.20.4_1576578930109_0.12060820772132264"},"_hasShrinkwrap":false},"1.20.5":{"name":"webpack-marauder","version":"1.20.5","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.13.0","art-template-loader":"^1.4.3","autoprefixer":"^9.1.3","axios":"^0.18.0","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^4.6.6","case-sensitive-paths-webpack-plugin":"^2.1.2","chalk":"^2.4.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^4.1.0","dev-ip":"^1.0.1","devalue":"^1.0.4","dotenv":"^6.0.0","dotenv-expand":"^4.2.0","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","execa":"^1.0.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.1","friendly-errors-webpack-plugin":"^1.7.0","fs-extra":"^7.0.0","glob":"^7.1.2","gzip-size":"^5.0.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^6.2.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.2.0","postcss-flexbugs-fixes":"^4.1.0","postcss-import":"^12.0.0","postcss-loader":"^3.0.0","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^6.7.0","postcss-url":"^8.0.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^8.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","semver":"^5.5.1","sina-html-webpack-plugin":"^1.0.1","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.8","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-import-plugin":"^1.5.5","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.3.0","url-loader":"^0.6.2","vinyl-fs":"^3.0.3","vinyl-ftp":"^0.6.1","vue-loader":"^14.1.1","vue-style-loader":"^4.1.2","vue-template-compiler":"^2.5.17","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.13.1","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.4","yargs":"^12.0.1","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^7.2.2","prettier":"^1.10.2","typescript":"^3.7.3"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"65c4eac5f6affd41c6680f8d572b614f7445e045","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.20.5","_nodeVersion":"12.6.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-PC9vvxmHMXUvNlr4JSz6u3li8jw3U7JKA/VTi7niMn5eQ2tWsbEVMPQ3UZKz7ak0LTAectpGyu7dxsLbk+uRgw==","shasum":"666b40e543b9d31536bf0e02c9ad9155e6448f8c","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.20.5.tgz","fileCount":63,"unpackedSize":168802,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd+vM0CRA9TVsSAnZWagAAnKgP/14YtcI787WhXR2PWx8v\niXeVcoqoDogeAP8hewGuZ7Y+5tPiL0eJ/ykXoZufttXLf/B1lymWA4TJpP6W\nyKrCyVszZPnW3hfu8dYSn5hUEyfISBVIPrvaT7CBWgEIPep0iAWNRS4b3Ymk\nOSmzHxbpBfFWpouUNHI9QtgS9OJUxGamY+ZKjsgd9WzqGXHoPbi0HzGPsdcY\n5mOTxGHwbMAO45DiPVRSanMTwB39yu+ns2UcpUU5k8rV9ardXqhba1/HMMTE\nU6Q5HAoHQeUXSzKBCVdg0X0jFeWqFMhqv/ls+oxRLlnnG0/DUegBbmFPHc6z\nOFuNWUNJuV32HKpKBnCl8QCi9tyTPI6Joay8J1cRcntgqzu0pigHOBwWIKZS\nwkKDn31hqt66B9SLEtv6GMVNWfkLvrrtZt7wODmF47ZouRn6CRDiXR1pFSEJ\n2Z6AXUWjeVGKPg9sUwqak8H1KZfNuL/Sk2N+oihDpw1naiXS0kGXDNMddyFU\nmIPMyKtNUwJ7JsNDXB9OzF8FdOLdhvfC4KD1Ow3uBOcCznTfFtF68QUalWhG\nNnxdrsX7RxfOiSTxBM0PHPSgFA7+rxPGSjPcb41YPvghFhp9HJrCgJ3+7z9I\n8kSdENOvCzOkT/Yzs/zus1bbsBXtHrPTUFjRQiu2+WJg4Zlzwhc9BFgN56v0\nWxkf\r\n=2UJI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBZzksmDNUU3Nbuf5BRCL6/L9p2ZgiVw1nUupurVskcqAiASFE7H8A3OoLFA6+dsh2HFr/d5CMtgb7qFrBLr539TbA=="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.20.5_1576727348065_0.7417036344263972"},"_hasShrinkwrap":false},"1.20.6":{"name":"webpack-marauder","version":"1.20.6","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.13.0","art-template-loader":"^1.4.3","autoprefixer":"^9.1.3","axios":"^0.18.0","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^4.6.6","case-sensitive-paths-webpack-plugin":"^2.1.2","chalk":"^2.4.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^4.1.0","dev-ip":"^1.0.1","devalue":"^1.0.4","dotenv":"^6.0.0","dotenv-expand":"^4.2.0","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","execa":"^1.0.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.1","friendly-errors-webpack-plugin":"^1.7.0","fs-extra":"^7.0.0","glob":"^7.1.2","gzip-size":"^5.0.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^6.2.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.2.0","postcss-flexbugs-fixes":"^4.1.0","postcss-import":"^12.0.0","postcss-loader":"^3.0.0","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^6.7.0","postcss-url":"^8.0.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^8.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","semver":"^5.5.1","sina-html-webpack-plugin":"^1.0.1","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.8","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-import-plugin":"^1.5.5","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.3.0","url-loader":"^0.6.2","vinyl-fs":"^3.0.3","vinyl-ftp":"^0.6.1","vue-loader":"^14.1.1","vue-style-loader":"^4.1.2","vue-template-compiler":"^2.5.17","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.13.1","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.4","yargs":"^12.0.1","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^7.2.2","prettier":"^1.10.2","typescript":"^3.7.3"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"6237e9e7e56c42182bc87a22b0fc9115247489fc","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.20.6","_nodeVersion":"12.6.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-ObM2kYXNY7r12EByFqQIfmA+hJlpmIr55OTXD1B1c1X3vBlPAmLasDTbFJq0u0i0RgjVTbIdz+h8tjgsBFTS5Q==","shasum":"e3e10add2883387d15f364798fb8157b3a338697","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.20.6.tgz","fileCount":63,"unpackedSize":169285,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd+zWECRA9TVsSAnZWagAAUeQP/R9+ndJnWrcjes7pNCFP\nPFXjxfTynXq2XcXDi/vtGRE5oV5/x0DduCI+CqIEWalSEEUZiVIcFKnYfnqA\nglaGPtBf1GbwE2yYsDqKVqvB+rQY7IaPL1hOoxzA4q4c51FWKH9Azwmwtsf+\nHU3kLe/OrMJ21CFL9d7chKFo40UgoxjpXDuWELr+2DKwwS+ldG7RwNNacwar\nw/h6OnwU0jtTJfr9oV794gRNLoSj1FddQb5UtWKqF8/PAsNv2HkVNSl1fJIv\nXz2/7a0BDuwpVg/gfCP0o5Kn4whq7H1Q34Cz7lSN6L8G6/+OCuvFN4k8Dttx\nuQBmgm9R6mooEnZAR9QTh3iTkhgqteQplEE25FfTlNTQ4GZUvIUBxjmkn4rl\ngn7W6bZpFh3pOS9HYwPO9ai0KLv5vlg/G8/roZ0Ai2db8cdPFUc496iYMaOK\ndwtYOFjj3QxZxr+j1CuL+eEnlY8WMohnS7x6+Y/pGgr6h9mwdFZnZU/0IXEI\nS6Ggo+v++NLnHaCHtUpIrSUXQonOWEudRArsiAZT27BXXivsVCyXzKh5Ffc2\nrXKDmIvTSUqdIzromtedU/8XaKoh92KWFhch8h2WPUPd3Q03wIfWmkofPkOu\nhj5EfxEMXerA4y/iz0jRWIinwTG2TUmrGnMyF3ul8OlEznSICpHnrsUDbkFl\nFXAt\r\n=HiNt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFUksuZ1VQca8OGWcNyibrHGEriKlWRZleQNnccBsNgnAiEAt9jywLLibxTAwmDGueHznQeheaOcGSt2tPGmSOfCKhw="}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.20.6_1576744324455_0.3553156247788689"},"_hasShrinkwrap":false},"1.21.0":{"name":"webpack-marauder","version":"1.21.0","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.13.0","art-template-loader":"^1.4.3","autoprefixer":"^9.1.3","axios":"^0.18.0","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^4.6.6","case-sensitive-paths-webpack-plugin":"^2.1.2","chalk":"^2.4.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^4.1.0","dev-ip":"^1.0.1","devalue":"^1.0.4","dotenv":"^6.0.0","dotenv-expand":"^4.2.0","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","execa":"^1.0.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.1","friendly-errors-webpack-plugin":"^1.7.0","fs-extra":"^7.0.0","glob":"^7.1.2","gzip-size":"^5.0.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^6.2.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.2.0","postcss-flexbugs-fixes":"^4.1.0","postcss-import":"^12.0.0","postcss-loader":"^3.0.0","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^6.7.0","postcss-url":"^8.0.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^8.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","semver":"^5.5.1","sina-html-webpack-plugin":"^1.0.1","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.8","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-import-plugin":"^1.5.5","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.3.0","url-loader":"^0.6.2","vinyl-fs":"^3.0.3","vinyl-ftp":"^0.6.1","vue-loader":"^14.1.1","vue-style-loader":"^4.1.2","vue-template-compiler":"^2.5.17","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.13.1","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.4","yargs":"^12.0.1","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^7.2.2","prettier":"^1.10.2","typescript":"^3.7.3"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"b32b32ce9135e9e3c45852ebf4ac2322140b0a67","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.21.0","_nodeVersion":"12.6.0","_npmVersion":"6.13.6","dist":{"integrity":"sha512-r/oNkP7rVhs0TIdpInTVgKWXeutUMMHbsLcGwNwsKBF8I5CtnCG+ByWg84GcRwiT06nQXQz0+b32/7JL2W6w2Q==","shasum":"04c27f0e2e966e2c032982fd735443663780cb97","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.21.0.tgz","fileCount":63,"unpackedSize":169489,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeJAySCRA9TVsSAnZWagAAB60P/1JqPLUKbVGuETSqG9ry\n6ByunzLqtr6Yz5CPevaZPIlkqnTCCnA/kBHH+z/TbGbz+2ClEEYezZknASnR\nssWGCDpd6X41JAssFYZTvfGWWX4J6q8wGG40s5tVuXUWdr5Gjzh40n+zcvJ3\nRxn5y1Uu2d0FvRSsNeAnpkQ3NyEYIm/EcHVHJ4+n8h19+MvQXnofw6FFtg+r\n452TYGDr44r0V1JKjKlBXXKXeLXD1rLybwKyCSTJ+r0VeIlk0OhjT9J6VUSm\nt2cbIIF0P+U1q0+lmhfGeLjnPyBr1e+igRJI4jJjWUEPWxsgZ6QVhMhuIWQt\nMU3gsi07jPiNfz9MZC9CkVc+b9HQLNkb9l3mOZAIUyYpT8fu4d0U7BANNQAk\nqrMuPpky0dsH/8anic27awlKuXUdOXkLFnumqhWYHXNSuv1xHCNE+HIunkNt\nIF6g+fcT8kQY77GE5AuaWHR8QkQUPpePhiIAY1zr+eehCpCHV6H1oEp2riZs\nLpFq9br1R5Dspx8Z9ZRe2qvL6R2V3zRzIjT1RHVQKCHPh1D7cNrRNciYW5bI\nx4d6xim43FTrwP8sb9rtay4R7Be9McqgGPUcSipujzZIN+AoyOJ+DUypTcOl\nY/K0vgGSwTXGGbr/1F+eQ1yVUzltZ+vVcmEoK5YRTEbEEKeXGTE07ZEbdHeS\nYEY3\r\n=wykv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD5WwvKxbolYeUOh7AU81chrtK4ZUUCRghANwmYiu+0TAIhAM4HhtLFesZhbL1+NxhWcZNaKKahAQUsbb3pGN65hc75"}]},"maintainers":[{"email":"BraisedCakes@gmail.com","name":"braisedcakes"},{"email":"1037028848@qq.com","name":"flypie2"},{"email":"franktech84@gmail.com","name":"happybang"},{"email":"452242153@qq.com","name":"nowheretorun"},{"email":"vv314@foxmail.com","name":"vv314"}],"_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.21.0_1579420817868_0.5231763370050804"},"_hasShrinkwrap":false},"1.21.1":{"name":"webpack-marauder","version":"1.21.1","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.13.0","art-template-loader":"^1.4.3","autoprefixer":"^9.1.3","axios":"^0.18.0","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^4.6.6","case-sensitive-paths-webpack-plugin":"^2.1.2","chalk":"^2.4.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^4.1.0","dev-ip":"^1.0.1","devalue":"^1.0.4","dotenv":"^6.0.0","dotenv-expand":"^4.2.0","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","execa":"^1.0.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.1","friendly-errors-webpack-plugin":"^1.7.0","fs-extra":"^7.0.0","glob":"^7.1.2","gzip-size":"^5.0.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^6.2.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.2.0","postcss-flexbugs-fixes":"^4.1.0","postcss-import":"^12.0.0","postcss-loader":"^3.0.0","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^6.7.0","postcss-url":"^8.0.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^8.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","semver":"^5.5.1","sina-html-webpack-plugin":"^1.0.1","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.8","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-import-plugin":"^1.5.5","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.3.0","url-loader":"^0.6.2","vinyl-fs":"^3.0.3","vinyl-ftp":"^0.6.1","vue-loader":"^14.1.1","vue-style-loader":"^4.1.2","vue-template-compiler":"^2.5.17","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.13.1","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.4","yargs":"^12.0.1","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^7.2.2","prettier":"^1.10.2","typescript":"^3.7.3"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"29b7c11714120dbf051246abe04c13f67d923618","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.21.1","_nodeVersion":"15.5.1","_npmVersion":"6.14.11","dist":{"integrity":"sha512-hn26IYHbVbJ17fgOQJV/lse1fQZgNdjlbmSkCOJZ93ec8Bg19N4PYh1kjKtwe4f363uoCvzHIzF1XAVSx8+wdw==","shasum":"a5d64093703d63773013822b7c99375bd4038f71","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.21.1.tgz","fileCount":63,"unpackedSize":169587,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg0A+2CRA9TVsSAnZWagAA+3UP/izddmWaWryR8v0LAeZD\nVUZoAoP34eMxJGVRtazNO0gS46HcGcdaTKQcBtr0Z0lz15EWJ/4psO+LyCxW\ndHvJ2R7+eiLHuQ4SXF2kixeLFUW6YrDsSQk9P6FIyWcUrSiwo/nfA0H2p0hz\n1SRREupOzrJoihoErnLlAMDzZf+Tcy8l0k9U81UzK1KCI7wdjonJkcNm1vA7\nULBoqSObYPOJnWgaFDsLa+mTTwwyvEktICS2bPhlP2SNxb4aKxylRqJZ/+3n\nanw5/7h0sLAcuNC/0wV0V0Rzt5Zi50yEI/7XMEph19iO4MZRHHJQt7nGBPNw\nmbeE0QB4sWiBycmnmCew8lUlx1KgvxipbFMPcbEerBUN22S8ooMwYp3BxEmF\nGT/GI3MCKQZRWNGWOoWHgCMzd4xUalYCOGwTz68DzME5JkUAwhTh1jCXU/FT\n2vlLiFdKnDsVBvIWTgw07wacuUBf57VXrTUl4nUTwA7nzLzgDKfP/sIT3m+s\neauqv8B1fkkcIHz85XUEszOID2vod6PERDLlWpiek4tYGgcIfNhgjonOkFW5\n8H6pc0CN5qeAbJXzVHViU5bLjwZohta+e2CxoBwUe3Ns4gRjffIjcUBn8jYQ\n04T4t4KHxaB2N722i5yQ5iyap8VgczeRKYfaKzuFV9IQMpbC34QJr4KsKPK6\nmT1n\r\n=EP9N\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEJlZkw903p7sWZu2vLHxU5vVGvHi0qLlK3D07YFB9+PAiBBE0WMF2TfnubYb101ETys8SfjMYiOR4+kyHTcdKHc2w=="}]},"_npmUser":{"name":"vv314","email":"vv314@foxmail.com"},"directories":{},"maintainers":[{"name":"happybang","email":"franktech84@gmail.com"},{"name":"braisedcakes","email":"BraisedCakes@gmail.com"},{"name":"flypie2","email":"1037028848@qq.com"},{"name":"vv314","email":"vv314@foxmail.com"},{"name":"nowheretorun","email":"452242153@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.21.1_1624248245616_0.5549610633817454"},"_hasShrinkwrap":false},"1.21.2":{"name":"webpack-marauder","version":"1.21.2","description":"marauder 脚本库，支持打包 React，Vue 及 Vanilla JS ","scripts":{"test":"echo \"Error: no test specified\" && exit 1","precommit":"lint-staged"},"author":{"name":"Vincent Lee","email":"vv314@foxmail.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"bin":{"marax":"bin/marax.js"},"engines":{"node":">=8.0.0"},"dependencies":{"@babel/types":"^7.0.0-beta.54","acorn":"^5.5.3","art-template":"^4.13.0","art-template-loader":"^1.4.3","autoprefixer":"^9.1.3","axios":"^0.18.0","babel-core":"^6.26.0","babel-eslint":"^8.2.1","babel-jest":"^22.1.0","babel-loader":"^7.1.2","babel-plugin-inline-json":"^1.2.2","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-preset-react-app":"^3.1.1","babel-runtime":"^6.26.0","browserslist":"^4.6.6","case-sensitive-paths-webpack-plugin":"^2.1.2","chalk":"^2.4.1","copy-webpack-plugin-hash":"^5.1.4","css-loader":"^0.28.9","cssnano":"^4.1.0","dev-ip":"^1.0.1","devalue":"^1.0.4","dotenv":"^6.0.0","dotenv-expand":"^4.2.0","duplicate-package-checker-webpack-plugin":"^2.1.0","eslint":"^4.16.0","eslint-config-sinamfe":"^1.0.3","eslint-friendly-formatter":"^3.0.0","eslint-loader":"^1.9.0","execa":"^1.0.0","extract-text-webpack-plugin":"^3.0.2","file-loader":"^1.1.6","filesize":"^3.6.1","friendly-errors-webpack-plugin":"^1.7.0","fs-extra":"^7.0.0","glob":"^7.1.2","gzip-size":"^5.0.0","html-loader":"^0.5.5","html-webpack-plugin":"^2.30.1","html-withimg-loader":"^0.1.16","inquirer":"^6.2.0","jest":"^22.1.2","marauder-ejs-loader":"^1.0.0","marauder-umd-loader":"^0.0.5","md5":"^2.2.1","mpvue":"^1.0.1","mpvue-template-compiler":"^1.0.1","mpvue-webpack-target":"^1.0.0","object-assign":"^4.1.1","optimize-css-assets-webpack-plugin":"^3.2.0","ora":"^1.4.0","portscanner":"^2.2.0","postcss-flexbugs-fixes":"^4.1.0","postcss-import":"^12.0.0","postcss-loader":"^3.0.0","postcss-mpvue-wxss":"^1.0.0","postcss-preset-env":"^6.7.0","postcss-url":"^8.0.0","prerender-html-plugin":"0.0.33","promise-polyfill":"^8.1.0","px2rpx-loader":"^0.1.8","raf":"^3.4.0","react-dev-utils":"^5.0.0","semver":"^5.5.1","sina-html-webpack-plugin":"^1.0.1","sinamfe-marauder-ensure-ls":"0.0.10","sinamfe-webpack-module_dependency":"^1.3.8","strip-ansi":"^4.0.0","sw-precache-webpack-plugin":"^0.11.4","tinify":"^1.5.0","ts-import-plugin":"^1.5.5","ts-loader":"^3.3.1","uglifyjs-webpack-plugin":"^1.3.0","url-loader":"^0.6.2","vinyl-fs":"^3.0.3","vinyl-ftp":"^0.6.1","vue-loader":"^14.1.1","vue-style-loader":"^4.1.2","vue-template-compiler":"^2.5.17","webpack":"^3.10.0","webpack-bundle-analyzer":"^2.13.1","webpack-dev-middleware-hard-disk":"^1.12.0","webpack-dev-server":"^2.11.1","webpack-manifest-plugin":"^1.3.2","webpack-merge":"^4.1.4","yargs":"^12.0.1","zip-webpack-plugin":"^2.1.0"},"license":"MIT","devDependencies":{"cz-conventional-changelog":"^2.1.0","husky":"^0.14.3","lint-staged":"^7.2.2","prettier":"^1.10.2","typescript":"^3.7.3"},"lint-staged":{"**/*.{js,json}":["prettier","git add"]},"config":{"commitizen":{"path":"./node_modules/cz-conventional-changelog"}},"gitHead":"e2b8aa15d57fd1998647a079837b0a21b718187d","homepage":"https://github.com/SinaMFE/webpack-marauder#readme","_id":"webpack-marauder@1.21.2","_nodeVersion":"14.15.5","_npmVersion":"7.20.6","dist":{"integrity":"sha512-xucxY+AwjcvvhPicM3l8pzKNepSduYhcfCSLmTttDeZrQwe3Xx1Diuw/2RZCQpb9T7Ocv79EIiTFfdVan5vEjQ==","shasum":"42efd8984a47512d4d689d8e584dc9f99e8b644d","tarball":"https://registry.npmjs.org/webpack-marauder/-/webpack-marauder-1.21.2.tgz","fileCount":63,"unpackedSize":169612,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiANMNCRA9TVsSAnZWagAAqgIP/icKGLqvWjC0NHb46uva\n4gG0oQhmOABrkhNr5CZD0S/9nZ/WpCS+LlRRWscNfOjFfLCR3ysBfA/TjrC8\nNSmhaPZycj8M8Ez4c6+yV3Hx6rntAxOXLycb3vhX2Cb+OfbaADdF2199N5t/\n5vgvvvIhTv+nJrsA7uyK429xAeoSX+eu2+h9sjdDhFRMc9j6F64BiHT3zeUh\nECJnr9AXnrezg42ToXfDkEgG6JLrsLJKV0fY/X+Mlx27glRPJJWVMBllPl6j\nPj4RQVMyWc/am+hdqAew4mmBB7iRUcNHvleaFKJ5UjXZRX/246Hn62SmUljS\nagkFgulIsJPN1VWNwR2MVlxzn0ICqA9tgQkTbbhKCwJKErJcWCaOhAGP/w7t\n0Z71NKcpLgpLZOyjD+g5daeFj3wsNIf96j8rJg/V4jBVAUhW40/GWLOJwU+L\nl3pfYjQJKNOsTCmp2qNQeVNCdEh073BkpI2LoDPk2Vk9T2vnbQPGYztyhX70\nStiFl9LtiEeQtKbqpLeYAKnzchXqzj3/FTyE28poWgi2PMzSL1fzQlWuZUPC\nq5MehKVK5I6EnOdE8sjADaVW8bxZDn7AQzSu/hxSEueNQgqpHI2FOT3lrKK+\nQ9goMYb51Yd5SEW0OkJnowfDnMcH65ZtDEI+bh1U2vQX6GYbieh989GUnGda\neuz2\r\n=blYO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDSkUmZi9WUyQiDcAq1XCX0o3JYXl44pxmdPiU8q8BLSAIgFFGFGqpRdgmCDGCPDc1jkzFZpK/zcUty7iBK6n1YX2w="}]},"_npmUser":{"name":"holmeshaw","email":"shaw_dlut@163.com"},"directories":{},"maintainers":[{"name":"happybang","email":"franktech84@gmail.com"},{"name":"braisedcakes","email":"BraisedCakes@gmail.com"},{"name":"flypie2","email":"1037028848@qq.com"},{"name":"vv314","email":"vv314@foxmail.com"},{"name":"nowheretorun","email":"452242153@qq.com"},{"name":"holmeshaw","email":"shaw_dlut@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/webpack-marauder_1.21.2_1644221197172_0.6957578437157643"},"_hasShrinkwrap":false}},"readme":"# webpack-marauder\n\n[![npm](https://img.shields.io/npm/v/webpack-marauder.svg)](https://www.npmjs.com/package/webpack-marauder)\n\n基于 webpack 的项目打包工具。\n\n`webpack-marauder` 的诞生离不开社区优秀的开源项目，本工具**持续跟进**并融合了 [create-react-app](https://github.com/facebook/create-react-app) 与 [vue-webpack](https://github.com/vuejs-templates/webpack) 的最佳配置，旨在为 `React`，`Vue` 以及 `Vanilla JS` 项目提供**一致性**的构建流程与开发体验。\n\n## 安装\n\n> 注意：本项目使用了 async/await 特性依赖 Node.js 8.0 以上\n\n为了保证多人开发时依赖安装的一致性，推荐使用 [yarn](https://yarnpkg.com/zh-Hans/) 作为包管理工具。\n\n推荐使用本工具配套的脚手架生成项目，`webpack-marauder` 及相关配置已包含在项目模板中。\n\n- [组件脚手架 - spkg](https://github.com/SinaMFE/generator-spkg)\n- [项目脚手架 - mcli](https://github.com/SinaMFE/generator-mcli)\n\n### 生成项目结构\n\n@TODO\n\n### 安装依赖\n\n```bash\nyarn add webpack-marauder -D\n```\n\n### 添加命令\n\n`package.json` 中配置 npm-script\n\n```bash\n\"scripts\": {\n   \"dev\": \"marax dev\",\n   \"build\": \"marax build\"\n },\n ...\n```\n\n## 命令\n\n### 启动开发环境\n\n运行开发命令将本地启动一个开发服务器，默认基础端口为 `3022`。\n\n```bash\nnpm run dev [page_name]\n```\n\n当为多页应用时，dev 命令需传入参数 `page_name`，指定页面文件夹名称。\n\n示例：\n\n```bash\n# 在 index 页面下开发\nnpm run dev index\n```\n\n### 打包项目\n\n执行 `build` 命令打包页面，同 `dev` 命令，当为多页应用时，需指定页面文件夹名称。\n\n```bash\nnpm run build [page_name]\n```\n\n#### FTP 上传\n\n使用 ftp 上传功能，需在 `marauder.config.js` 中注册 ftp 账号信息。\n\n在 `build` 命令基础上，可通过添加 `--ftp` 参数上传打包结果。此外，为方便多分支测试，还可通过可选的 `branch` 参数来指定线上分支路径。\n\n```bash\nnpm run build [page_name] --ftp [branch]\n```\n\n示例：\n\n```bash\n#  打包 index 页面，并上传至测试地址\nnpm run build index --ftp\n\n#  打包 index 页面，并通过上传至测试地址下的 feed_feature 文件夹中\nnpm run build index --ftp feed_feature\n```\n\n#### Test 发布\n\n使用 Test 发布功能，需在 `marauder.config.js` 中注册 gitlab privateToken 信息。\n\n在 `build` 命令基础上，可通过添加 `--test` 参数发布到测试环境。\n\n```bash\nnpm run build [page_name] --test [tag_message]\n```\n\n### 打包 dll 文件\n\n`marauder.config.js` 中配置 `vendor` 信息\n\n```\nvendor: ['react', 'react-router']\n```\n\n运行 `dll` 命令生成公共资源包，执行结果将会输出到 `dist/vendor` 文件夹下\n\n```bash\nnpm run dll\n\n# 打包 dll 文件，并上传至文件服务器\nnpm run dll --ftp\n```\n\n### 组件打包\n\n`webpack-marauder` 除了打包项目外，也可作为组件打包工具\n\n在项目 `src` 文件夹中创建 `index.js` 文件作为组件入口\n\nnpm-script 中配置\n\n```json\n\"build\": \"marax lib\"\n```\n\n打包\n\n```bash\nnpm run build\n```\n\n打包后文件将在 `lib` 目录中输出\n\n### 启动微信小程序 mpvue 开发环境\n\n`webpack-marauder` 除了可以做普通 web 开发，也支持小程序 mpvue 的开发环境，详情 mpvue 的使用方法见：`http://mpvue.com/`\n\n```json\n\"wx-dev\": \"marax wx-dev\"\n```\n\n```\nnpm run wx-dev\n```\n\n在项目 `src` 中会创建 wx 目录装载基本的 mpvue 的初始脚本，然后会在根目录生成`wx-dist`目录，使用微信开发者工具直接调试此目录即可。\n\n### 微信小程序 mpvue 打包\n\n`json \"wx-build\": \"marax wx-build\"`\n\n功能同`wx-dev`，会一次性在`wx-dist`下打包好 mpvue 构建的小程序代码。\n\n## 教程\n\n### 代码分割\n\n#### 动态代码分割\n\n@TODO\n\n#### 静态代码分割\n\n此功能可零配置启用，凡是在 `view/<page_name>/` 下符合命名约定 `index.<chunk_name>.js` 的文件均会被视为 `chunk` 包拆分，拆分后的 bundle 文件以 `<chunk_name>.servant.js` 命名，这里称之为 `servant` 包。\n\n其中 `chunk_name` 为拆分入口的名称，例如 `index.foo.js` 构建后将生成 `foo.servant.js`\n\n`<chunk_name>.servant.js` 文件将只会在生产环境(build)生成，在开发环境(dev)中，所有的 servant 将合并到 entry 中引入。对于使用者来说一切都是无感知的。\n\n**注意**\n由于 entry bundle 中已经包含 `polyfill`（Promise，Object.assign），为了避免打包不必要冗余，通过此方式拆分出的 servant 包将不包含 polyfill 内容。为安全起见，建议将 servant 包置于 entry 之后引入（除非您清楚 servant 中不会触发兼容性问题），这也是取名为 `servant` 的本意。`webpack-marauder` 已为您默认配置好一切。\n\n#### 打包 vendor\n\n@TODO\n","maintainers":[{"name":"happybang","email":"franktech84@gmail.com"},{"name":"braisedcakes","email":"BraisedCakes@gmail.com"},{"name":"flypie2","email":"1037028848@qq.com"},{"name":"vv314","email":"vv314@foxmail.com"},{"name":"nowheretorun","email":"452242153@qq.com"},{"name":"holmeshaw","email":"shaw_dlut@163.com"}],"time":{"modified":"2022-05-24T07:08:16.692Z","created":"2017-08-17T03:07:31.717Z","1.1.0":"2017-08-17T03:07:31.717Z","1.1.1":"2017-08-25T08:08:19.600Z","1.1.2":"2017-10-31T08:46:44.733Z","1.1.3":"2017-10-31T10:04:39.565Z","1.2.0":"2017-11-15T07:02:06.505Z","1.2.1":"2017-11-18T14:13:08.402Z","1.2.2":"2017-11-19T10:02:27.473Z","1.3.0":"2017-11-22T03:20:26.894Z","1.3.2":"2017-11-23T06:28:34.111Z","1.3.3":"2017-11-24T10:13:23.827Z","1.4.0":"2017-11-28T07:52:00.543Z","1.4.1":"2017-11-28T08:07:22.697Z","1.4.2":"2017-11-28T08:08:04.493Z","1.4.3":"2017-11-28T08:16:43.649Z","1.4.4":"2017-11-28T08:42:40.270Z","1.4.5-rc":"2017-12-01T06:21:40.181Z","1.5.0":"2017-12-06T11:00:14.373Z","1.5.1":"2017-12-07T10:49:32.591Z","1.5.2":"2017-12-07T11:10:23.104Z","1.5.4":"2017-12-08T02:37:57.035Z","1.5.5-rc":"2017-12-08T07:50:58.006Z","1.5.5":"2017-12-08T08:05:45.827Z","1.5.7-rc":"2017-12-13T03:47:53.400Z","1.5.7":"2017-12-14T08:59:06.517Z","1.5.8-rc":"2018-01-08T06:09:33.759Z","1.5.8-rc1":"2018-01-08T06:22:34.695Z","1.5.8":"2018-01-08T07:11:16.428Z","1.5.9-rc":"2018-01-08T08:24:17.321Z","1.5.9-rc2":"2018-01-09T03:21:25.136Z","1.6.0-rc":"2018-01-26T04:32:33.217Z","1.6.0-rc1":"2018-01-29T03:23:20.160Z","1.6.0":"2018-01-29T10:03:38.202Z","1.6.1":"2018-01-30T05:42:16.875Z","1.6.2":"2018-01-30T11:40:18.030Z","1.6.1-pwa":"2018-01-30T12:18:46.479Z","1.6.1-pwa1":"2018-01-30T12:34:38.281Z","1.7.0-rc":"2018-02-08T09:30:19.645Z","1.7.0-rc1":"2018-02-12T07:15:33.836Z","1.7.0-rc2":"2018-02-24T03:34:14.249Z","1.7.0-rc-wasm":"2018-02-25T18:00:05.149Z","1.7.0":"2018-02-27T09:08:08.652Z","1.7.1":"2018-02-27T12:02:48.515Z","1.7.2-beta":"2018-02-28T07:46:07.657Z","1.7.2-beta.1":"2018-02-28T08:02:06.372Z","1.7.2-beta.2":"2018-03-01T02:36:07.550Z","1.7.2-beta.3":"2018-03-05T10:20:02.427Z","1.7.2":"2018-03-06T03:47:45.314Z","1.7.3":"2018-03-06T05:42:50.890Z","1.7.4":"2018-03-07T06:20:38.248Z","1.7.5":"2018-03-13T02:59:05.528Z","1.7.6-rc":"2018-03-13T08:26:48.231Z","1.7.6-rc.1":"2018-03-13T08:39:59.091Z","1.7.6-hy":"2018-03-15T06:48:50.624Z","1.7.6-hy.1":"2018-03-16T03:40:28.930Z","1.7.6-hy.2":"2018-03-20T03:31:47.495Z","1.7.6-hy.4":"2018-03-20T12:00:04.167Z","1.7.6-hy.5":"2018-03-20T12:02:04.330Z","1.7.7":"2018-03-20T12:04:44.887Z","1.7.6-hy.6":"2018-03-20T12:31:46.485Z","1.7.6-hy.7":"2018-03-21T06:35:38.906Z","1.7.8":"2018-03-21T06:37:11.652Z","1.7.6-hy.8":"2018-03-22T06:57:50.667Z","1.7.6-hy.9":"2018-03-22T09:46:06.641Z","1.7.6-hy.10":"2018-03-22T12:22:56.649Z","1.7.6-hy.11":"2018-03-22T12:23:17.535Z","1.7.9":"2018-03-22T12:25:55.568Z","1.7.10":"2018-03-27T10:11:13.678Z","1.8.0":"2018-03-27T10:19:11.388Z","1.8.1":"2018-03-30T04:03:56.243Z","1.8.2-rc":"2018-04-02T03:16:55.141Z","1.8.2":"2018-04-02T06:17:35.131Z","1.8.3-beta":"2018-04-03T02:41:18.517Z","1.8.3":"2018-04-03T03:19:00.485Z","1.7.6-hy.12":"2018-04-03T07:20:49.039Z","1.8.4":"2018-04-03T08:27:04.347Z","1.8.5-0":"2018-04-09T07:05:46.963Z","1.9.0":"2018-04-09T07:23:09.259Z","1.9.1-rc":"2018-04-11T07:04:30.996Z","1.9.1-rc.1":"2018-04-12T11:51:05.893Z","1.9.1-0":"2018-04-12T13:31:07.012Z","1.9.2-0":"2018-04-12T13:39:41.074Z","1.9.2":"2018-04-13T06:41:32.636Z","1.9.3-0":"2018-04-17T02:59:00.393Z","1.9.4":"2018-04-18T10:09:36.338Z","1.9.5":"2018-04-19T03:08:44.243Z","1.9.6":"2018-04-19T03:23:07.374Z","1.10.0":"2018-04-24T13:06:22.936Z","1.10.1":"2018-04-26T11:39:15.862Z","1.10.2":"2018-05-04T13:23:58.811Z","1.10.3":"2018-05-04T13:27:32.714Z","1.10.4":"2018-05-04T13:44:40.059Z","1.10.5-0":"2018-05-23T13:29:00.765Z","1.10.5":"2018-05-23T14:11:56.825Z","1.10.7-0":"2018-05-24T04:03:29.985Z","1.10.7":"2018-05-24T04:05:34.124Z","1.10.8":"2018-06-08T12:02:59.322Z","1.10.9-0":"2018-07-26T08:07:55.506Z","1.11.0":"2018-07-26T08:35:48.497Z","1.11.1":"2018-08-01T16:51:17.105Z","1.11.2":"2018-08-01T16:51:52.598Z","1.11.3":"2018-08-01T17:25:59.367Z","1.10.9-rc.1":"2018-08-07T09:49:28.404Z","1.11.4-rc.1":"2018-08-07T09:57:01.492Z","1.11.4-rc.2":"2018-08-07T10:10:18.560Z","1.11.4-rc.3":"2018-08-07T11:03:35.070Z","1.11.4-rc.4":"2018-08-07T13:02:10.253Z","1.11.4-rc.5":"2018-08-07T13:06:41.629Z","1.11.4-rc.6":"2018-08-07T13:16:02.856Z","1.12.0":"2018-08-07T13:18:52.498Z","1.12.1-rc":"2018-08-08T08:43:08.453Z","1.12.1-rc.1":"2018-08-08T10:29:04.081Z","1.12.1":"2018-08-09T06:07:56.463Z","1.12.2-rc":"2018-08-14T03:27:57.972Z","1.12.2-rc.1":"2018-08-14T09:30:04.525Z","1.12.2":"2018-08-15T06:45:22.527Z","1.12.3-rc":"2018-08-16T05:51:52.814Z","1.12.3":"2018-08-16T06:56:55.277Z","1.12.4":"2018-08-16T07:03:57.816Z","1.12.4-rc":"2018-08-22T08:36:38.327Z","1.12.4-rc.1":"2018-08-25T08:09:04.280Z","1.12.4-rc.2":"2018-08-27T03:06:56.059Z","1.12.5":"2018-08-28T09:11:21.846Z","1.12.6":"2018-09-04T08:34:00.479Z","1.12.7":"2018-09-18T09:51:07.232Z","1.12.8":"2018-09-25T09:36:18.578Z","1.12.8-0":"2018-10-18T02:30:37.119Z","1.12.8-1":"2018-10-18T07:20:45.111Z","1.13.0":"2018-10-18T09:17:52.662Z","2.0.0-beta.0":"2018-11-01T16:47:44.754Z","1.14.0":"2018-11-29T11:46:12.506Z","1.14.0-beta":"2018-11-29T11:46:36.435Z","1.14.1-beta":"2018-11-30T07:40:00.878Z","1.14.1":"2018-12-05T05:25:35.397Z","1.14.2-beta":"2018-12-11T11:05:43.755Z","1.14.3":"2018-12-14T07:01:35.890Z","1.15.0":"2018-12-26T09:37:21.999Z","1.16.0-mc":"2019-01-04T13:23:40.843Z","1.15.1":"2019-01-17T05:15:54.217Z","1.15.2":"2019-01-21T07:43:09.462Z","1.15.3":"2019-01-28T11:27:19.532Z","1.15.4":"2019-02-26T07:45:55.509Z","1.16.0":"2019-03-06T07:27:00.745Z","1.16.1":"2019-03-13T06:46:41.466Z","1.16.2":"2019-04-18T03:36:39.541Z","1.16.3":"2019-05-08T07:57:34.598Z","1.17.0":"2019-05-09T08:13:20.421Z","1.17.1":"2019-05-15T02:49:27.769Z","1.17.2":"2019-06-18T09:53:37.411Z","1.18.0":"2019-08-08T07:05:39.931Z","1.19.0-1":"2019-09-05T09:01:25.231Z","1.20.0":"2019-11-07T11:38:44.917Z","1.20.1":"2019-11-07T11:48:41.795Z","1.20.2-t.0":"2019-12-17T09:28:04.395Z","1.20.2":"2019-12-17T09:34:39.092Z","1.20.3":"2019-12-17T09:54:44.234Z","1.20.4":"2019-12-17T10:35:30.470Z","1.20.5":"2019-12-19T03:49:08.313Z","1.20.6":"2019-12-19T08:32:04.650Z","1.21.0":"2020-01-19T08:00:18.061Z","1.21.1":"2021-06-21T04:04:05.742Z","1.21.2":"2022-02-07T08:06:37.310Z"},"homepage":"https://github.com/SinaMFE/webpack-marauder#readme","repository":{"type":"git","url":"git+ssh://git@github.com/SinaMFE/webpack-marauder.git"},"bugs":{"url":"https://github.com/SinaMFE/webpack-marauder/issues"},"license":"MIT","readmeFilename":"README.md","author":{"name":"Vincent Lee","email":"vv314@foxmail.com"}}