{"_id":"elint","_rev":"68-e25221193384cc7cb1a190d787f3ba59","name":"elint","dist-tags":{"latest":"2.0.1","beta":"3.0.0-beta.3"},"versions":{"1.0.0":{"name":"elint","version":"1.0.0","description":"","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"keywords":[],"author":"","license":"ISC","gitHead":"f3c160763f87490f7c1ccd7fea94cacb16920c3d","_id":"elint@1.0.0","_npmVersion":"5.6.0","_nodeVersion":"9.7.1","_npmUser":{"name":"keenwon","email":"semanwmj@gmail.com"},"dist":{"integrity":"sha512-/PWr1PoeqIZ5bmFOHMKxIaP4sChXUX0U0N2FnKSilhLNOnHDsBX5BOglWaX6PoJnu8gmv4z6Q8BGCGo9fF3YJQ==","shasum":"dae096b04ea41ffe448c5ee6a763ee167fa2950d","tarball":"https://registry.npmjs.org/elint/-/elint-1.0.0.tgz","fileCount":2,"unpackedSize":227,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa8nIJCRA9TVsSAnZWagAAUhgP/05zJs5fG9Z6qmB6SBUV\nYEAMW0j//985yJmo9x3iOotjZfzGW0l/5/kFLwqaS2CQBT6xEJ6qmEhGA/2A\n+TBBGi4MA5BbI9OpREUW0CPzfP0uDvvDZnghkz18LLZT5GhyrCqK1f5DMX86\n8SoR0Z1dtc8o4AfZdzKUrMPRy3SCPhzXhhvrE+lROX+Ha8ayoJECRx51w23p\nkV7YJwUtBADaqHXJ2uByrNQaP4Wa2mjIRPBcUwIPR9wAuxl0OcBv5iEexrsx\nuS4d+GSA9sfT1NjdJoxFKWRXR05AqmQbAEqWKkrs8WHNhUC+BUIwWJQdRgus\neFpwJ/gSYGaBHg4Lyf4gYrky7UvZrE5ausgrM6Vwove6aVdL3gAUg039fDMS\nj0YiNF+QGsOhGUZBp9eFVZi1J/WDkI+j5jW0DZ3bhSyOSi/4ZM6doGHSvpcR\ny3IzobmUWEYIQJlyzY2pip9KezQuR2/+llSak3fs/jAzbK8kq9HDwkptamp0\n+rTQKc/+/kJc4r3ckiXEHVmpyR53Lac7OusJCCCCDEr7HBvTu5+KDYmNY5w2\nAkc+dmMGmrP1WUh1I3YZGpONBHXWFxqW0AFfKBTIF6mlNrg81R2gC2Hv5zUk\nlCuQGmwfsTbHsQHAZqQi7n5yNj8qoXFDdSckeomSoGGewZVgKlMf4EPJFHBf\nfhsu\r\n=j3Vw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCHOrnVotyL4OQP4T8d03e7lli+NmtA2oJ/4szNb8rgGQIgBMzPbhCOutKgGeqOtMIi2SvwzdRbx6lwCT9HV+JTdME="}]},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_1.0.0_1525838345077_0.5367597627046139"},"_hasShrinkwrap":false},"1.1.0-rc.1":{"name":"elint","version":"1.1.0-rc.1","description":"A easy way to lint your code.","main":"lib/index.js","bin":{"elint":"./bin/cli.js"},"scripts":{"test":"npm run test:lint && npm run test:unit","test:lint":"eslint --format codeframe \"bin/**/*.js\" \"src/**/*.js\" \"test/**/*.js\"","test:unit":"nyc --reporter=html --reporter=text mocha \"test/**/*.spec.js\" && nyc report --reporter=text-lcov | coveralls"},"repository":{"type":"git","url":"git+https://github.com/keenwon/elint.git"},"keywords":["eslint","eslintplugin","eslintconfig","stylelint","commitlint","standard","jshint","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","bugs":{"url":"https://github.com/keenwon/elint/issues"},"homepage":"https://github.com/keenwon/elint#readme","dependencies":{"@commitlint/core":"^6.2.0","chalk":"^2.4.1","co":"^4.6.0","commander":"^2.15.1","diff":"^3.5.0","eslint":"^4.19.1","execa":"^0.10.0","figures":"^2.0.0","fs-extra":"^6.0.1","globby":"^8.0.1","husky":"1.0.0-rc.7","ignore":"^3.3.8","is-valid-glob":"^1.0.0","left-pad":"^1.3.0","lodash":"^4.17.10","md5":"^2.2.1","npmi":"^4.0.0","semver-utils":"^1.1.2","stylelint":"^9.2.0","supports-color":"^4","write-json-file":"^2.3.0"},"devDependencies":{"chai":"^4.1.2","coveralls":"^3.0.1","debug":"^3.1.0","deep-equal-in-any-order":"^1.0.10","mocha":"^5.1.1","nyc":"^11.8.0","sinon":"^5.0.7"},"gitHead":"3afe10b3662b4b28051832dbc9045f234bd97a06","_id":"elint@1.1.0-rc.1","_npmVersion":"5.6.0","_nodeVersion":"10.1.0","_npmUser":{"name":"keenwon","email":"semanwmj@gmail.com"},"dist":{"integrity":"sha512-+R917vO6rP81AQjklnYcHZjSO85UlDK1/G76DZwUnrvv13qXNHwAq9Adj9T9HpegQ4pOS6ZDC/3r34ci4Dze2A==","shasum":"5502321f44844e1e2ee271b1a23b1c9622434bc5","tarball":"https://registry.npmjs.org/elint/-/elint-1.1.0-rc.1.tgz","fileCount":64,"unpackedSize":61324,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbCqz/CRA9TVsSAnZWagAAfY4P/3qMiJNbASllHFf3SU+c\nfXSNN/IckIlILAucVcmml6JtqIn0HPZcuATAN2s3+vi88j2yO67VaXFUY47N\nkz/WtERqSwbJV+EU6jd4qSWhYi+08vfzrLGh6JhmwVl93Hmj9faOLpnVaA9R\n41LN3jpgy8w5+SDy2X0uOAxztYIawfFTF2b6lbhQFXCX2j6vh3uYFH2ReYU+\ndSGS0RzEWmWvlzkqPRCfgdh3l+pnDNQgbk4Dx3vxUD8jqjlXtiZ7BatnYXUu\nBu/wNa+6JFqcgpvCcQGQaQYyDTFnlDUPIB8r8rOIct0HsbDhrZM2bu6w5wCe\n8CwWdvhPhdLd9xCkG8mGCsfGF16so6BYrBw4WHr8d6HQ1UjolxN8Fr3QGiqH\nl1+XgAE6tpI4YDQsuvQf5bBKZ8nRR8tIVtrXRdACkhYujWGZNr6f8hW6L9oO\nBIfMOaAZnLFkj01Y+1HrL2spgpAqDnpJwOsGWG6Qu4C/yuchrwtVZNJkFakT\n10G9v+yaDtmvjoTOPUqfR+RseZgRlE8/LVjyPNg9Zrr9uvoaKINKfVz3J3Ql\nwdAqYDbV4CLP1MmwqINSYZmewMCgvFElu7BCp6YWisX7B7Ly1K3AgjxlI3PM\nY847KABvTdVBdjytIPjeiLTO3cR1cnJlrVQQBue9hciTWB9u2tQqo6qhsyj7\nxAEO\r\n=2QG+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDWHN96ZNfrmS+MiXDwP1D+x+OQc6AVXNKmv2JfmVlbHQIhAJXQ9eEQ6RT6xg2TpdYMs0Nmz/fRZtpqWkP1XMYZ9J33"}]},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_1.1.0-rc.1_1527426302476_0.09830393873000931"},"_hasShrinkwrap":false},"1.1.0-rc.2":{"name":"elint","version":"1.1.0-rc.2","description":"A easy way to lint your code.","main":"lib/index.js","bin":{"elint":"./bin/cli.js"},"scripts":{"test":"npm run test:lint && npm run test:unit","test:lint":"eslint --format codeframe \"bin/**/*.js\" \"src/**/*.js\" \"test/**/*.js\"","test:unit":"nyc --reporter=html --reporter=text mocha \"test/**/*.spec.js\" && nyc report --reporter=text-lcov | coveralls","postinstall":"node ./src/postinstall.js"},"repository":{"type":"git","url":"git+https://github.com/keenwon/elint.git"},"keywords":["eslint","eslintplugin","eslintconfig","stylelint","commitlint","standard","jshint","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","bugs":{"url":"https://github.com/keenwon/elint/issues"},"homepage":"https://github.com/keenwon/elint#readme","dependencies":{"@commitlint/core":"^6.2.0","chalk":"^2.4.1","co":"^4.6.0","commander":"^2.15.1","diff":"^3.5.0","eslint":"^4.19.1","execa":"^0.10.0","figures":"^2.0.0","fs-extra":"^6.0.1","globby":"^8.0.1","husky":"1.0.0-rc.7","ignore":"^3.3.8","is-valid-glob":"^1.0.0","left-pad":"^1.3.0","lodash":"^4.17.10","md5":"^2.2.1","npmi":"^4.0.0","semver-utils":"^1.1.2","stylelint":"^9.2.0","supports-color":"^4","write-json-file":"^2.3.0"},"devDependencies":{"chai":"^4.1.2","coveralls":"^3.0.1","debug":"^3.1.0","deep-equal-in-any-order":"^1.0.10","mocha":"^5.1.1","nyc":"^11.8.0","sinon":"^5.0.7"},"gitHead":"3ad41fbae4bb3289378f20b0f8a8a579e6075eb0","_id":"elint@1.1.0-rc.2","_npmVersion":"6.1.0","_nodeVersion":"10.1.0","_npmUser":{"name":"keenwon","email":"semanwmj@gmail.com"},"dist":{"integrity":"sha512-szxFeQtnM4gnXVLrzTo66lPW5l08SIVmYkKJLHQMPY5LXN0R2Eyo3hOZGKpIcjELC5AKCb4YVp7PvFPkZc64fQ==","shasum":"ba1000958e55ddc9ffa360636e61067c84f78b5a","tarball":"https://registry.npmjs.org/elint/-/elint-1.1.0-rc.2.tgz","fileCount":66,"unpackedSize":61874,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbDmZgCRA9TVsSAnZWagAANagQAJo0uRtlygQFG0sqqw26\nDrVT+EQ7W1V2nU/qTPpJAgvb8+PAEOdwXPDszh44LWfrTCmVdDemGRtSrMIW\nw9vZkQKtdNY8bdq91gVHf9N2glX5ePd57aHQXNIujF/Ppiy4iPmYrUvoxBDB\n/4qrXcOODAUnyahoblZp7TqQu2ZFtXt6hxJ7SPfsGuftKrS6yHqg0r3fYeWT\nKCfcS+BeiW2jyxjteaUuaXcHb+k2Z8E2zsWkNWbswIj30DKF0XYsMz/aPXUR\nDxI7/dxuWa8+JBV02EpuST+mPE7ZBN8Jl1tjAQIx/ucglxDj49/UWvvBxSal\n8m+q+ydqn5WeV+506pOC0UcYTxc5z3yBaQfOhw8z+F3T745dMvRmfF1LQEeP\no2oGbREetrs3ZBtCZQ90GoNy5cH8yqE2ayR9HeS88gSNr1Y44ua2kBpYsUEm\nSy6LrY6kT9nI59CWOwsMRV7QsJiym+v6B7stLPSj2we+omn7zdExZgz+fQ+L\neKYSKwfKAaeU5tg7wFbhf7g1+gZq2VBPjIMXK1BDdLPg0C5Tn1XJGAZqmBde\nCCJbG/DjAVwgcey5wAcYEUwYtJDjslSKPqqkdcprqR9jWUPnLGc1gNT44DPz\nVMK6y1sQbDDOWTh6WtZoN5QhQivB9qzLeD6WOvtEInY5L5DIGzchTfz9rh2c\nz9P+\r\n=2LJr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDkegbpxoMaGypaCKjoZayLagp+cI3EKC3dbTqiXvg2fgIgJ2iAovG6iP3qtx2GTmwzeg1qqOZ57QFAMFdvsSdO4S4="}]},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_1.1.0-rc.2_1527670368047_0.7208309227712535"},"_hasShrinkwrap":false},"1.2.0-beta.1":{"name":"elint","version":"1.2.0-beta.1","description":"A easy way to lint your code.","main":"lib/index.js","bin":{"elint":"./bin/cli.js"},"scripts":{"test":"npm run test:lint && npm run test:unit","test:lint":"eslint --format codeframe \"bin/**/*.js\" \"src/**/*.js\" \"test/**/*.js\"","test:unit":"nyc --reporter=html --reporter=text mocha \"test/**/*.spec.js\" && nyc report --reporter=text-lcov | coveralls","postinstall":"node ./src/postinstall.js"},"repository":{"type":"git","url":"git+https://github.com/keenwon/elint.git"},"keywords":["eslint","eslintplugin","eslintconfig","stylelint","commitlint","standard","jshint","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","bugs":{"url":"https://github.com/keenwon/elint/issues"},"homepage":"https://github.com/keenwon/elint#readme","dependencies":{"@commitlint/core":"^6.2.0","chalk":"^2.4.1","co":"^4.6.0","commander":"^2.15.1","diff":"^3.5.0","eslint":"^4.19.1","execa":"^0.10.0","figures":"^2.0.0","fs-extra":"^6.0.1","globby":"^8.0.1","husky":"1.0.0-rc.7","ignore":"^3.3.8","is-valid-glob":"^1.0.0","left-pad":"^1.3.0","lodash":"^4.17.10","md5":"^2.2.1","npmi":"^4.0.0","semver-utils":"^1.1.2","stylelint":"^9.2.0","supports-color":"^4","write-json-file":"^2.3.0"},"devDependencies":{"chai":"^4.1.2","coveralls":"^3.0.1","debug":"^3.1.0","deep-equal-in-any-order":"^1.0.10","mocha":"^5.1.1","nyc":"^11.8.0","sinon":"^5.0.7"},"gitHead":"3ad41fbae4bb3289378f20b0f8a8a579e6075eb0","_id":"elint@1.2.0-beta.1","_npmVersion":"6.1.0","_nodeVersion":"10.1.0","_npmUser":{"name":"keenwon","email":"semanwmj@gmail.com"},"dist":{"integrity":"sha512-If5H8yjrwqV8pMOcCdxtH1jE6wBwVF5KiEtEsKlGDTPJSDnIKgBnxJwk0oS1op+lRztrgvJgM1gD8oNxbiP0BQ==","shasum":"5d15c242cc4c86b223870a58389b1f993f377818","tarball":"https://registry.npmjs.org/elint/-/elint-1.2.0-beta.1.tgz","fileCount":66,"unpackedSize":61883,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbDms5CRA9TVsSAnZWagAA6EMP/jSSbIRXSfM7eeXsb+TD\nKpECIMMwCTCh0OQ7eaizeyKSW+IgV9y2+xiyiUY81cRvi8JV6fSoxKB5wHoh\nU4DMvSQBrmFldPRv30rsNbk979DtNAP3ZCBC+NKO+KD6pyodPi6+HXTuFBey\nNjuDxqHI0GQR0hK+DOTSIzx6XZaKo93wuEuRGuT/+ELA0xqw1yVXITW5NdON\nW408UUO+Yi6sx4cJLR/hJar1DXRstura5rYm/hiOyR15+CYPG1ojw5lEImoW\nI9pbdaBV1xfC19cFjUDxz4MYyTk0M7lxkmapH6iPdWDthDjgNK9at7ptkM2C\ndUsEw8mexwqRjRrqHM3enGf7/8n0btPjG/xM44mIVWTBEIX+QnUcd9QZaaG4\nlzqJq9XcuseiOY6FrL/RTafVcExcg6sNnEVADxr4OH8YEZtxgluuam84dVwT\nfezmy8ZoudRa79W2CDQDavmaxzziLPvrKtZa/GAeZom/h1GgZVKvSISo+EhS\n/V5wHCa/gMTZwvuS+3fcHZWHFpQdN99acOc83283imr4ZP88oDr7FK+prf9P\nVLmMWn2Xvu/qHcI97VcgyU9ORBXyNeEEfTFHewfsf7iJJ/5//dVivC/XnhlQ\noVlRz7nTCE3gaoc/cXdo8cqBcNuX5bLvG0ka0ojwHGNZroNMAL7BpbP8USwF\n+eHu\r\n=Eptp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDaWQIoN3sY6hgXAg3XGXekOVih/IjPHRQzM0qC531fOgIgbRui/EhSMGlu1iQjcajo/3FkEok4YbTbcy/B84VezJk="}]},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_1.2.0-beta.1_1527671609053_0.31577014912107915"},"_hasShrinkwrap":false},"1.2.0-beta.2":{"name":"elint","version":"1.2.0-beta.2","description":"A easy way to lint your code.","main":"src/index.js","bin":{"elint":"./bin/cli.js"},"scripts":{"test":"npm run test:lint && npm run test:unit","test:lint":"eslint --format codeframe \"bin/**/*.js\" \"src/**/*.js\" \"test/**/*.js\"","test:unit":"nyc --reporter=html --reporter=text mocha \"test/**/*.spec.js\" && nyc report --reporter=text-lcov | coveralls","postinstall":"node ./src/postinstall.js"},"repository":{"type":"git","url":"git+https://github.com/keenwon/elint.git"},"keywords":["eslint","eslintplugin","eslintconfig","stylelint","commitlint","standard","jshint","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","bugs":{"url":"https://github.com/keenwon/elint/issues"},"homepage":"https://github.com/keenwon/elint#readme","dependencies":{"@commitlint/core":"^6.2.0","chalk":"^2.4.1","co":"^4.6.0","commander":"^2.15.1","diff":"^3.5.0","eslint":"^4.19.1","execa":"^0.10.0","figures":"^2.0.0","fs-extra":"^6.0.1","globby":"^8.0.1","husky":"1.0.0-rc.7","ignore":"^3.3.8","is-valid-glob":"^1.0.0","left-pad":"^1.3.0","lodash":"^4.17.10","md5":"^2.2.1","npmi":"^4.0.0","semver-utils":"^1.1.2","stylelint":"^9.2.0","supports-color":"^4","write-json-file":"^2.3.0"},"devDependencies":{"chai":"^4.1.2","coveralls":"^3.0.1","debug":"^3.1.0","deep-equal-in-any-order":"^1.0.10","mocha":"^5.1.1","nyc":"^11.8.0","sinon":"^5.0.7"},"gitHead":"3ad41fbae4bb3289378f20b0f8a8a579e6075eb0","_id":"elint@1.2.0-beta.2","_npmVersion":"6.1.0","_nodeVersion":"10.1.0","_npmUser":{"name":"keenwon","email":"semanwmj@gmail.com"},"dist":{"integrity":"sha512-fw9f5ik72gYu+19LuGEt7RQwU8ohEwp3LIJBeNGRTFDXKTBPudsPnMxBihDL/iPUCeaKJPwjRGg6wUQjNh2RUw==","shasum":"1a010fd2c8f868934935743e35df274586f15eae","tarball":"https://registry.npmjs.org/elint/-/elint-1.2.0-beta.2.tgz","fileCount":66,"unpackedSize":62060,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbDnbWCRA9TVsSAnZWagAAsekP/A0YCsJlOgENPiDRaS6q\nOnRiHKg5tCR3UyxEXXaT0fV0Mo10AeisojUplSrdTuK80gHkS9tqJHBc9vXR\n5Hzaj6pW0TQA0QaftYakCa+h1yFdgNS2jpzg34QQhyoni9LAtySv4nmyKdVT\nyqLXW48pde3QWziZD1k9FvXsFTnfmk2qLCtaiktNAxFtC3S7dibEp/yB9d97\nCsVpVMb27FveYfGfyC/rgvzXYYsUOTrDipnitIFH7McT8e0ogN0KUA/XnPPj\nZDOLNChKHzDjtPqdVuTc2R4q4p2KCS50yXvikcfsCQKoxbV/bfbNpr8/zlSm\n/9OcVQ2I91gYO7c62az/pF/lPhpNP/sGJKTls8SjeaqteV81kMA6eAznmjJP\nGOWLai8Fw+f92WV56mxWY3hZ28znSlhRO9JIz9R6mNqutfhtDX34gCPVEDi/\nci9VhEkaNYKHFj3robNcO3dVBCYJLI1CmBPGEqqW8RrCMW+TeRYRkioqyoEY\nLXIeYUqF/e3QHNQwxtuMwOf03lH02HEbkPAvlwLJ/5V9v/o6Q6R7YQLyqSnS\nERA2qCG5W4q60LJNYDG9XhM/fmefg5pRw6RNb3Q2dD74NEjQgahfcXmAxTWR\nM8KGPReK/Fp4CdQ3ztsnRTQH5QuqhNoFOhcPXuZjnHFKC773/fXjiokeO5Fp\nCU4u\r\n=y4bM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID+hxiNBIW6yb4Z0RYp+uhH+EKa5BGB/KeFItwWzDjvwAiEA2OlKk/VkEbktuvnXTAk0QzdvpPttRGkfIChMqjvnrMk="}]},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_1.2.0-beta.2_1527674582584_0.26723265442869804"},"_hasShrinkwrap":false},"1.2.0-beta.3":{"name":"elint","version":"1.2.0-beta.3","description":"A easy way to lint your code.","main":"src/index.js","bin":{"elint":"./bin/cli.js"},"scripts":{"test":"npm run test:lint && npm run test:unit","test:lint":"eslint --format codeframe \"bin/**/*.js\" \"src/**/*.js\" \"test/**/*.js\"","test:unit":"nyc --reporter=html --reporter=text mocha \"test/**/*.spec.js\" && nyc report --reporter=text-lcov | coveralls","postinstall":"node ./src/postinstall.js"},"repository":{"type":"git","url":"git+https://github.com/keenwon/elint.git"},"keywords":["eslint","eslintplugin","eslintconfig","stylelint","commitlint","standard","jshint","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","bugs":{"url":"https://github.com/keenwon/elint/issues"},"homepage":"https://github.com/keenwon/elint#readme","dependencies":{"@commitlint/core":"^6.2.0","chalk":"^2.4.1","co":"^4.6.0","commander":"^2.15.1","diff":"^3.5.0","eslint":"^4.19.1","execa":"^0.10.0","figures":"^2.0.0","fs-extra":"^6.0.1","globby":"^8.0.1","husky":"1.0.0-rc.7","ignore":"^3.3.8","is-valid-glob":"^1.0.0","left-pad":"^1.3.0","lodash":"^4.17.10","md5":"^2.2.1","npmi":"^4.0.0","semver-utils":"^1.1.2","stylelint":"^9.2.0","supports-color":"^4","write-json-file":"^2.3.0"},"devDependencies":{"chai":"^4.1.2","coveralls":"^3.0.1","debug":"^3.1.0","deep-equal-in-any-order":"^1.0.10","mocha":"^5.1.1","nyc":"^11.8.0","sinon":"^5.0.7"},"gitHead":"eec3a4eb1e701ec99c8701eadc816a77429152f6","_id":"elint@1.2.0-beta.3","_npmVersion":"6.1.0","_nodeVersion":"10.1.0","_npmUser":{"name":"keenwon","email":"semanwmj@gmail.com"},"dist":{"integrity":"sha512-nl2Ds+fyTTPJXhdlpKCMCFZR5XJ/F0wlg4jNxuHMBjlgIU4KEPc9ei/CXzIgAZ/gZAEDqX9YRRGTm0xGTBKtSw==","shasum":"88f280c6cf7582f73781f55640935799aff2de2e","tarball":"https://registry.npmjs.org/elint/-/elint-1.2.0-beta.3.tgz","fileCount":66,"unpackedSize":62208,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbDrAqCRA9TVsSAnZWagAAnIUP/RAxb+G1l2Ff3cvOhf9D\nvsMTtwSdJqaa1fz0ZlNXAS0dDHa2kSHRmK4oU9qCgnVp0MgO4GppmXtrkM78\n+nE8rsxL2mBWj/GbaQqvExocZrHfKuIkHkSLqrZnwd3GU7m/Ba3U1J5SnQYt\n+jG0eO8YNbtI4EtTMCp7HE3vveDXvqV5gNIcp7CR/huXxB4X86mWl2Ub+zuc\nDJ/B8wxOmDQcrBfZ2RKApKUwPHk6jsyWQ+3yqgrTQP6jtlItp6QpM1csvbe0\nrdpj8PYUB0sj/jAJvEt2Ts5HwWBSVbxPUucGHV/4p14DfLqWTLYkZJA1ozJt\nDoH/abqzU8Kx5prS1mdBAl01bTC0AErYDP0odCOyfKZmiz9+9w+dBGzykRWL\nYTxJPRY8MRg1MsK8CZSlTiXgBHyr0MhKuGZx/GQo4KaBRpWO1pdLXytjC90d\nGAMxBDJOcX/GHGPMVesQMUMl/pjua05UjqALJI1msdJ5JAZnDURi+u0ywL0d\nd0IS8UXrFXwFgYYMoVD/sQDn1HsWtXxDcNe0fDeBVqv6oqPl8NTnDSka82yJ\nLA9086vrplQqVMTXg2xkMZZAbsn9VPphmBQaEqjEq3/7dEjTsMvSDgMCBk3T\nlpdu7DlSTYvzfyOEbzmn/lJrF8znO3TzKF9TGXOsBR+vEU66uvOjwjVwDVWp\ncG1v\r\n=Etvv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH2+5DA5SaSHfZxPGTEP7imr+FQb9OICYWxn7Cg6UKyhAiABZOTAzkgtolBaZUP3qdQK4Kyd6wpMkGktVKU4eauYpA=="}]},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_1.2.0-beta.3_1527689257788_0.770276405561015"},"_hasShrinkwrap":false},"1.2.0-beta.4":{"name":"elint","version":"1.2.0-beta.4","description":"A easy way to lint your code.","main":"src/index.js","bin":{"elint":"./bin/cli.js"},"scripts":{"test":"npm run test:lint && npm run test:unit","test:lint":"eslint --format codeframe \"bin/**/*.js\" \"src/**/*.js\" \"test/**/*.js\"","test:unit":"nyc --reporter=html --reporter=text mocha \"test/**/*.spec.js\" && nyc report --reporter=text-lcov | coveralls","postinstall":"node ./src/postinstall.js"},"repository":{"type":"git","url":"git+https://github.com/keenwon/elint.git"},"keywords":["eslint","eslintplugin","eslintconfig","stylelint","commitlint","standard","jshint","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","bugs":{"url":"https://github.com/keenwon/elint/issues"},"homepage":"https://github.com/keenwon/elint#readme","dependencies":{"@commitlint/core":"^6.2.0","chalk":"^2.4.1","co":"^4.6.0","commander":"^2.15.1","diff":"^3.5.0","eslint":"^4.19.1","execa":"^0.10.0","figures":"^2.0.0","fs-extra":"^6.0.1","globby":"^8.0.1","husky":"1.0.0-rc.7","ignore":"^3.3.8","is-valid-glob":"^1.0.0","left-pad":"^1.3.0","lodash":"^4.17.10","md5":"^2.2.1","npmi":"^4.0.0","semver-utils":"^1.1.2","stylelint":"^9.2.0","supports-color":"^4","write-json-file":"^2.3.0"},"devDependencies":{"chai":"^4.1.2","coveralls":"^3.0.1","debug":"^3.1.0","deep-equal-in-any-order":"^1.0.10","mocha":"^5.1.1","nyc":"^11.8.0","sinon":"^5.0.7"},"gitHead":"57c7b8713c0fb9b330b93c76b7fc6794f2923600","_id":"elint@1.2.0-beta.4","_npmVersion":"6.1.0","_nodeVersion":"10.1.0","_npmUser":{"name":"keenwon","email":"semanwmj@gmail.com"},"dist":{"integrity":"sha512-oWlOP9yS50BJ1xcSRRsPUTnkl2E1d9NvnLlANkjI79P0HUgvP/v6UFEFVTZhEn+zLvcDBZLSjfhRGbzNacHafg==","shasum":"68e86628accb75d504b6a1bd9d38a8ea655563a8","tarball":"https://registry.npmjs.org/elint/-/elint-1.2.0-beta.4.tgz","fileCount":66,"unpackedSize":62291,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbDrajCRA9TVsSAnZWagAA9VgP/19H9V5TSzyx5F1YmLix\nUhnTHW/+x+kdfg1wc+52OuvH8xxX9jSSOIqNp9uGZI/JaEzU7pgzaYl9GzVl\noM4dtMuQpFNCDKSRvl8STTW/TBL9NPl/9wh3hvH4iMQrGzcVqXmtjYJDjw4k\nFHB22MxXyykjnCIj8rjbMJSWj0bZ4t1sIs3tX5m30KcdzwMAnm8AX/Yw1aLe\nAUuUg3Tq3iBrZSSjlFB9SbpeLWNscD9fnw6JXWWbdB2dxEfmsxdHiZJq0Xfa\nJyaKt5rQGRGHwnzYbGsxxisnMy/B4rO/Mn/AVJ8Yjo/YB5KiM4bHOLHjNsvZ\nq2X6tJjppMsE5AbN006HVsMLk995igs981keulYN2EYVZlEDf07mmpHBGZG7\nf30wgDGE2T7PTaEfCqa5rG0YBMKuq/wWmIigyZ+lLxKEX0dM+XhHZEoIvYVA\nX3H2YfhbW8fuueQKh+iHFsJuQkqKP360yVew7SU+ZVBZOAus9Uoj3Xq/FP/y\nxeM6IWsWlsDmrJaONgGbACuoaetzz4Cp5zwCK/vPcu9cF5LMsxmivtqcqrdb\nxrQc9ejvS3WFkkWInp/285DfyDTaRibn6fB4/9/CELG6s+ojo7GEJQNPKagz\ndHD2KZEC3X/n8lTUnxxcO+YF/0wrzCbGKLgdI5zc3k1v93IRMT6ORSPWh4aN\nlSu+\r\n=Aldt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCOvn46BbyifEXbeLBBomWVb2gpiHJA8RUfbLroJlQo0QIgDYlwS3mPVwsE+SpdBn0FfdyCIk9t9hMhY2TWY1qIiik="}]},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_1.2.0-beta.4_1527690915269_0.8699450175229859"},"_hasShrinkwrap":false},"1.2.0-beta.5":{"name":"elint","version":"1.2.0-beta.5","description":"A easy way to lint your code.","main":"src/index.js","bin":{"elint":"./bin/cli.js"},"scripts":{"test":"npm run test:lint && npm run test:unit","test:lint":"eslint --format codeframe \"bin/**/*.js\" \"src/**/*.js\" \"test/**/*.js\"","test:unit":"nyc --reporter=html --reporter=text mocha \"test/**/*.spec.js\" && nyc report --reporter=text-lcov | coveralls","postinstall":"node ./src/postinstall.js"},"repository":{"type":"git","url":"git+https://github.com/keenwon/elint.git"},"keywords":["eslint","eslintplugin","eslintconfig","stylelint","commitlint","standard","jshint","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","bugs":{"url":"https://github.com/keenwon/elint/issues"},"homepage":"https://github.com/keenwon/elint#readme","dependencies":{"@commitlint/core":"^6.2.0","chalk":"^2.4.1","co":"^4.6.0","commander":"^2.15.1","diff":"^3.5.0","eslint":"^4.19.1","execa":"^0.10.0","figures":"^2.0.0","fs-extra":"^6.0.1","globby":"^8.0.1","husky":"1.0.0-rc.7","ignore":"^3.3.8","is-valid-glob":"^1.0.0","left-pad":"^1.3.0","lodash":"^4.17.10","md5":"^2.2.1","npmi":"^4.0.0","semver-utils":"^1.1.2","stylelint":"^9.2.0","supports-color":"^4","write-json-file":"^2.3.0"},"devDependencies":{"chai":"^4.1.2","coveralls":"^3.0.1","debug":"^3.1.0","deep-equal-in-any-order":"^1.0.10","mocha":"^5.1.1","nyc":"^11.8.0","sinon":"^5.0.7"},"gitHead":"57c7b8713c0fb9b330b93c76b7fc6794f2923600","_id":"elint@1.2.0-beta.5","_npmVersion":"6.1.0","_nodeVersion":"10.1.0","_npmUser":{"name":"keenwon","email":"semanwmj@gmail.com"},"dist":{"integrity":"sha512-lkPqAtbHChn5c6WWRfLIC9ZAzjTdSx8B6m6XEanThANCx0veeAFM4MwvJlN6YhOJnn0MrgVF1H9TYfxU81xU9w==","shasum":"feeebfcb5bd7efa0f3d60f8ca6daa2fd7eb95de1","tarball":"https://registry.npmjs.org/elint/-/elint-1.2.0-beta.5.tgz","fileCount":66,"unpackedSize":62339,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbDrghCRA9TVsSAnZWagAA36IP/0okO45569hFUFhN6wnD\nm2CGegPVCXWLCRHro8Fw+YAtIk4RqFHnxqeN9h1QoIrK6qsGzHZOamSd4X9W\na0xMCun5pF+ky0NJSwi+hygjFL67l86CT18mIZzwVfYi5g27tf+8tKcSAfC8\nReqzE15Akx5wrUgWStsddJj47qMTuu+TWuRB15kpKi1Yy0Qfz/kIhzuYJI0j\n03s5//lleAOYVDtRmARNQoFxopNLFCECm2/peq2pMRABP4MYQC3Vah3I6GNV\n79iN2xxYyI+1FB2hDyUrwjaNh8nChqZeYwlS6Qsx3qE1qpHUqXd1N4WoqWZg\n5uQkMoebNQh1SV29/JfTTPAPE0ADhdGbkv1yeLe5KKtOC5iqqSrAfFtukKsP\nOjJlIbluyIWsah/zazVncC9JU5rs7SB3s38t+0cBiPuGh9rtEXmCusQ6dNtN\nlTuoVPSrTET9k5hth6M/CHCvcY2Dx4Q6aIoo7SiulNWmMgJQfSK8LHke83wG\n9asojH4/m2DSQYB8lqBtFeu4F5G/XUYjcN59n7CFdejM4c3hFqErYdVka/dO\nmN0xrej2cBhu8PJhUzEYIw9CdzEixFseF1l19xFhNuyXXuGXfcXSH9qd34ko\nKtnS5DGvkBWS7Psy3sTLAGAjC/QzYiQDV7JB4mLsC4Kk5WmYR55IqHZf/zuv\n+sO7\r\n=vjj/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDMIEiqBGvsWSRcSQSlMULhiEGugPXi5SfByW1zJ/+nCQIgOzWjWEeaP+EawhQtz2wGpYBw5nDNWcxPl6R694i2iNE="}]},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_1.2.0-beta.5_1527691296150_0.6556763818752684"},"_hasShrinkwrap":false},"1.2.0-beta.6":{"name":"elint","version":"1.2.0-beta.6","description":"A easy way to lint your code.","main":"src/index.js","bin":{"elint":"./bin/cli.js"},"scripts":{"test":"npm run test:lint && npm run test:unit","test:lint":"eslint --format codeframe \"bin/**/*.js\" \"src/**/*.js\" \"test/**/*.js\"","test:unit":"nyc --reporter=html --reporter=text mocha \"test/**/*.spec.js\" && nyc report --reporter=text-lcov | coveralls","postinstall":"node ./src/postinstall.js"},"repository":{"type":"git","url":"git+https://github.com/keenwon/elint.git"},"keywords":["eslint","eslintplugin","eslintconfig","stylelint","commitlint","standard","jshint","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","bugs":{"url":"https://github.com/keenwon/elint/issues"},"homepage":"https://github.com/keenwon/elint#readme","dependencies":{"@commitlint/core":"^6.2.0","chalk":"^2.4.1","co":"^4.6.0","commander":"^2.15.1","diff":"^3.5.0","eslint":"^4.19.1","execa":"^0.10.0","figures":"^2.0.0","fs-extra":"^6.0.1","globby":"^8.0.1","husky":"1.0.0-rc.7","ignore":"^3.3.8","is-valid-glob":"^1.0.0","left-pad":"^1.3.0","lodash":"^4.17.10","md5":"^2.2.1","npmi":"^4.0.0","semver-utils":"^1.1.2","stylelint":"^9.2.0","supports-color":"^4","write-json-file":"^2.3.0"},"devDependencies":{"chai":"^4.1.2","coveralls":"^3.0.1","debug":"^3.1.0","deep-equal-in-any-order":"^1.0.10","mocha":"^5.1.1","nyc":"^11.8.0","sinon":"^5.0.7"},"gitHead":"57c7b8713c0fb9b330b93c76b7fc6794f2923600","_id":"elint@1.2.0-beta.6","_npmVersion":"6.1.0","_nodeVersion":"10.1.0","_npmUser":{"name":"keenwon","email":"semanwmj@gmail.com"},"dist":{"integrity":"sha512-1WXMjlxhMdLxdKFA4lJiyYU9N58o6B3LfJq2TP1jFLKf5a/YqqgbsZP2zQtHFOp2l6IeQkhVtSVURY2HkJIYtg==","shasum":"675d7c2724d0f95dcb903f4fc3cdc67fcd8f4289","tarball":"https://registry.npmjs.org/elint/-/elint-1.2.0-beta.6.tgz","fileCount":66,"unpackedSize":62264,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbDrxGCRA9TVsSAnZWagAAvIsP/1FDIb/NsdongBHyXCDW\nwWxPVEXWDLRGx8eQvWx6XITuyPiMZkr7Yo6/Xs1On7wBr4ietsqS3c1zhYAA\nfldIQq3eSORUWMSvEH30jzPBEA07Nm8lt8JybNOCG8NppgBgTGbalub/I0BJ\ncgIgaEFEmasVrQDMZ1hpbtoLKay+PfupdI01njINR7wbbsUGiCxKQlPTaRXK\n32MpfxKO+24Mjvd3E5Lee+rYEBFbFqeKxBbjJvOIpw4322wRYkEgvz+QjGrC\n3e8vjClCrXp6C//n2h04hYTXrDdyb8OOlNZ46F+5vqkgGImKIDZYI1+KIg51\nNo2gHVT3x9LJwoINd/ZlHA0/xzcntb97B1prMlsDes7ScBNwUkeqjAeIgvJH\n5jzKNTrubrKdBT0p41MgnDM0UI2a3y9yJe4Cw8qtSNTLLq6PYElv4hPhhWB1\niNygGdeK6lzNTz4AylkbyWKJn28G52fRVRSiUdUUgJM6SuAKnJvDYs8VgsQw\n9kFYBKrlg/cMSV93oB7tNxjuhpOHEJXsMZNgZvkFQsGtYQkNRoBKX+QLhc3l\n7tJ1tvejVY6AV6od8tY+l/ZxF4BYB8f/JRe+lIv9E0fe0sR+s1vC9kN0m9qn\ntxdYzUHAD34yAd1ZkrbgwuFtj55I3jN1aJjhrKZZQxel/7r/c1Gpjb5iQd6E\n+ITd\r\n=wYF3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGhCpB/agRgyf+LaBgqNEN6T50eE6kHL1dze/4gVLZ5KAiAdWUZ0McdDD5A1lcUNZ0sXFBvlaO2bGqAWA8dm4O7TbA=="}]},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_1.2.0-beta.6_1527692357655_0.5691919656328297"},"_hasShrinkwrap":false},"1.2.0-beta.7":{"name":"elint","version":"1.2.0-beta.7","description":"A easy way to lint your code.","main":"src/index.js","bin":{"elint":"./bin/cli.js"},"scripts":{"test":"npm run test:lint && npm run test:unit","test:lint":"eslint --format codeframe \"bin/**/*.js\" \"src/**/*.js\" \"test/**/*.js\"","test:unit":"nyc --reporter=html --reporter=text mocha \"test/**/*.spec.js\" && nyc report --reporter=text-lcov | coveralls","postinstall":"node ./src/postinstall.js"},"repository":{"type":"git","url":"git+https://github.com/keenwon/elint.git"},"keywords":["eslint","eslintplugin","eslintconfig","stylelint","commitlint","standard","jshint","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","bugs":{"url":"https://github.com/keenwon/elint/issues"},"homepage":"https://github.com/keenwon/elint#readme","dependencies":{"@commitlint/core":"^6.2.0","chalk":"^2.4.1","co":"^4.6.0","commander":"^2.15.1","diff":"^3.5.0","eslint":"^4.19.1","execa":"^0.10.0","figures":"^2.0.0","fs-extra":"^6.0.1","globby":"^8.0.1","husky":"1.0.0-rc.7","ignore":"^3.3.8","is-valid-glob":"^1.0.0","left-pad":"^1.3.0","lodash":"^4.17.10","md5":"^2.2.1","npmi":"^4.0.0","semver-utils":"^1.1.2","stylelint":"^9.2.0","supports-color":"^4","write-json-file":"^2.3.0"},"devDependencies":{"chai":"^4.1.2","coveralls":"^3.0.1","debug":"^3.1.0","deep-equal-in-any-order":"^1.0.10","mocha":"^5.1.1","nyc":"^11.8.0","sinon":"^5.0.7"},"gitHead":"57c7b8713c0fb9b330b93c76b7fc6794f2923600","_id":"elint@1.2.0-beta.7","_npmVersion":"6.1.0","_nodeVersion":"10.1.0","_npmUser":{"name":"keenwon","email":"semanwmj@gmail.com"},"dist":{"integrity":"sha512-c7DRBLYUc9wAj+rL96Zhnw3yRsLA0eNMdQAKnlATIwrOrFntAPTQ0CFkVs8J1RgDRneoLPhzxE+BAIyIaJ2jyQ==","shasum":"59e0401b5e20c0ed4e5634564df7b939a2698890","tarball":"https://registry.npmjs.org/elint/-/elint-1.2.0-beta.7.tgz","fileCount":66,"unpackedSize":62258,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbDr8uCRA9TVsSAnZWagAAHvUP/iAjIilZb79FYlwTAR9L\nUp6HBfvYX9nxHrezFyzRBMx2pkJRjEi+Ye8GQ8zd8/wvQGfjLXphw9zycOGu\nAcMSZD2X23W3hdvV35rT9eJPQC389sseQmg4WeyCK0x7PzDVcsNh+HmdaELd\nQp4hzaE+2vFgn02R53AzvAEpq+qEU9n/UyyO/mKXfVba8umFOGDlnZokB7lA\nuI6j60tHhtGg+aSRQ8WUobO5vYYFMe7o9ATMhcSDY6EwUbVshSyn67EBtgPO\nZBAlfeiokqDhDEjzw/y3nyp2x45YcrVb5IO1BBPFUmcSoEnndr3LxvZOlN4J\nT8KT8duo27p4hmLbV/x+hFFEtvxfRNh9n6g5U/8SFq079OwDgircwGbt2sMG\nDzhmyIR3MLxh/QkY1DSbfA89H8oBA+Lw0eB4b9o4fRjwch2UcU7lxidnVycF\n8Z2/w9M/sd06C1f1KR6LUETjG2IDgbXwG5rYaVl16Iy7v/dDotJAk0sljfwu\njEMhpLGH48KcAqYz/o9oKa+zINOxyus0ETYxK1mzwW0qYehSarwNIpRoaPpc\nNtQkhpHCYxHEeoebZcPs49kA8FRfu2Bl7XjPj3EsWiQx3KeyIKiriJgODwRD\nqBX1xTb1A+WsvWNKjFtE9HagQqvijMm/JcUK3oYbFddLO6c0oVN16Vh1Gtay\n6a/h\r\n=CYRF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDiCSq0m9+cXqLgdUVtUtpCXHtDVCRQ/ccSWkiGJ2p8gQIgQ+fN89ZK+0V0IjvPdNd4L6zXk/NTuYNakbThMJ1sn8M="}]},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_1.2.0-beta.7_1527693102296_0.6637062000387406"},"_hasShrinkwrap":false},"1.2.0-beta.8":{"name":"elint","version":"1.2.0-beta.8","description":"A easy way to lint your code.","main":"src/index.js","bin":{"elint":"./bin/cli.js"},"scripts":{"test":"npm run test:lint && npm run test:unit","test:lint":"eslint --format codeframe \"bin/**/*.js\" \"src/**/*.js\" \"test/**/*.js\"","test:unit":"nyc --reporter=html --reporter=text mocha \"test/**/*.spec.js\" && nyc report --reporter=text-lcov | coveralls","postinstall":"node ./src/postinstall.js"},"repository":{"type":"git","url":"git+https://github.com/keenwon/elint.git"},"keywords":["eslint","eslintplugin","eslintconfig","stylelint","commitlint","standard","jshint","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","bugs":{"url":"https://github.com/keenwon/elint/issues"},"homepage":"https://github.com/keenwon/elint#readme","dependencies":{"@commitlint/core":"^6.2.0","chalk":"^2.4.1","co":"^4.6.0","commander":"^2.15.1","debug":"^3.1.0","diff":"^3.5.0","eslint":"^4.19.1","execa":"^0.10.0","figures":"^2.0.0","fs-extra":"^6.0.1","globby":"^8.0.1","husky":"1.0.0-rc.7","ignore":"^3.3.8","is-valid-glob":"^1.0.0","left-pad":"^1.3.0","lodash":"^4.17.10","md5":"^2.2.1","npmi":"^4.0.0","semver-utils":"^1.1.2","stylelint":"^9.2.0","supports-color":"^4","write-json-file":"^2.3.0"},"devDependencies":{"chai":"^4.1.2","coveralls":"^3.0.1","deep-equal-in-any-order":"^1.0.10","mocha":"^5.1.1","nyc":"^11.8.0","sinon":"^5.0.7"},"gitHead":"57c7b8713c0fb9b330b93c76b7fc6794f2923600","_id":"elint@1.2.0-beta.8","_npmVersion":"6.1.0","_nodeVersion":"10.1.0","_npmUser":{"name":"keenwon","email":"semanwmj@gmail.com"},"dist":{"integrity":"sha512-9c3jwszA3sxmUGglPyyg8hXkiMxBd+k5PpsffDLSKo5IxxybDuHdWX2DVcFGqD6LeD24gXcu8ytQSwGel6SqZw==","shasum":"0f9731821840a5246cb4aad7781fe1c222766330","tarball":"https://registry.npmjs.org/elint/-/elint-1.2.0-beta.8.tgz","fileCount":66,"unpackedSize":62258,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbDsCVCRA9TVsSAnZWagAA+dYQAJNleL3FxVNlLSk3PqZj\nmAV6r7q+vBro6Uv0ytgllfk2lXvR8egBERcvwS1SwCdJGjNaEnO8O1lKues0\niVZlQt0wchy4qk43ngfHYCaCHzQUvIDkpqaSPALNdeACLBeXZ9Kr4NK7Pl8F\nBTCgLgrOXTkyWzq6gInQ/bgIxlwLBtlJwjTmMRvgstzg7A567U6YV0eV54wu\nN7JG8viGEeTYhRPgXhOEcCkkS+AjQR8y8WNW00ka+ivOgNEA9btiJFyvMUQl\nOx8kB5DgDzvn4BZiwMZ5mDZXubFF5y54qquO0waDN1be+ExFSl7WGGjFO8yL\nSdv1GPPIRzHGR35sS9LORTIsk3pGbcwNijW0pKnVZVUezp1gEwybpQEe7c6v\n8zdaYpVCwVdefHe8b+3pwH+5Gs0u+/HCcybXj3zTn3pCPjgOGwWOnxMaX6W4\n0zYZPQACMCJ02Rx4FT8zKtTt69XqFrepjJxj3k0S+Mi60Ti7jq4/OS0IU3EU\n0/QFHD6ujCBg3Wd0dhUOZ1Y2w/+rb47HtrbSI9d/hHYKqSGxZ8gi4PJeov/4\nHBskTbL+Zfan4UT6kpW4I7MyhhPgG3uT1GgRvbSYo80R1Sn40P81G6mp38b+\nV/JFoqGKe9d2qQCgRHWwFxhfjdM4JgQ+qnyc2gbnwD6J6hVqD6oXV/9x9KGy\nvwPA\r\n=/Jux\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAhYHeeHHAAqgwQDhHUlydii9Rd2iAahuaw5DuUM1CB/AiEAyb5QNHvnnAb7F7o9rQ+H1ehxFFkn1UDOGEnheOZOUGY="}]},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_1.2.0-beta.8_1527693460265_0.45916387196005015"},"_hasShrinkwrap":false},"1.2.0-beta.9":{"name":"elint","version":"1.2.0-beta.9","description":"A easy way to lint your code.","main":"src/index.js","bin":{"elint":"./bin/cli.js"},"scripts":{"test":"npm run test:lint && npm run test:unit","test:lint":"eslint --format codeframe \"bin/**/*.js\" \"src/**/*.js\" \"test/**/*.js\"","test:unit":"nyc --reporter=html --reporter=text mocha \"test/**/*.spec.js\" && nyc report --reporter=text-lcov | coveralls","postinstall":"node ./src/postinstall.js"},"repository":{"type":"git","url":"git+https://github.com/keenwon/elint.git"},"keywords":["eslint","eslintplugin","eslintconfig","stylelint","commitlint","standard","jshint","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","bugs":{"url":"https://github.com/keenwon/elint/issues"},"homepage":"https://github.com/keenwon/elint#readme","dependencies":{"@commitlint/core":"^6.2.0","chalk":"^2.4.1","co":"^4.6.0","commander":"^2.15.1","debug":"^3.1.0","diff":"^3.5.0","eslint":"^4.19.1","execa":"^0.10.0","figures":"^2.0.0","fs-extra":"^6.0.1","globby":"^8.0.1","husky":"1.0.0-rc.7","ignore":"^3.3.8","is-valid-glob":"^1.0.0","left-pad":"^1.3.0","lodash":"^4.17.10","md5":"^2.2.1","npmi":"^4.0.0","semver-utils":"^1.1.2","stylelint":"^9.2.0","supports-color":"^4","write-json-file":"^2.3.0"},"devDependencies":{"chai":"^4.1.2","coveralls":"^3.0.1","deep-equal-in-any-order":"^1.0.10","mocha":"^5.1.1","nyc":"^11.8.0","sinon":"^5.0.7"},"gitHead":"3dea14c586d937d97c6a70f8577cdf1c8e2b038a","_id":"elint@1.2.0-beta.9","_npmVersion":"6.1.0","_nodeVersion":"10.1.0","_npmUser":{"name":"keenwon","email":"semanwmj@gmail.com"},"dist":{"integrity":"sha512-fmhUrvlOgUlwffrzABFhTiY6qWVmmErz99Xkdp6o6J9h2l2Ms5bJnpMMNsR+yWEppJQqUSp1zK95pJdgcCXgPw==","shasum":"ee46b7620f25c1fb5e736eb0a333e1b9881c0b4d","tarball":"https://registry.npmjs.org/elint/-/elint-1.2.0-beta.9.tgz","fileCount":70,"unpackedSize":63918,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbDtGpCRA9TVsSAnZWagAAD8QP/2Y7QSpZIoBAMGg2dFwu\n+Vds4llpBvlwqnsAur/qyu7ElPDEjVFR1SarARnSyhINAcduYV1se4ixcbBH\nOZp4PcVCwhDwSzC6WX4XkRFpABBbyOaPPeID5BTTUYRWFr2DAecZgjcnxYEx\niWCdzoE+JaH+3ftTk5x+flov8/KYaX9ZrY6rv7OzKEZhxN7IcV/PE8GVpQyR\nx3UnWHj1BxAM7wJhIfB1/XyHLVD4AzaIPC9Ouolp40zPV0bYfh+Zt1+9i1YU\nuHZWDc5cSo5TFrJnKtCTDs0mgFdRLHd981cw+nhCUcdE4djeZy4Al2kmKatN\nRsMwjKNonWTf/b+50Wwy4lgUFoI2rkD6jJOZTVNj1WGf3d6nS8wQwkhYc7Vh\neo3ypt7sgSZiolf1uUKxgjceiTmOevGDfJCra8+NxT+A07xTyxEhEfjYIgqD\nUYL3mDzbYZWLHLlJf9C/J+DYqqHxEKowWhJk4Kp5x39HvXY6aHHjxrEm0t3c\nfzr0rzrdNnp0EXvfCJeaYPJMVf+ZB7+lVo4uTIDtGIUygSwFRtymRG+mGGWm\nmhiuK5qbgFglzz3q4NzzMzhl881g5GDltYCeiuxtKCbzDgUR1VWSeGoJsytK\ndBO02dXi9gVucm0gskfvekrv2SSGNByZ9xUIutRBXu5d2HDZ68CXugrATRKN\nDs4s\r\n=yf5L\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDDMqt0Ni0JYhQ8zw3KbmA7GchTswePcxznoNz7xXOgKgIgK8ALBKRMIFsiz3zMqNuxRH9yOBSJ9b/lHBF4JaAWDuk="}]},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_1.2.0-beta.9_1527697833255_0.27730778516166343"},"_hasShrinkwrap":false},"1.2.0-beta.10":{"name":"elint","version":"1.2.0-beta.10","description":"A easy way to lint your code.","main":"src/index.js","bin":{"elint":"./bin/cli.js"},"scripts":{"test":"npm run test:lint && npm run test:unit","test:lint":"eslint --format codeframe \"bin/**/*.js\" \"src/**/*.js\" \"test/**/*.js\" \"scripts/**/\"","test:unit":"nyc --reporter=html --reporter=text mocha \"test/**/*.spec.js\" && nyc report --reporter=text-lcov | coveralls","postinstall":"node ./src/postinstall.js"},"repository":{"type":"git","url":"git+https://github.com/keenwon/elint.git"},"keywords":["eslint","eslintplugin","eslintconfig","stylelint","commitlint","standard","jshint","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","bugs":{"url":"https://github.com/keenwon/elint/issues"},"homepage":"https://github.com/keenwon/elint#readme","dependencies":{"@commitlint/core":"^6.2.0","chalk":"^2.4.1","co":"^4.6.0","commander":"^2.15.1","debug":"^3.1.0","diff":"^3.5.0","eslint":"^4.19.1","execa":"^0.10.0","figures":"^2.0.0","fs-extra":"^6.0.1","globby":"^8.0.1","husky":"1.0.0-rc.7","ignore":"^3.3.8","is-valid-glob":"^1.0.0","left-pad":"^1.3.0","lodash":"^4.17.10","md5":"^2.2.1","npmi":"^4.0.0","semver-utils":"^1.1.2","stylelint":"^9.2.0","supports-color":"^4","write-json-file":"^2.3.0"},"devDependencies":{"chai":"^4.1.2","coveralls":"^3.0.1","deep-equal-in-any-order":"^1.0.10","mocha":"^5.1.1","nyc":"^11.8.0","sinon":"^5.0.7"},"gitHead":"90886c9266a60f591c27d8f003777d9e93d9a30d","_id":"elint@1.2.0-beta.10","_npmVersion":"6.1.0","_nodeVersion":"10.1.0","_npmUser":{"name":"keenwon","email":"semanwmj@gmail.com"},"dist":{"integrity":"sha512-5RzNoOzRjfzjS11tysBsBhSvpV6xEhJoS3pR83eXYBbugXRoispue+rpwHeEysVAnMfsCNJbxQPisBxLaj2vKA==","shasum":"24610a197d405c299f21e02bdcbd2e7c2d09ea83","tarball":"https://registry.npmjs.org/elint/-/elint-1.2.0-beta.10.tgz","fileCount":70,"unpackedSize":64068,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbD5XpCRA9TVsSAnZWagAAyqkP/3T3LvSgK/L197aQxaYi\nQvd/5/WIDazHytEmOytF2cXxB2ijO2UEhHFRsJ0hRtfdW7hnWRGQfdtTj9HU\ncZDO22vFsd3BKIzMwSXM2r4HtSUC3hDdwRPsxok9eoSs/QRejN7Mq5FD2Rqf\nUjZjxhFZnmP+f23Sp+y7i0kZtiHPqWeuZAXgEluStU7bSr66qjThafpIUB6+\nWw1osyyfeBMJGNRlFPV9X6xwWwxpRe4/2ob5aw3JGjfe7OI2C32OhVtBU/HA\nisw0h/g6aFTTZaHOZtWxXvmb4mO+K7J5JM4gCzI49YWXF9SBbLn2aBQJNLV6\n6iP6h3H8J8Wr4zI1a5OuaDz9Ql54fxqsVNUahTHAc0a7VmP/HDDB1AmZ0xzT\nkzMi5Qh4APWHmyfeEwN5dcvG+vWwDNXiS8VgbzAXZL0tZaiGhCghb/JnXtZ8\nbpMs4eGP0x1pMRRILVNpYNlmFZryh4LJyAVlfIFSGHOUliZB9gAGDtBVg8Jr\ny4JhiWzFau70ov575vZDiaKUcVm/OcF+Bbv5VLfR7UYcqOQ+la3B4/itpn7b\n0/D1Opu1zbm9HwoEDp3TsskG85PTFjDaF9vFCwMMRRZoqSv5vw1k65fClvpQ\nhnAfpDnaLmxYT9GnpxXaUBLWVj2LXU07zr0RSbhY02izATgo9aK9L26uPR7G\nTc+W\r\n=2WSa\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHLYM4D4s0sVw1jp0fjPIMGGseWimgPFi3prh3iqZATzAiAU09IWQRZqVyd64cLJxgDQAa/3DEOYOMp1jtTiaGKUdg=="}]},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_1.2.0-beta.10_1527748073527_0.3813062412108488"},"_hasShrinkwrap":false},"1.2.0-beta.11":{"name":"elint","version":"1.2.0-beta.11","description":"A easy way to lint your code.","main":"src/index.js","bin":{"elint":"./bin/cli.js"},"scripts":{"test":"npm run test:lint && npm run test:unit","test:lint":"eslint --format codeframe \"bin/**/*.js\" \"src/**/*.js\" \"test/**/*.js\" \"scripts/**/\"","test:unit":"nyc --reporter=html --reporter=text mocha \"test/**/*.spec.js\" && nyc report --reporter=text-lcov | coveralls","postinstall":"node ./src/postinstall.js"},"repository":{"type":"git","url":"git+https://github.com/keenwon/elint.git"},"keywords":["eslint","eslintplugin","eslintconfig","stylelint","commitlint","standard","jshint","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","files":["bin","scripts","src"],"bugs":{"url":"https://github.com/keenwon/elint/issues"},"homepage":"https://github.com/keenwon/elint#readme","dependencies":{"@commitlint/core":"^6.2.0","chalk":"^2.4.1","co":"^4.6.0","commander":"^2.15.1","debug":"^3.1.0","diff":"^3.5.0","eslint":"^4.19.1","execa":"^0.10.0","figures":"^2.0.0","fs-extra":"^6.0.1","globby":"^8.0.1","husky":"1.0.0-rc.7","ignore":"^3.3.8","is-valid-glob":"^1.0.0","left-pad":"^1.3.0","lodash":"^4.17.10","md5":"^2.2.1","npmi":"^4.0.0","semver-utils":"^1.1.2","stylelint":"^9.2.0","supports-color":"^4","write-json-file":"^2.3.0"},"devDependencies":{"chai":"^4.1.2","coveralls":"^3.0.1","deep-equal-in-any-order":"^1.0.10","mocha":"^5.1.1","nyc":"^11.8.0","sinon":"^5.0.7"},"gitHead":"c59f4b754ed3c3538b4d917d1b39c921593e7623","_id":"elint@1.2.0-beta.11","_npmVersion":"6.1.0","_nodeVersion":"10.1.0","_npmUser":{"name":"keenwon","email":"semanwmj@gmail.com"},"dist":{"integrity":"sha512-ExMPYeTfSdzGjFO9BqdQFHwG80OPDn/KRB8ak3rtGg+A/2p41n1chp12/Vi29zKB6HAxA/M3phNiTyDymmIRoQ==","shasum":"88cabcb0b818da6a5229f177254d7bf315e59a94","tarball":"https://registry.npmjs.org/elint/-/elint-1.2.0-beta.11.tgz","fileCount":34,"unpackedSize":37915,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbD6sICRA9TVsSAnZWagAA8FMP/Rp7smNjru3JEHO5Qyr3\nVg2IPDL2OKQXTZj0PeNHKLciJEuGjt8GWwy1PdsqqI4atE4hzeq27wf/Yn9b\npSPSyJ1roasqklr815U/GdMCac07Od57WTEPYfOowEMfqtS+/MC4jrq6CoX9\nA64V3yIAJzPttVrguL8nbDmKbbhFeDQ2eF4gCnOvLLvpwXYuaQtPI+Y3Up0c\n6X7QryOKoACs8wAGjfIdHm4Hs/Enm7xYs6EaEG9f7A+aPhR/omEqoZFC1CqN\nASa39Uiy019a+4TsM9tga4mIFlJ309SqGWvDqalaaa2dhdIQQlVZVq3EjXf9\nlN4Y2yjN09K9Al/utSsFz0yFIBW07laFka+RRnT8HIdhhYXO/7hJToxsaRqW\nrZDbyXuTBBZBMhNpYMSuHlkcMDTHWGizG1EXU18KneU/I4We67rgfdiIP5AC\n/e9aKh6ITOh424I7nyMYgy+Ph8FHZSK7SjRtv/rtHbTytjtZtGwtFGsb6zhy\nSsqzA9bF7NPie+xMXA7x0WsKN1QxvhhsxlBaRj8FoNO8XkXPb1XinljojJcv\nYpHxxgcuEIsT1vc3AW47OTSGxtbwbKKF0M8dVSaFBRJbeybN7cylHdH5ZO78\ny1XYXaDM6YrVxeVw10bLvGH8YLFHsgPIIbbT26ZOPWLwdKNFMv6ClRE4lT88\nbHBo\r\n=mjgz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDM9sdjiX+zU7nJnm8ThJB3Tp2BCy2WUT7VEVpVVRTffAIhAPrioJVVDAKDPIh/60dS6KukfvljRJtjWW32aSh7E4Qr"}]},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_1.2.0-beta.11_1527753479716_0.6959764692025334"},"_hasShrinkwrap":false},"1.2.0-beta.12":{"name":"elint","version":"1.2.0-beta.12","description":"A easy way to lint your code.","main":"src/index.js","bin":{"elint":"./bin/cli.js"},"scripts":{"test":"npm run test:lint && npm run test:unit","test:lint":"eslint --format codeframe \"bin/**/*.js\" \"src/**/*.js\" \"test/**/*.js\" \"scripts/**/\"","test:unit":"nyc --reporter=html --reporter=text mocha \"test/**/*.spec.js\" && nyc report --reporter=text-lcov | coveralls","postinstall":"node ./src/postinstall.js"},"repository":{"type":"git","url":"git+https://github.com/keenwon/elint.git"},"keywords":["eslint","eslintplugin","eslintconfig","stylelint","commitlint","standard","jshint","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","files":["bin","scripts","src"],"bugs":{"url":"https://github.com/keenwon/elint/issues"},"homepage":"https://github.com/keenwon/elint#readme","dependencies":{"@commitlint/core":"^6.2.0","chalk":"^2.4.1","co":"^4.6.0","commander":"^2.15.1","debug":"^3.1.0","diff":"^3.5.0","eslint":"^4.19.1","execa":"^0.10.0","figures":"^2.0.0","fs-extra":"^6.0.1","globby":"^8.0.1","husky":"1.0.0-rc.7","ignore":"^3.3.8","is-npm":"^2.0.0","is-valid-glob":"^1.0.0","left-pad":"^1.3.0","lodash":"^4.17.10","md5":"^2.2.1","npmi":"^4.0.0","semver-utils":"^1.1.2","stylelint":"^9.2.0","supports-color":"^4","write-json-file":"^2.3.0"},"devDependencies":{"chai":"^4.1.2","coveralls":"^3.0.1","deep-equal-in-any-order":"^1.0.10","mocha":"^5.1.1","nyc":"^11.8.0","sinon":"^5.0.7"},"gitHead":"9ce5dd6bb684ebc86f8f2faa47d3b2c3a5d34a9e","_id":"elint@1.2.0-beta.12","_npmVersion":"6.1.0","_nodeVersion":"10.1.0","_npmUser":{"name":"keenwon","email":"semanwmj@gmail.com"},"dist":{"integrity":"sha512-/cAIRqRhm7NKjcbiJn6nL5r5Q+T8EsDERv22hkBBelUOfWnCOR3dFqp1V6nvhMAZPBDNgN31E+6IvHSgldUWkg==","shasum":"c32dfa1177b44188e1fbf782533b6da2724f4b1d","tarball":"https://registry.npmjs.org/elint/-/elint-1.2.0-beta.12.tgz","fileCount":34,"unpackedSize":39156,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbECWSCRA9TVsSAnZWagAADlYP+wQS0PqBlCTqSPrXnd31\nbCE570g5G52sGIxxLWGVPovoh3X3EnNbDqIAELNs/QhauejDRsYvne/+aeaX\nwFmBsBr883WdC2QUBwAY5ApF2wzh+lcWcfa44h5G4aZ9qoNatU8Ge1eOcYxg\nOgwPMsF54H1kCQZ8os9wS+ylxxmZfzDu8W0b/QXt3Jr1Plaufr4Cclpwn/KX\nwLaj9kXbyBb9ZVZeNFya4RYcGy3J60uvjuOGuHlWJ3MXyGHDmz6taActVn2a\nFZthfr5HhZJR9Wz0jX9YGwIknGIok3BgKtF4NGFZJZoSwSD8Tc3NdRzO/xpO\nOfGDpV/eTa+vGNgq/XReo2PhVzKtvrjgGwJvqASyKY8zlfiliQzt5W/MM8dA\nFLuekRRLDJysL48DbQw0taSdtt9D8I/VFE9rn1kW/PNKFjVFodaYNdM+O5/M\nR5xW/14MKj+M8nQfWR+/zV+2DXSVoMiD6k8WWjesTMFcNW8tARvzMKiDakR1\n2M6wuy3Q1ZieItFjSl+SgOG+KPd0DV6QT3G6Jsubr+sJCzvraOEivfUB6XTU\nCMmr1iRc46hUx5GpzSGaHDt20unJSE44XDddg2GMqoEGScjulfN+ulroxNAB\n2PKCGXGlaZZ+EK1JNt80pXkxswCOOxR5NnSVOlHh9OjWFXW7gC4x7DzBCyNf\nawAn\r\n=xBqS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBjgQ22/WTsqEYW04EKh+EUE9r+T+suJ8X/RPclK1j9UAiAYAbg8tUdrUYE6GcdggXBspiQVslME/SIHXdFTwwsFXw=="}]},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_1.2.0-beta.12_1527784849583_0.5856144023082472"},"_hasShrinkwrap":false},"1.2.0-beta.13":{"name":"elint","version":"1.2.0-beta.13","description":"A easy way to lint your code.","main":"src/index.js","bin":{"elint":"./bin/cli.js"},"scripts":{"test":"npm run test:lint && npm run test:unit","test:lint":"eslint --format codeframe \"bin/**/*.js\" \"src/**/*.js\" \"test/**/*.js\" \"scripts/**/\"","test:unit":"nyc --reporter=html --reporter=text mocha \"test/**/*.spec.js\" && nyc report --reporter=text-lcov | coveralls","postinstall":"node ./src/postinstall.js"},"repository":{"type":"git","url":"git+https://github.com/keenwon/elint.git"},"keywords":["eslint","eslintplugin","eslintconfig","stylelint","commitlint","standard","jshint","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","files":["bin","scripts","src"],"bugs":{"url":"https://github.com/keenwon/elint/issues"},"homepage":"https://github.com/keenwon/elint#readme","dependencies":{"@commitlint/core":"^6.2.0","chalk":"^2.4.1","co":"^4.6.0","commander":"^2.15.1","debug":"^3.1.0","diff":"^3.5.0","eslint":"^4.19.1","execa":"^0.10.0","figures":"^2.0.0","fs-extra":"^6.0.1","globby":"^8.0.1","husky":"1.0.0-rc.7","ignore":"^3.3.8","is-npm":"^2.0.0","is-valid-glob":"^1.0.0","left-pad":"^1.3.0","lodash":"^4.17.10","md5":"^2.2.1","npmi":"^4.0.0","semver-utils":"^1.1.2","stylelint":"^9.2.0","supports-color":"^4","write-json-file":"^2.3.0"},"devDependencies":{"chai":"^4.1.2","coveralls":"^3.0.1","deep-equal-in-any-order":"^1.0.10","mocha":"^5.1.1","nyc":"^11.8.0","sinon":"^5.0.7"},"gitHead":"435ed705f2a1138112d12af4c398d4d3155c6db1","_id":"elint@1.2.0-beta.13","_npmVersion":"6.1.0","_nodeVersion":"10.1.0","_npmUser":{"name":"keenwon","email":"semanwmj@gmail.com"},"dist":{"integrity":"sha512-iQyLqYv24WYyQpfD0hp7jzVrpmux4mZTH82b5yVPo4DT09S+18Wqt5b/ERmN18QehWHlOzb8ZL96ncbFiRZzVw==","shasum":"941d6cf9b9c73f004bda00d296d2406b08e0aca2","tarball":"https://registry.npmjs.org/elint/-/elint-1.2.0-beta.13.tgz","fileCount":34,"unpackedSize":39157,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbEL/CCRA9TVsSAnZWagAATJ4P/3Qgm0MtoFhnZoQA9oZr\n+1cgKS6Bo4S9bLOqHFRLMrlZAa0up5aDGJIL1iCFkbUyFLiEkguLyVj0SWCI\nskKVV3LP7JaP3L5XYZ2q61/VS4ikVqXWEeOZnjIZHnauVFFqK3+HF+1n7mYV\n1AW3FiAY3J6wD7CUdwxGXHVGNY+DV0oanNhH82UBBwP+7dcOnEQ9RIn+oDig\nZBff5wRDdIPXlNOKYBaOdt7eB5lmlsnXVJQdGJ3psEgLuEZ+dVgW9srhAgl4\n6TOKhhnM7AlEziY5PByNikcdik7Sy0C/Ghv8M2Cp/ZWAUHJB+/eh3lPctnDJ\nKoReu2X+ndxY+JiHuNklkfmSNf9BJGIvdrB7K9DaTSFHHx8fIBGrLz2FxJfM\ns1bvjBcY5CsMabp8yGOGxIfiipAxu4h8/l/jwLwny+GWtmPd7Hk0V333j8Kv\nqdU+6SkcQUWeLkdMF7JGhDrS5/zVrLNao9kg1UoGk/EZj2AWn99Lg2xMbSPZ\nApekmyPezNasdcM7ZmdpqzGss6KUylr4ykSRliOgI/gqHQDLoTljLUjUQTPJ\n5HUgKn1KYt2N8UVBC5A9hVPx4LN0QHQZus1VpLxGLJlhBGPYsUpCqXYbNiWh\nxS5Gb4mARj+ig4JNRD7LTo5apu6+ZBYG5vccHI2PHm5nDRW/8ZEZ8m3h9xeT\nLyAS\r\n=+KDd\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDACQBFE2WeSO1VUEdytKdo0XToG//OSJPo6Y6SLaQmdwIhAPCq2UkrKa8P12l0/iysh3nuSBmmi7NYCcEbILvFWJL3"}]},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_1.2.0-beta.13_1527824321385_0.6584437885610033"},"_hasShrinkwrap":false},"1.2.0-beta.14":{"name":"elint","version":"1.2.0-beta.14","description":"A easy way to lint your code.","main":"src/index.js","bin":{"elint":"./bin/cli.js"},"scripts":{"test":"npm run test:lint && npm run test:unit","test:lint":"eslint --format codeframe \"bin/**/*.js\" \"src/**/*.js\" \"test/**/*.js\" \"scripts/**/\"","test:unit":"nyc --reporter=html --reporter=text mocha \"test/**/*.spec.js\" && nyc report --reporter=text-lcov | coveralls","postinstall":"node ./src/postinstall.js"},"repository":{"type":"git","url":"git+https://github.com/keenwon/elint.git"},"keywords":["eslint","eslintplugin","eslintconfig","stylelint","commitlint","standard","jshint","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","files":["bin","scripts","src"],"bugs":{"url":"https://github.com/keenwon/elint/issues"},"homepage":"https://github.com/keenwon/elint#readme","dependencies":{"@commitlint/core":"^6.2.0","chalk":"^2.4.1","co":"^4.6.0","commander":"^2.15.1","debug":"^3.1.0","diff":"^3.5.0","eslint":"^4.19.1","execa":"^0.10.0","figures":"^2.0.0","fs-extra":"^6.0.1","globby":"^8.0.1","husky":"1.0.0-rc.7","ignore":"^3.3.8","is-npm":"^2.0.0","is-valid-glob":"^1.0.0","left-pad":"^1.3.0","lodash":"^4.17.10","md5":"^2.2.1","npmi":"^4.0.0","semver-utils":"^1.1.2","stylelint":"^9.2.0","supports-color":"^4","write-json-file":"^2.3.0"},"devDependencies":{"chai":"^4.1.2","coveralls":"^3.0.1","deep-equal-in-any-order":"^1.0.10","mocha":"^5.1.1","nyc":"^11.8.0","sinon":"^5.0.7"},"gitHead":"cb409d76ed21e8c7a5498e2ebede681f7f592b29","_id":"elint@1.2.0-beta.14","_npmVersion":"6.1.0","_nodeVersion":"10.1.0","_npmUser":{"name":"keenwon","email":"semanwmj@gmail.com"},"dist":{"integrity":"sha512-8Jp69sXEFk+3o/lN3vzxor8tG0IhOZMCDQmM1qGGaEeYDRwQ6HLEePJRNDJVTP2A+w5NWkJi+zGWwFZFCJ58sA==","shasum":"454a257e151c8444527c7a4644dfa4e1fa225d7e","tarball":"https://registry.npmjs.org/elint/-/elint-1.2.0-beta.14.tgz","fileCount":38,"unpackedSize":40194,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbEXGPCRA9TVsSAnZWagAAS6IP/14fVx6N09KwMANKfsQw\nsrDk49Mg7OQr0YVEoCbjl5DI7aPP8aKMuUUNzCKMifdQCvGqxoKdKPU3MBtq\nwUhjQ43w6vTYj3U+gwcpHjJdHHjXXovGku+84ffVMUCL03sPtK3UhSisVgn5\n3rySlsDGYBzmQnRcxkxDtlRMk49NzsNUaPGsv21EqTyTsEEg2nQrttRCsgJB\nV37xAtpgLqk3znZEsjEbYa//L/3ue/7BAvEK9AQkmvlns218CR/lUUWWLzDJ\nK6gsCMEe6EyjikKF+PXTPc8ulVG7y0i4FF19bJZ+CggACoHqGqyAvlPOZ2WS\nkxHAR9nI0pPcw41IU0iXCsaZRMGw8yROeyPWVwypAUMT29g4Nky8gf8OlAGY\n9kg6YJaLc5kn7edIpZu50dVqAr2dVz9HMTEpE2gAzRoY+8uUHcvnpNjKSrw1\nhwqutjnZUFbw4bH8rB2D7MQqJGlCFduXA0rZyq6BEBJphNcPyjAD9YDKURZg\n9MB1tayyKeZ27LsOtDRefL0EAaDxlAAVgC4I3Y1I6nOiKid3nAnAS3ZNIy9f\n7FmZylu9TMm8d0qTApfEW3Zx10WU+ZwOMnQeWS9ceS1SyiLXsAY7PRYrDEx8\nP/U0IC6c/wY824jtuAuvjRuxB3RfX8K5Rfj3KOPS1AJ8KwjiSjU+qkc6QnX6\ncKRn\r\n=j/Rz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDHif/YXDYrEIrZPhvIPz0Yao9AjxSL02PhebCAPpsd9wIgZzGVWY6MyrxaKtpQ2jLu0cqDrMcqzHgcV6ubZnIrzFM="}]},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_1.2.0-beta.14_1527869839347_0.6492286747759826"},"_hasShrinkwrap":false},"1.2.0-rc.1":{"name":"elint","version":"1.2.0-rc.1","description":"A easy way to lint your code.","main":"src/index.js","bin":{"elint":"./bin/cli.js"},"scripts":{"test":"npm run test:lint && npm run test:unit","test:lint":"eslint --format codeframe \"bin/**/*.js\" \"src/**/*.js\" \"test/**/*.js\" \"scripts/**/\"","test:unit":"nyc --reporter=html --reporter=text mocha \"test/**/*.spec.js\" && nyc report --reporter=text-lcov | coveralls","postinstall":"node ./src/postinstall.js"},"repository":{"type":"git","url":"git+https://github.com/keenwon/elint.git"},"keywords":["eslint","eslintplugin","eslintconfig","stylelint","commitlint","standard","jshint","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","files":["bin","scripts","src"],"bugs":{"url":"https://github.com/keenwon/elint/issues"},"homepage":"https://github.com/keenwon/elint#readme","dependencies":{"@commitlint/core":"^7.0.0","chalk":"^2.4.1","co":"^4.6.0","commander":"^2.15.1","debug":"^3.1.0","diff":"^3.5.0","eslint":"^4.19.1","execa":"^0.10.0","figures":"^2.0.0","fs-extra":"^6.0.1","globby":"^8.0.1","husky":"1.0.0-rc.8","ignore":"^3.3.8","is-npm":"^2.0.0","left-pad":"^1.3.0","lodash":"^4.17.10","md5":"^2.2.1","semver-utils":"^1.1.2","stylelint":"^9.2.0","supports-color":"^4","write-json-file":"^2.3.0"},"devDependencies":{"chai":"^4.1.2","coveralls":"^3.0.1","deep-equal-in-any-order":"^1.0.10","mocha":"^5.1.1","nyc":"^12.0.2","sinon":"^5.0.7"},"gitHead":"ad96c9acafa2a74e98132ce28f95e77199abe7ec","_id":"elint@1.2.0-rc.1","_npmVersion":"6.1.0","_nodeVersion":"10.1.0","_npmUser":{"name":"keenwon","email":"semanwmj@gmail.com"},"dist":{"integrity":"sha512-14O6KVbzLek04H/YPAECWZHk96TU+I0n423ZTNL5kjze+Nn6yRGwkTDPpySt1m1RvlnexOFv2dOZEoZPppGDWA==","shasum":"bcbb3a552d0e01db5a85c6eac877d92caf0d0d61","tarball":"https://registry.npmjs.org/elint/-/elint-1.2.0-rc.1.tgz","fileCount":36,"unpackedSize":41719,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbFNbRCRA9TVsSAnZWagAA12wP/juZjw2/oLc7MOPNo9Ln\nII9nePbNF1mFYVsI6eqz1i+uBO8T2O3EpRnBRrD6YOn2DpUmcuF4Z+FnW2BF\nCN2Pswwo7oRhhMJJMEpJLTsiEaT9kofrFK4qc0ZlnXJruJV1njKfpM9nCRtN\nOkAvK7ztoxjXPogpEBBrgiwkuqgBKPbdoGkvv4HN6dCyquxko7TaY9RJ3x6C\nNcgrt+/NVIoj1qlar8xi6GllFv8DmYFhdkqOjMpZavjv2jU4p64k+plx7w5T\nYW8eO1an8pUcLqsD6OFZOgANDln83/nTwDcnCUmDBNcSaxb6y06DQq4YGniJ\n0Bn0PA8Jm9dHV2O+jeG8aeUgSRpsJO0dk342fJp2oRDvDwjXxEZEojNfhI1m\n67ESG8l6SCLwSs1bKtFJnJJI7WKkA2I1solO4PIy2I/f6pXr41Yxz9QPqALb\nBe8bYrENzd8VrxHJbu0WJ4+ZAdYvC2KyjHEatVrktZRCniY4i7yVhnI89UcT\neO1qABBxgsu5HKBEpoHAqQHoF/gmINv0F2ONa9guLEJYjyyPRr2mToUvUJ+5\nzrxw5gu4xfn02kfz2DreMe/2e5VnUkoyZfEkeLAOx0k4u/SNnwbJGq+t+Ugy\nFGT6wJYk4oENweNDLQcMKiuYzWJLG2c1sis9rPAUpv8LbVL7Grnrw6PnXnuQ\nqE/P\r\n=JFYp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDV5i85R12e14UfZigLgMBJeisLshULtKItcr/Q6bajDAiAzDVzXRGVB6gPDfIg+Yd4xnwLMYq/UmHKJydIrTAchBw=="}]},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_1.2.0-rc.1_1528092369263_0.9443339229124863"},"_hasShrinkwrap":false},"1.2.0-rc.2":{"name":"elint","version":"1.2.0-rc.2","description":"A easy way to lint your code.","main":"src/index.js","bin":{"elint":"./bin/cli.js"},"scripts":{"test":"npm run test:lint && npm run test:unit","test:lint":"eslint --format codeframe \"bin/**/*.js\" \"src/**/*.js\" \"test/**/*.js\" \"scripts/**/\"","test:unit":"nyc --reporter=html --reporter=text mocha \"test/**/*.spec.js\" && nyc report --reporter=text-lcov | coveralls","postinstall":"node ./src/postinstall.js"},"repository":{"type":"git","url":"git+https://github.com/keenwon/elint.git"},"keywords":["eslint","eslintplugin","eslintconfig","stylelint","commitlint","standard","jshint","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","files":["bin","scripts","src"],"bugs":{"url":"https://github.com/keenwon/elint/issues"},"homepage":"https://github.com/keenwon/elint#readme","dependencies":{"@commitlint/core":"^7.0.0","chalk":"^2.4.1","co":"^4.6.0","commander":"^2.15.1","debug":"^3.1.0","diff":"^3.5.0","eslint":"^4.19.1","execa":"^0.10.0","figures":"^2.0.0","fs-extra":"^6.0.1","globby":"^8.0.1","husky":"1.0.0-rc.8","ignore":"^3.3.8","is-npm":"^2.0.0","left-pad":"^1.3.0","lodash":"^4.17.10","md5":"^2.2.1","semver-utils":"^1.1.2","set-blocking":"^2.0.0","stylelint":"^9.2.0","supports-color":"^4","write-json-file":"^2.3.0"},"devDependencies":{"chai":"^4.1.2","coveralls":"^3.0.1","deep-equal-in-any-order":"^1.0.10","mocha":"^5.1.1","nyc":"^12.0.2","sinon":"^5.0.7"},"gitHead":"1f4a6f0766dcd5f41b02aeef56d3c2a4eb77d0e1","_id":"elint@1.2.0-rc.2","_npmVersion":"6.1.0","_nodeVersion":"10.1.0","_npmUser":{"name":"keenwon","email":"semanwmj@gmail.com"},"dist":{"integrity":"sha512-yQUySK89cKuYMgw4aEnvAcwBfEuWB50gyZlbGZjmfCVPo/0/ku/LSEoAFJ1ql/viGBf0+BByT9aR9V9m96i3ow==","shasum":"be8c982faec14eed325343621843a26ebcd7f5d8","tarball":"https://registry.npmjs.org/elint/-/elint-1.2.0-rc.2.tgz","fileCount":36,"unpackedSize":52755,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbFr35CRA9TVsSAnZWagAACKgP/1Wg5+p1IjAiwNykPjsL\nfkk2t5grp9CnvuPqb6pTJecUQF+CNC0xo2ctCT1KPdbHHceBFpbTCtXdQAwz\nbZfsCfvp46tlS3SzYsWG/o3q80HRmcPhVr7EgHMK4AK+5SSdzSF5g5YWRlfB\nkLaXoxjgV+hr+AtAD4sTMDX4Pl9cHs21Y5/cuTIHLclnFpOQWkIVqNdIyU5S\n8nyr0K8Icq7Daw7QhTg8ha0ssfbFdn89VrxvJM3otrIMToa4KRYqpvC4rPIm\nTy/nzscAiUGDoZRKW3S3ggGlOgpRAjLQGNrECVW95SkYpNBUy3vbR9LLok22\ndv/QcQjE+jCHrHHniBDnBwISvkl2E2SKN3Y2aYvofNh3FwsnDFC2PS8hwzdV\nNFjZEiMfp/1ZDhUvT3K+H1qVRd6iqTJLo1EQheb8hV4J4UKS/UMAciitqBue\nRU4QktQn1ryLDD3ZYMylA7quECV1tWmyyIDZ0cKhUSFmdZ4p4lbvK1df6q+9\nxVkyW9K/b8s1Kkp/xIS7iIWBGMIIkVMXpsD0soChEk0XT+FaVVo+z47hquGM\nEVCKBa4hDgQhZGDS0jP07NadaFPeaFCwSihWPrFQRBuq0XDCYS38QasHokjN\nx5qcDwMSrBf/zpY5kWCJlJKZZ/FqZ3dGds1/FDluGUGprcXTKuUvII59c2BD\nKQow\r\n=r7CQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDNzKe2Iys5eJEFv0FAYqIzsNDCS7tGErNPbPni10R9jAiB+tyEGJArnySmlq7xF5qlS7Q49NbEr9Zq8fSAGJ9BXPQ=="}]},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_1.2.0-rc.2_1528217079907_0.7263927813451743"},"_hasShrinkwrap":false},"1.3.0":{"name":"elint","version":"1.3.0","description":"A easy way to lint your code.","main":"src/index.js","bin":{"elint":"./bin/cli.js"},"scripts":{"test":"npm run test:lint && npm run test:unit","test:lint":"eslint --format codeframe \"bin/**/*.js\" \"src/**/*.js\" \"test/**/*.js\" \"scripts/**/\"","test:unit":"nyc --reporter=html --reporter=text mocha \"test/**/*.spec.js\" && nyc report --reporter=text-lcov | coveralls","postinstall":"node ./src/postinstall.js"},"repository":{"type":"git","url":"git+https://github.com/keenwon/elint.git"},"keywords":["eslint","eslintplugin","eslintconfig","stylelint","commitlint","standard","jshint","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","files":["bin","scripts","src"],"bugs":{"url":"https://github.com/keenwon/elint/issues"},"homepage":"https://github.com/keenwon/elint#readme","dependencies":{"@commitlint/core":"^7.0.0","chalk":"^2.4.1","co":"^4.6.0","commander":"^2.15.1","debug":"^3.1.0","diff":"^3.5.0","eslint":"^4.19.1","execa":"^0.10.0","figures":"^2.0.0","find-process":"^1.1.1","fs-extra":"^6.0.1","globby":"^8.0.1","husky":"1.0.0-rc.8","ignore":"^3.3.8","is-npm":"^2.0.0","left-pad":"^1.3.0","lodash":"^4.17.10","md5":"^2.2.1","minimatch":"^3.0.4","semver-utils":"^1.1.2","set-blocking":"^2.0.0","staged-git-files":"^1.1.1","stylelint":"^9.2.0","supports-color":"^4","write-json-file":"^2.3.0"},"devDependencies":{"chai":"^4.1.2","chai-as-promised":"^7.1.1","coveralls":"^3.0.1","deep-equal-in-any-order":"^1.0.10","mocha":"^5.1.1","nyc":"^12.0.2","sinon":"^5.1.1"},"gitHead":"fca49f2324fe2e770d548baee2c81e867ce19cad","_id":"elint@1.3.0","_npmVersion":"6.1.0","_nodeVersion":"10.1.0","_npmUser":{"name":"keenwon","email":"semanwmj@gmail.com"},"dist":{"integrity":"sha512-JTlA/HgZ48ZoBw5FpjibFKBVb3G3xjUSuXfJ/vjK+DNVEE/lzM35ozDLBXI31xnoBrpWaJb7NYpVjCMDcRJbmA==","shasum":"777c678098cda64ecdb6655d3b8b72c3850b9785","tarball":"https://registry.npmjs.org/elint/-/elint-1.3.0.tgz","fileCount":40,"unpackedSize":57397,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbHU1DCRA9TVsSAnZWagAAjTQP/10g+290KiKHupsUaYhg\n8hrcOtqA+lp46pQHZgsF+b72/KoTPB3o1TQc0bUWpD/oGdWTCpLZAYOSaJV6\nhAz3AHx0u5jZe2ssFmPtMCNiZBLNZxNfxeq8rs49LfJ4macDCKNvzCGNz20v\n15KNiRB5FENfugMi8v2t42YutWjJ4qo49IpEyWulHcRU1QrSEuX0OlxHzV7N\ncrp83sXQu3P+th8bSJT15d04pDHQTlYIxkkFUQ+mf6sWGqnc4h6aulniu4/v\nTBn5/SpLVtnH8z+Yz+cRmiAzfQ5YC0FFk17xyPwbYvYWlsB7YJaSMqfDO2BM\nb50tZEXAB6IYlpo2YtclbzqOSLlOnxz/6xoMOC7/Jzmv0WeZAOG6LgamZcH+\n6GF6+DeyV/Var6iSuT2T6jEgQ65HhodEnq6hJu7SfShvkIqFedNCMKE57P7K\n4fG2O6wxvpfq7HORZIqmib2fEpmpJzeI9eSO0LAWUow0JfqOCX0yhpxnUxDE\ndqJuPrgN6wu0mpYT40MKJTzqjqjwQH5pfPl+JYGKlcHXMNbkXJitnVpMj31a\nKEB4X/EiKXgrUKxFNFg4g6QHTF560kZ7m2mdeytokiK2mkeiYLQhzUgfNKsk\nl3EAe/FbacH89OAFSc5rC9SsuolTWyWB8qpHOVAzpowmtqQba0PZd97rPGVt\neho3\r\n=lbVx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCnlNEccbJuoEsQ3mJwY6uZFKjXOc3e2X0MZ0Q3sulT0wIgHBzHLffqcOTUfImOc5doWpd4sguuu4VQOHOGBPH+1u8="}]},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_1.3.0_1528646977413_0.6436914608809978"},"_hasShrinkwrap":false},"1.3.1":{"name":"elint","version":"1.3.1","description":"A easy way to lint your code.","main":"src/index.js","bin":{"elint":"./bin/cli.js"},"scripts":{"test":"npm run test:lint && npm run test:unit","test:lint":"eslint --format codeframe \"bin/**/*.js\" \"src/**/*.js\" \"test/**/*.js\" \"scripts/**/\"","test:unit":"nyc --reporter=html --reporter=text mocha \"test/**/*.spec.js\" && nyc report --reporter=text-lcov | coveralls","postinstall":"node ./src/postinstall.js"},"repository":{"type":"git","url":"git+https://github.com/keenwon/elint.git"},"keywords":["eslint","eslintplugin","eslintconfig","stylelint","commitlint","standard","jshint","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","files":["bin","scripts","src"],"bugs":{"url":"https://github.com/keenwon/elint/issues"},"homepage":"https://github.com/keenwon/elint#readme","dependencies":{"@commitlint/core":"^7.0.0","chalk":"^2.4.1","co":"^4.6.0","commander":"^2.15.1","debug":"^3.1.0","diff":"^3.5.0","eslint":"^4.19.1","execa":"^0.10.0","figures":"^2.0.0","find-process":"^1.1.1","fs-extra":"^6.0.1","globby":"^8.0.1","husky":"1.0.0-rc.8","ignore":"^3.3.8","is-npm":"^2.0.0","left-pad":"^1.3.0","lodash":"^4.17.10","md5":"^2.2.1","minimatch":"^3.0.4","semver-utils":"^1.1.2","set-blocking":"^2.0.0","staged-git-files":"^1.1.1","stylelint":"^9.2.0","supports-color":"^4","write-json-file":"^2.3.0"},"devDependencies":{"chai":"^4.1.2","chai-as-promised":"^7.1.1","coveralls":"^3.0.1","deep-equal-in-any-order":"^1.0.10","mocha":"^5.1.1","nyc":"^12.0.2","sinon":"^5.1.1"},"gitHead":"75d85bc400b657da80ca7b8465f75e70238c4e2b","_id":"elint@1.3.1","_npmVersion":"6.1.0","_nodeVersion":"10.1.0","_npmUser":{"name":"keenwon","email":"semanwmj@gmail.com"},"dist":{"integrity":"sha512-qT5I2NyGXS7D+Z6RCD7paoRqWgcW+RO3yQbOwnCLs0izr2qDkQBEZ2p7d9QmiZXBEE3Pvpl0eTrVX3zo5JPtag==","shasum":"4fb4591ce79e202f37019bdfc2da6555579daf2e","tarball":"https://registry.npmjs.org/elint/-/elint-1.3.1.tgz","fileCount":40,"unpackedSize":58475,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbHiC6CRA9TVsSAnZWagAAW0MQAInxApJsjMivtTOkIVfk\naNIOGp45ixMTg3sFSc9uGzoWsmQ3FJfMp95yTjCbEzYZMX7JdiwcSmzhYmbN\nS89vthqStouzPFXuaofn4qwzH0fP/pj5O5sm5QsoGKnQHEnKA8jmYc9Jue7U\nNP6uBwrqxais/P3Zj/04pyEuOhcQ/ig0vVmCvpopisceuAsmuFPVDkQtM6uP\nPV+S/JzM2R4TtPIXaL2FpAT7nuNXr5t9vz5lHlJwMvYnVOKfDvhgYDgjyeWd\nkolBYkugCP2gyeFavDviggynVBTT/uj1+WdMSbB9uNNzaaDLU24U4vU1QKY1\nvZDK0cOiwfbpTz5WHBQR+lCdWoh9TB0f8d/GdcNFqEvRSk0nHOyGk7eCmblS\nZO+wIPmFuVx2ss96w1x3qRI+yyzUTOvpGMB3YXI+3lhOROi9+2uOQe/AhWUV\nui7ZYRZQStsX4EodwVvJ5ZzeKohQq5zRKss7mJcVzo95hFWq7BSbHWG8GXEG\npFfz49bVbtuhteBQW778J8I/r0qsLyDIXgdp/R8oRJsIZ4gs3wb6KMVe8RLW\nqtixnvfkIN03fuNewosuYrrkV+xwCA0Ip6PDKFEV4lKuMmQ+ttFgRFWKhsZZ\nBhoGlzA8V4vCQ9u4vBEuHrU+mdWsBJcDeD4fG72/3qZYPsH5frJAy4CCR3aG\np88I\r\n=kLwu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH/eRoOmPpbQKqLkJAYiW1yMFdz2j1ohvKhtP00aorIYAiBVI2tDhbBrB5ollD4lSrtd+mnGLebvHY7RxkLGUD/mqw=="}]},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_1.3.1_1528701113683_0.40021332035078006"},"_hasShrinkwrap":false},"1.3.2":{"name":"elint","version":"1.3.2","description":"A easy way to lint your code.","main":"src/index.js","bin":{"elint":"./bin/cli.js"},"scripts":{"test":"npm run test:lint && npm run test:unit","test:lint":"eslint --format codeframe \"bin/**/*.js\" \"src/**/*.js\" \"test/**/*.js\" \"scripts/**/\"","test:unit":"nyc --reporter=html --reporter=text mocha \"test/**/*.spec.js\" && nyc report --reporter=text-lcov | coveralls","postinstall":"node ./src/postinstall.js"},"repository":{"type":"git","url":"git+https://github.com/keenwon/elint.git"},"keywords":["eslint","eslintplugin","eslintconfig","stylelint","commitlint","standard","jshint","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","files":["bin","scripts","src"],"bugs":{"url":"https://github.com/keenwon/elint/issues"},"homepage":"https://github.com/keenwon/elint#readme","dependencies":{"@commitlint/core":"^7.0.0","chalk":"^2.4.1","co":"^4.6.0","commander":"^2.15.1","debug":"^3.1.0","diff":"^3.5.0","eslint":"^4.19.1","execa":"^0.10.0","figures":"^2.0.0","find-process":"^1.1.1","fs-extra":"^6.0.1","globby":"^8.0.1","husky":"1.0.0-rc.8","ignore":"^3.3.8","is-npm":"^2.0.0","left-pad":"^1.3.0","lodash":"^4.17.10","md5":"^2.2.1","minimatch":"^3.0.4","semver-utils":"^1.1.2","staged-git-files":"^1.1.1","stylelint":"^9.2.0","supports-color":"^4","write-json-file":"^2.3.0"},"devDependencies":{"chai":"^4.1.2","chai-as-promised":"^7.1.1","coveralls":"^3.0.1","deep-equal-in-any-order":"^1.0.10","mocha":"^5.1.1","nyc":"^12.0.2","sinon":"^5.1.1"},"gitHead":"c596c5b421ecd1ab05df80c0db3e4dadb118076f","_id":"elint@1.3.2","_npmVersion":"6.1.0","_nodeVersion":"10.1.0","_npmUser":{"name":"keenwon","email":"semanwmj@gmail.com"},"dist":{"integrity":"sha512-AqNn/9yK5XHAh7TcTEFNBxPyEr4+d9q18TtykLVLgevZBWI26NBeuwgiN5aI1sfjhzAjIXirtODMV3W4DYYRLw==","shasum":"daaa36d975e3963c25127a000c3aacf6120baebd","tarball":"https://registry.npmjs.org/elint/-/elint-1.3.2.tgz","fileCount":41,"unpackedSize":66211,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbH4SoCRA9TVsSAnZWagAAYfAP/120Fr+mIRUxgFMEeKyq\n7Gi8jG1j0aZYuqcRqj48Aj1uGSMWcn1iTWC8t3+oS7ibMmFn/lQU8A6zksox\nWaHTR/Uuk0yiJXW2qrLATm4s3Kpqp6t/u3x1dgALNPVmH781jlxH2Lxu0MsR\nKfR5cNb8v2udHWTdx0W7I6hnqYYSEcDxU+JXYE4aFIbZ3qeEzUcyNzKsRR/E\nqKo79IED9S+yVEbDHAjsDSlhlYYpqpJ7pXsETSf7m29uiYD73uKm+JL1FIMN\nRsSA5m5FZq4VK4lGuCkbZ3rDcuAp+JGOz1NynbiRqoU4nh2cdqeznBcOs7px\nEdJC7CX0n95FN/7lV7XxHMyIJKfpGPrhi6mP3Uj6UnwAEvGfEl+CV0Bej1uv\nuoo/Vvx5hzPWgxQhy/5oJv1m1idHiVr/C8oNbGI8vcGTj+B07KBN5anIfWRb\nbzr+clbkqo+/z3VG5lSrGrdx/55VqmJmgLmAoM786yGa+/Wx6QLR/Jb4/mJ1\n+gmYQaQZnEQKNzdjT4NwC3iAR2JjORPy8Q0EE5VxhgGMtfj6EAzoCTk4bAbd\nYRdaZkl+9W5u5uUN4FBRcekQDiICjjgc2klEVtNj3I/o7jSxovS7rtUK6LjZ\ng84+uECZjUykYR/W5zwi69tMhBJHrYq/n4cZpWPkmwk3VFy2sqSIlFawzS+z\n7F4f\r\n=Kgs4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAlV9U8DY9HtL3pPndFHh33uaIJuVp5Ghbt6YV48dVYQAiAiNc9/FVfpEBM8pa7Mb3dRHcn35FXow7veo1f7A5MhfA=="}]},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_1.3.2_1528792231226_0.7567555940004627"},"_hasShrinkwrap":false},"1.3.3":{"name":"elint","version":"1.3.3","description":"A easy way to lint your code.","main":"src/index.js","bin":{"elint":"./bin/cli.js"},"scripts":{"test":"npm run test:lint && npm run test:unit","test:lint":"eslint --format codeframe \"bin/**/*.js\" \"src/**/*.js\" \"test/**/*.js\" \"scripts/**/\"","test:unit":"nyc --reporter=html --reporter=text mocha \"test/**/*.spec.js\" && nyc report --reporter=text-lcov | coveralls","postinstall":"node ./src/postinstall.js"},"repository":{"type":"git","url":"git+https://github.com/keenwon/elint.git"},"keywords":["eslint","eslintplugin","eslintconfig","stylelint","commitlint","standard","jshint","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","files":["bin","scripts","src"],"bugs":{"url":"https://github.com/keenwon/elint/issues"},"homepage":"https://github.com/keenwon/elint#readme","engines":{"node":">=6.0.0"},"dependencies":{"@commitlint/core":"^7.0.0","chalk":"^2.4.1","co":"^4.6.0","commander":"^2.15.1","debug":"^3.1.0","diff":"^3.5.0","eslint":"^4.19.1","execa":"^0.10.0","figures":"^2.0.0","find-process":"^1.1.1","fs-extra":"^6.0.1","globby":"^8.0.1","husky":"1.0.0-rc.8","ignore":"^3.3.8","is-npm":"^2.0.0","left-pad":"^1.3.0","lodash":"^4.17.10","md5":"^2.2.1","minimatch":"^3.0.4","semver-utils":"^1.1.2","staged-git-files":"^1.1.1","stylelint":"^9.2.0","supports-color":"^4","write-json-file":"^2.3.0"},"devDependencies":{"chai":"^4.1.2","chai-as-promised":"^7.1.1","coveralls":"^3.0.1","deep-equal-in-any-order":"^1.0.10","mocha":"^5.1.1","nyc":"^12.0.2","sinon":"^5.1.1"},"gitHead":"4bc0b67f5246a9d6be966d4f7a6af4f0f7b5e897","_id":"elint@1.3.3","_shasum":"fa158d14ae820de74366134de37c752880ef457a","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.0","_npmUser":{"name":"keenwon","email":"semanwmj@gmail.com"},"dist":{"shasum":"fa158d14ae820de74366134de37c752880ef457a","tarball":"https://registry.npmjs.org/elint/-/elint-1.3.3.tgz","fileCount":41,"unpackedSize":68347,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbH90LCRA9TVsSAnZWagAAMuMP/Anjjwg10cnmA29T1WsX\nHXR15TV0H2/2KS/DZEfugtJkfB+GMYhA9fTd7XIB4sdt7UYd4wcLwpbxF4HV\nLpIHE7S1uU5aUta5zZjipOwZJ612YdOyKl46waqd750FlymIKal8G4wQ1+f5\nhWn2uanzAQEBFp7qWL5jEa9Bv5pGhfBjltABKFluu0mWtDiqNRWjOO5B0NtX\nEF2BgSLrcDZGdE4Mc2tYEPFDvf7yMxrXwItjJtkm+oE4zbWMPA4m4PCwb1kQ\ngRLQWW8OrGFkcVYWpUXGghG/w506UcKr+aypjThrvmW5xSuP7WfuqFwr1ngz\nq11JqJ0SYksyurKZ1TxftVLT8ARMlcOhW67Ejt/RWpDnJyfdyaBF3EuP/HJB\n75SRvMv7jB+e9WX3zK363i7iG0rt6vLhHGdWviiVSFgdslLdklMSav2YwLmy\nY9C1OHLk9YN1fmVDC+BcNSl67QoPwVMRH/VKH0gkOFUxi6ym1GMbHaiEvRzX\n/P9MF4AHmiYpHmCG+0Wyoth1t5XuD8z92cPhTUiFs81ia3/hCh3hFR5cj4Ut\nZdVn7TDqhudUEmf4DRDg5kaeREfdwjvXbQA83SXzOPI8U95QgjZKlKvC3xDt\n3hkzUBQPsURXAvKgOLfktaJU1NRR4lNX670XL+iZQnFmjH5SVGf8rWeUhQXt\n6w1t\r\n=hHpO\r\n-----END PGP SIGNATURE-----\r\n","integrity":"sha512-EdmGpvpVwnge++1JbTqzmw1Yhf3m0B2tKXXsp6srTmU9akc9A2aWSREZs9j19nqfRAwo+BWs0l8DRvH9U0Lkyg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBSMUqc7f6kHBZYirJdV5ke91A1AIcjTawNahak0XpShAiBGhr2wfBnjlrNbl17lcKCFx07RhoI2DyoeqIHMYwaqmg=="}]},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_1.3.3_1528814858508_0.622531750148192"},"_hasShrinkwrap":false},"1.4.0":{"name":"elint","version":"1.4.0","description":"A easy way to lint your code.","main":"src/index.js","bin":{"elint":"./bin/cli.js"},"scripts":{"test":"npm run test:lint && npm run test:unit && npm run test:system","test:lint":"eslint --format codeframe \"bin/**/*.js\" \"src/**/*.js\" \"test/**/*.js\" \"scripts/**/\"","test:system":"mocha test/system/test.spec.js","test:unit":"nyc --reporter=html --reporter=text mocha \"test/unit/**/*.spec.js\" && nyc report --reporter=text-lcov | coveralls","postinstall":"node ./src/postinstall.js"},"repository":{"type":"git","url":"git+https://github.com/keenwon/elint.git"},"keywords":["eslint","eslintplugin","eslintconfig","stylelint","commitlint","standard","jshint","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","files":["bin","scripts","src"],"bugs":{"url":"https://github.com/keenwon/elint/issues"},"homepage":"https://github.com/keenwon/elint#readme","engines":{"node":">=6.0.0"},"dependencies":{"@commitlint/core":"^7.0.0","chalk":"^2.4.1","co":"^4.6.0","commander":"^2.15.1","debug":"^3.1.0","diff":"^3.5.0","eslint":"^4.19.1","execa":"^0.10.0","figures":"^2.0.0","find-process":"^1.1.1","fs-extra":"^6.0.1","globby":"^8.0.1","husky":"1.0.0-rc.8","ignore":"^3.3.8","is-npm":"^2.0.0","left-pad":"^1.3.0","lodash":"^4.17.10","md5":"^2.2.1","minimatch":"^3.0.4","semver-utils":"^1.1.2","staged-git-files":"^1.1.1","stylelint":"^9.2.0","supports-color":"^4","write-json-file":"^2.3.0"},"devDependencies":{"chai":"^4.1.2","chai-as-promised":"^7.1.1","coveralls":"^3.0.1","deep-equal-in-any-order":"^1.0.10","mocha":"^5.1.1","nyc":"^12.0.2","sinon":"^6.0.0"},"gitHead":"ebfde3c07ab1a23be9ecbe1e98f9ca243bf04953","_id":"elint@1.4.0","_npmVersion":"6.1.0","_nodeVersion":"10.1.0","_npmUser":{"name":"keenwon","email":"semanwmj@gmail.com"},"dist":{"integrity":"sha512-eG6jhZKR8KfJlpqIPSpViD/sg82FkOCQ/tBD+wLZJ69FmPReV2bcS+OD51b64ES1CrLBd/OFbOXrzVWsFxpN4Q==","shasum":"dbbc270479f25aced11b1c6fb4b8939865876f21","tarball":"https://registry.npmjs.org/elint/-/elint-1.4.0.tgz","fileCount":40,"unpackedSize":70107,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbIkYbCRA9TVsSAnZWagAAnK0P/jG/TuSVhVPZAlfAOUZ6\nYkc+fsfrmwaLZ0/BCevvvmJT0idjr0J7QHTOAoNzQSFXjAfSk/1hUGrv0X8B\nW5J0qGK7DeFspVonzRVBHHuVLhd7ORwHi4R1LpzuVSQ3ejIulawGlw5p6WK5\nwxA3uhDNkVPrK7mzq6lQK815g9JT6cfrAISQH7LHyq+1aPzXXTeukbiQ8iaT\n62ZB3fwRp0MnmbHingDwljAxqMg7jVw7gWWrU0jQUB6ql30VSYaSCJ1bmiya\nUUV7Xg0XN6XtWTSe20MQxV6xIUCSNUrWThoIut45ce0i7EuPiWqIduS3kbwb\nYw1+ulzbkK1Af6RKOcJ4U5jwsossJtq4K9BVSeur2MUjaEsQMWgS/k1XLBct\nHkJK7VhGdyWPlnaOxvNnyfUUgV76+PYVX/64iLmhlmbOSZakkFbEA/NqiM6G\n2I7G1PM21IvpArdAVCPkJW71zNnkGeT6n6Uvxh3hdtYK/9Hizrh9im/uI38P\nRryUsRv9+h2uu/H02/dwWqY4l209rIckwsfbFpp91SMJGmyvgsHSC2WjAzgI\nL8jcB8dbvJX6KdioFp/lRynhpG1xzyI0nCBZolI6rvim+8yCUnxwqZTDAlpU\nlolJ0pbOFGC/Vo2gmA74+2YJsqxW6ieU07UkN2/QBPYFVVxu9dh7ydA2g+7s\n1UbB\r\n=LN3V\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCbjVPo5Bf6AUcfqzehqDLtBDutklxe7172VMhIt93qyAIgAq17wBnTHfNLoWFfzs0WRIf0Z1/k6NPD7mNNtK/haO8="}]},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_1.4.0_1528972826497_0.14018409031308665"},"_hasShrinkwrap":false},"1.5.0":{"name":"elint","version":"1.5.0","description":"A easy way to lint your code.","main":"src/index.js","bin":{"elint":"./bin/cli.js"},"scripts":{"test":"npm run test:lint && npm run test:unit:coverage && npm run test:system","test:appveyor":"npm run test:lint && npm run test:unit && npm run test:system","test:lint":"eslint --format codeframe \"bin/**/*.js\" \"src/**/*.js\" \"test/**/*.js\" \"scripts/postinstall\"","test:system":"mocha test/system/test.spec.js","test:unit":"mocha \"test/unit/**/*.spec.js\"","test:unit:coverage":"nyc --reporter=html --reporter=text npm run test:unit && nyc report --reporter=text-lcov | coveralls","postinstall":"node ./src/postinstall.js"},"repository":{"type":"git","url":"git+https://github.com/keenwon/elint.git"},"keywords":["eslint","eslintplugin","eslintconfig","stylelint","commitlint","standard","jshint","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","files":["bin","scripts","src"],"bugs":{"url":"https://github.com/keenwon/elint/issues"},"homepage":"https://github.com/keenwon/elint#readme","engines":{"node":">=6.0.0"},"dependencies":{"@commitlint/core":"^7.0.0","chalk":"^2.4.1","co":"^4.6.0","commander":"^2.15.1","debug":"^3.1.0","diff":"^3.5.0","eslint":"^5.0.0","execa":"^0.10.0","figures":"^2.0.0","find-process":"^1.1.1","fs-extra":"^6.0.1","globby":"^8.0.1","husky":"1.0.0-rc.9","ignore":"^4.0.2","is-npm":"^2.0.0","left-pad":"^1.3.0","lodash":"^4.17.10","md5":"^2.2.1","minimatch":"^3.0.4","semver-utils":"^1.1.2","staged-git-files":"^1.1.1","stylelint":"^9.3.0","supports-color":"^4","write-json-file":"^2.3.0"},"devDependencies":{"@commitlint/cli":"^7.0.0","chai":"^4.1.2","chai-as-promised":"^7.1.1","coveralls":"^3.0.1","deep-equal-in-any-order":"^1.0.10","mocha":"^5.1.1","nyc":"^12.0.2","sinon":"^6.0.0"},"gitHead":"c46017400449d0a4767eaa596e1cd417c25ee539","_id":"elint@1.5.0","_npmVersion":"6.1.0","_nodeVersion":"10.1.0","_npmUser":{"name":"keenwon","email":"semanwmj@gmail.com"},"dist":{"integrity":"sha512-2GKyR0QGDNVNWlrLBjnl58w9o+A1zdOO3ZXgQ0X+FG62/MyJdjixPm0Rhf0nce+zclS/nKRYgmzMkFAQchQp6Q==","shasum":"f7f230f061e5bd3214ff04c4462b13cf06d55396","tarball":"https://registry.npmjs.org/elint/-/elint-1.5.0.tgz","fileCount":41,"unpackedSize":71996,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbMIvICRA9TVsSAnZWagAAMIwP/iU4BzOj2fPpg1ezsOyu\nvnbg+ow4vq8mP9p+I56HIjRj2Z0qfE4vlnJ/LE5lDK0KqgulvA1ZtiIUTM13\naOuti3pcxcLwkQR0z1xblRNUDTOp+jQZtAILS17Ww/oDwjq2XkvmoCLMiQWP\nCvfqsnSfxhrdaTyXcHYmys+UQt5yqup6YgMmtUvMdym4xG6iBUhprr9HPLSc\nmXLFgbzYg9EYmmBSrCUaSi9ag7O5UEC6tFAOte1kE5HCx93/GUV8T86jd6TH\n+9f29LvIn7GIZNxsOzUllFcUPYyLqGqch8sI4db48K+UcV8LxwlfHxKUnK+1\nDCwKBm8NHdpmkX6L7KPRdbxRTSspxg7QvD0ChrMm7+SbIr0rLpb0VNyiv/gX\nKiEhNX/SZ9heRTO3i1OH3rK54lYIoMcW88j3ru7I/lckOkjFuRiXSA2PAeSG\nAXJBQFdpbTJkGXUxYV6W9XPzB+jwJRV06oSyxa7svGQrBCv9X8Hn48qvtdZC\nNPSDMsclOOqm90ziOgiPe3T+XDOYWDbYQeb5m3i23MxPo4iFfChLK1NFjSez\nZR6qlMOwJvahKGR+r/IOvxQKc0eaVrTEEIdMxPsmok29EI03OpX5owS3P3qH\naewYsDWQj1afUHrpAOAI5BusHGQHQq6ol+q+/ZN0Z+x9TjYmuu3gC0lIlXPW\nLTe0\r\n=wF9k\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDjHtL/Iq24kdsglOpF1mX/7csh4nhGaUR6+z0hmSiAJwIhALT4VfLa2NQC4euW7c2gw9mVEr/js30+cY+mmU9U9xYL"}]},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_1.5.0_1529908168301_0.5302443934195049"},"_hasShrinkwrap":false},"1.5.1":{"name":"elint","version":"1.5.1","description":"A easy way to lint your code.","main":"src/index.js","bin":{"elint":"./bin/cli.js"},"scripts":{"test":"npm run test:lint && npm run test:unit:coverage && npm run test:system","test:circleci":"npm run test:lint && npm run test:unit && npm run test:system","test:appveyor":"npm run test:lint && npm run test:unit && npm run test:system","test:lint":"eslint --format codeframe \"bin/**/*.js\" \"src/**/*.js\" \"test/**/*.js\" \"scripts/postinstall\" --fix","test:system":"node test/system/utils/init.js && ava \"test/system/**/*.spec.js\" && node test/system/utils/clean.js","test:unit":"mocha \"test/unit/**/*.spec.js\"","test:unit:coverage":"nyc --reporter=html --reporter=text npm run test:unit && nyc report --reporter=text-lcov | coveralls","postinstall":"node ./src/postinstall.js"},"repository":{"type":"git","url":"git+https://github.com/keenwon/elint.git"},"keywords":["eslint","eslintplugin","eslintconfig","stylelint","commitlint","standard","jshint","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","files":["bin","scripts","src"],"bugs":{"url":"https://github.com/keenwon/elint/issues"},"homepage":"https://github.com/keenwon/elint#readme","engines":{"node":">=6.0.0"},"dependencies":{"@commitlint/core":"^7.0.0","chalk":"^2.4.1","co":"^4.6.0","commander":"^2.16.0","debug":"^3.1.0","diff":"^3.5.0","eslint":"^5.0.0","execa":"^0.10.0","figures":"^2.0.0","find-process":"^1.1.1","fs-extra":"^6.0.1","globby":"^8.0.1","husky":"1.0.0-rc.9","ignore":"^4.0.2","is-npm":"^2.0.0","left-pad":"^1.3.0","lodash":"^4.17.10","md5":"^2.2.1","minimatch":"^3.0.4","semver-utils":"^1.1.2","staged-git-files":"^1.1.1","stylelint":"^9.3.0","supports-color":"^4","write-json-file":"^2.3.0"},"devDependencies":{"@commitlint/cli":"^7.0.0","ava":"^0.25.0","chai":"^4.1.2","chai-as-promised":"^7.1.1","coveralls":"^3.0.1","deep-equal-in-any-order":"^1.0.10","mocha":"^5.1.1","nyc":"^12.0.2","sinon":"^6.0.0"},"gitHead":"9aa8f97573586441a6df31c013cf03a9c5179405","_id":"elint@1.5.1","_npmVersion":"6.1.0","_nodeVersion":"10.1.0","_npmUser":{"name":"keenwon","email":"semanwmj@gmail.com"},"dist":{"integrity":"sha512-uAyJJOtISnJp2KyUTFqvw6iLTcTCI5wNByFjziyjU5hotJuFU6Zzk7diyQv9ol8apIDZfagtnFMn4LfV6Dcn9A==","shasum":"9389b4ce4a53f4e14e95eb5e3f5c1d857cce6f96","tarball":"https://registry.npmjs.org/elint/-/elint-1.5.1.tgz","fileCount":41,"unpackedSize":73621,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbOQqPCRA9TVsSAnZWagAAW40P/3GMp3mC/8B3wnVsK4Or\nFpjolg3+yIjxTKpEzz+C9YQsmlfYiZ94LN6EGyDU/elQsuop/1abQbk33Rwj\nMLmB9ramOInJ4Ftfvk/0f959241Ch1EpfwNolD6wp/N8OMvh1iRZ7vlee0TL\nTdXsDhCtFNlN+mCfWq7UONKL0kMNFtEU6lXHIlFP+ckhfxnbdT0v32FL+NQJ\nKcLHyJvwHM0AMsovRc2nOQvwcIdY6AIQt5end4oHIvb69sfSQLBHa9QGelvA\nC/16pd5z6BzaOBPxCB3usYsMiv3BMpccPPTd2FCaA048rx7Bk+VS2FG2A4rP\noNclQMtkNrQ8nXv3bmp0VKuadVkPh1lxbEXuh5Upbfaq9CT+lT1TJWNsDYIK\nSaybnD5h78MSD2iwzW9sEG7J312ZjcpgO7CLr74TTIeC8gAxzQAo8qPSd+xo\nXyjf+wtxOYsFr4HA43p6PZbpo2JSJS4uylzM0izpfC2UOeA5kZj5blpKZRbA\nlpoHii4mbkBnAsB8zhotDAIOdjmBQ+NryOmpb6nW9GK4qGQrwonJccRVlBme\nZNVm4zftjL7o5NPRiLaf2b3Hc0HhS75uhcwAC69v98M5b29Px1qHRQ82xjK1\nlLwChHmEHHUOFBZQZ7f0n18l0GDHIf9xG3BSMsEQyYE/gcc2bLfxytMYDwKS\nZ5hp\r\n=xstb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICwUUUYIzGP4be6WxKN5W7WAeuFkveNXuN49MAkaCRZ3AiAKEWH8Jsy7ob1dMZX+pL++t6Et77deCm7Ccp4WhAKhXg=="}]},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_1.5.1_1530464911256_0.818596022254968"},"_hasShrinkwrap":false},"1.5.2-rc.1":{"name":"elint","version":"1.5.2-rc.1","description":"A easy way to lint your code.","main":"src/index.js","bin":{"elint":"./bin/cli.js"},"scripts":{"test":"npm run test:lint && npm run test:unit:coverage && npm run test:system","test:circleci":"npm run test:lint && npm run test:unit && npm run test:system","test:appveyor":"npm run test:lint && npm run test:unit && npm run test:system","test:lint":"eslint --format codeframe \"bin/**/*.js\" \"src/**/*.js\" \"test/**/*.js\" \"scripts/postinstall\" --fix","test:system":"node test/system/utils/init.js && ava \"test/system/**/*.spec.js\" && node test/system/utils/clean.js","test:unit":"mocha \"test/unit/**/*.spec.js\"","test:unit:coverage":"nyc --reporter=html --reporter=text npm run test:unit && nyc report --reporter=text-lcov | coveralls","postinstall":"node ./src/postinstall.js"},"repository":{"type":"git","url":"git+https://github.com/keenwon/elint.git"},"keywords":["eslint","eslintplugin","eslintconfig","stylelint","commitlint","standard","jshint","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","files":["bin","scripts","src"],"bugs":{"url":"https://github.com/keenwon/elint/issues"},"homepage":"https://github.com/keenwon/elint#readme","engines":{"node":">=6.0.0"},"dependencies":{"@commitlint/core":"^7.0.0","chalk":"^2.4.1","co":"^4.6.0","commander":"^2.16.0","debug":"^3.1.0","diff":"^3.5.0","eslint":"^5.1.0","execa":"^0.10.0","figures":"^2.0.0","find-process":"^1.1.1","fs-extra":"^6.0.1","globby":"^8.0.1","husky":"1.0.0-rc.13","ignore":"^4.0.2","is-npm":"^2.0.0","left-pad":"^1.3.0","lodash":"^4.17.10","md5":"^2.2.1","minimatch":"^3.0.4","semver":"^5.5.0","semver-utils":"^1.1.2","staged-git-files":"^1.1.1","stylelint":"^9.3.0","supports-color":"^4","write-json-file":"^2.3.0"},"devDependencies":{"@commitlint/cli":"^7.0.0","ava":"^0.25.0","chai":"^4.1.2","chai-as-promised":"^7.1.1","coveralls":"^3.0.1","deep-equal-in-any-order":"^1.0.10","eslint-config-standard":"^11.0.0","eslint-plugin-import":"^2.13.0","eslint-plugin-node":"^6.0.1","eslint-plugin-promise":"^3.8.0","eslint-plugin-standard":"^3.1.0","mocha":"^5.1.1","nyc":"^12.0.2","sinon":"^6.1.3"},"gitHead":"ce72c288aba33e0952b5138063ea8082a92f455c","_id":"elint@1.5.2-rc.1","_npmVersion":"6.1.0","_nodeVersion":"10.6.0","_npmUser":{"name":"keenwon","email":"semanwmj@gmail.com"},"dist":{"integrity":"sha512-PeBQ2H52gMXIuYHorxDgoXHom2OKiEoYjgTkEzjjVqc0xrOwPdMt9NFzlFuaqaJqKTqERP7elcCnoIg54eeAlQ==","shasum":"bbc7a8bc373586e2220ba4528c8c83edaed589dc","tarball":"https://registry.npmjs.org/elint/-/elint-1.5.2-rc.1.tgz","fileCount":41,"unpackedSize":74616,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbSOUACRA9TVsSAnZWagAAeQAP/3c2wBVYoT2HjGMLODkq\ngvJFZY3JRPF9v38/4Ci+ObZmv8D0zN+SqljJdx/kXtUVeASiM2w3B6O+xoDC\nUNefmr5aZGYGjTW7GuvtBdsGxmvyemc83gPfgWfLEaDE/NpvCdeyg4xJCVO8\nIpGaoRpHyDYjleRwVl4NkpSNZcVx3vCfNvBuMtXTaaXCwbbV2q2PUIt+9pOk\n0It7qbJozvytEeUF8ErwJP6ETe4q7r8QT0KYKh+kqOvOrCEH4wJeKf0Ng9EI\nHUpwE/tnvQxDEj6ake0rJlwxDzbwLL15xqSAgPMUuUjQkSabzZgd0Algzfkd\nHn3A/Esawwgm5qS0DdlVY1XUNEyCU07M5ZKJSqkvFPJ1hYRbBmEEwdZsIPvq\npfb5L9HoVfmTIN0AHcnx3kOj+Ipinx3m236qLzceF7HN6S0rCYSiRCl+Jxnu\nzQPmOeHjIQtlrZvJmlUWcCsYv5HJjLgpLTSnRXOsffE05aNr3BN2/4T5VeNI\n9k+ex0CMV3k2nGnQAwzQ3gNL0z6LxMI5ZhviIKjgEDcSeZqUtqXz8KFCOEwe\nSCx5mFA1M1515Q4bS34yJnLSA7Yxcwv8Ecrg4aIapJVDDx6N+E1URARYrLpI\nwMbt9HILTpzVApNFMC9s2/M1+lF9Veh9UE7qFUFRl9fJJ/N4/qE68mM121SZ\nxqui\r\n=f9f1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEQ7lq2tBH2nXJb0d4++Wuv5TSnN8t/2IFJJpxJQWxzOAiEAmzNOW/cqZiefMAR3BHJd9VLbA4Y6mvriQylbeu2C700="}]},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_1.5.2-rc.1_1531503872791_0.8771734872221018"},"_hasShrinkwrap":false},"1.5.2":{"name":"elint","version":"1.5.2","description":"A easy way to lint your code.","main":"src/index.js","bin":{"elint":"./bin/cli.js"},"scripts":{"test":"npm run test:lint && npm run test:unit:coverage && npm run test:system","test:circleci":"npm run test:lint && npm run test:unit && npm run test:system","test:appveyor":"npm run test:lint && npm run test:unit && npm run test:system","test:lint":"eslint --format codeframe \"bin/**/*.js\" \"src/**/*.js\" \"test/**/*.js\" \"scripts/postinstall\" --fix","test:system":"node test/system/utils/init.js && ava \"test/system/**/*.spec.js\" && node test/system/utils/clean.js","test:unit":"mocha \"test/unit/**/*.spec.js\"","test:unit:coverage":"nyc --reporter=html --reporter=text npm run test:unit && nyc report --reporter=text-lcov | coveralls","postinstall":"node ./src/postinstall.js"},"repository":{"type":"git","url":"git+https://github.com/keenwon/elint.git"},"keywords":["eslint","eslintplugin","eslintconfig","stylelint","commitlint","standard","jshint","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","files":["bin","scripts","src"],"bugs":{"url":"https://github.com/keenwon/elint/issues"},"homepage":"https://github.com/keenwon/elint#readme","engines":{"node":">=6.0.0"},"dependencies":{"@commitlint/core":"^7.0.0","chalk":"^2.4.1","co":"^4.6.0","commander":"^2.16.0","debug":"^3.1.0","diff":"^3.5.0","eslint":"^5.1.0","execa":"^0.10.0","figures":"^2.0.0","find-process":"^1.1.1","fs-extra":"^6.0.1","globby":"^8.0.1","husky":"1.0.0-rc.13","ignore":"^4.0.2","is-npm":"^2.0.0","left-pad":"^1.3.0","lodash":"^4.17.10","md5":"^2.2.1","minimatch":"^3.0.4","semver":"^5.5.0","semver-utils":"^1.1.2","staged-git-files":"^1.1.1","stylelint":"^9.3.0","supports-color":"^4","write-json-file":"^2.3.0"},"devDependencies":{"@commitlint/cli":"^7.0.0","ava":"^0.25.0","chai":"^4.1.2","chai-as-promised":"^7.1.1","coveralls":"^3.0.1","deep-equal-in-any-order":"^1.0.10","eslint-config-standard":"^11.0.0","eslint-plugin-import":"^2.13.0","eslint-plugin-node":"^6.0.1","eslint-plugin-promise":"^3.8.0","eslint-plugin-standard":"^3.1.0","mocha":"^5.1.1","nyc":"^12.0.2","sinon":"^6.1.3"},"gitHead":"486033d5036123247eeed8c18f5e4fea65f622cc","_id":"elint@1.5.2","_npmVersion":"6.1.0","_nodeVersion":"10.6.0","_npmUser":{"name":"keenwon","email":"semanwmj@gmail.com"},"dist":{"integrity":"sha512-/3x/NRKj4CFE3bWrD4k6jCl8ajeQDFxCSwzBZ5FmkDK1jWjm//A6NRAlucrc2i9znA7OuseQhcYq1umccaiG+A==","shasum":"9ec97d19f181985539084127177549895124f211","tarball":"https://registry.npmjs.org/elint/-/elint-1.5.2.tgz","fileCount":41,"unpackedSize":74373,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbSaRxCRA9TVsSAnZWagAA130QAILzMvI+nGNmjZOZ2p1Q\nLm34cLpXFn6hU9NljeJvzML/ebnReKqablOIQnZsN8qtzNaVlH6t8R0m0lyj\nOTDeMKRWCAjNrYr50Jyvj7rhjiT+B8cbvPhpv3aR8FefZPwAVr052GnmGv6c\nPso72yo9rlDA8IflxcH5f2qc6+BPKHLXSHBjid4lFN4ksoI0/BGNoCF5Own9\nDbDjjEIqWZvsz+2iJLVKaMe5MC2knrefg09A2pnsf/z8hunV+GmDls40d0Yp\n+j5HlO76DHd+HoP/5ZIuLm/WZqGd5ULQLlsDa2qzWyEPXCI40oDSeMidhznr\nsUvnPcreYK4qil6kEbNCNJFs+jheOqa/RO00DICQucw3CHGc8jL6a6tiyR52\n3hJZd+FZuKp/tHwwEI2rlbjjK50OPc5x1sQbthAID+uWrzFcCzmk65Bq7y/u\nfGJeHPsPFwtH8Ch2ekk3LxqNJHhRSbRVwh18UDtkNMOtdoo6QFfF+Pgx7LUe\nmtsXpr0Gpq5Ft5g33jOjECmO9LNYCTDW2EHz8v28OEOfwGMKkprdVxWok0VF\nTH5TV23GtH7srOWIxbGkLEM25swSWNsqBbfFmEWveJskbl2UPFweITWz1l0/\nFKit3SDYPvVG09uVQ6lFjScisd4N6fEhaGn6js+rl+a/sRBjNoWvLcrJdply\nAHO9\r\n=uExc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHCMEgOukvRRbV786rLkSvxROwFpx6GlHcvzxMnk47a7AiEAiLuShz87dj+ES3ycebV0HiXN/ZmzGDPBSAiYUaLAu2g="}]},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_1.5.2_1531552881145_0.9837292149782555"},"_hasShrinkwrap":false},"1.5.3":{"name":"elint","version":"1.5.3","description":"A easy way to lint your code.","main":"src/index.js","bin":{"elint":"./bin/cli.js"},"scripts":{"test":"npm run test:lint && npm run test:unit:coverage && npm run test:system","test:circleci":"npm run test:lint && npm run test:unit && npm run test:system","test:appveyor":"npm run test:lint && npm run test:unit && npm run test:system","test:lint":"eslint --format codeframe \"bin/**/*.js\" \"src/**/*.js\" \"test/**/*.js\" \"scripts/postinstall\" --fix","test:system":"node test/system/utils/init.js && ava \"test/system/**/*.spec.js\" && node test/system/utils/clean.js","test:unit":"mocha \"test/unit/**/*.spec.js\"","test:unit:coverage":"nyc --reporter=html --reporter=text npm run test:unit && nyc report --reporter=text-lcov | coveralls","postinstall":"node ./src/postinstall.js"},"repository":{"type":"git","url":"git+https://github.com/keenwon/elint.git"},"keywords":["eslint","eslintplugin","eslintconfig","stylelint","commitlint","standard","jshint","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","files":["bin","scripts","src"],"bugs":{"url":"https://github.com/keenwon/elint/issues"},"homepage":"https://github.com/keenwon/elint#readme","engines":{"node":">=6.0.0"},"dependencies":{"@commitlint/core":"^7.0.0","chalk":"^2.4.1","co":"^4.6.0","commander":"^2.16.0","debug":"^3.1.0","diff":"^3.5.0","eslint":"^5.1.0","execa":"^0.10.0","figures":"^2.0.0","find-process":"^1.1.1","fs-extra":"^7.0.0","global-prefix":"^1.0.2","globby":"^8.0.1","husky":"1.0.0-rc.13","ignore":"^4.0.2","is-npm":"^2.0.0","left-pad":"^1.3.0","lodash":"^4.17.10","md5":"^2.2.1","minimatch":"^3.0.4","semver":"^5.5.0","semver-utils":"^1.1.2","staged-git-files":"^1.1.1","stylelint":"^9.3.0","supports-color":"^4","write-json-file":"^2.3.0"},"devDependencies":{"@commitlint/cli":"^7.0.0","ava":"^0.25.0","chai":"^4.1.2","chai-as-promised":"^7.1.1","coveralls":"^3.0.1","deep-equal-in-any-order":"^1.0.10","eslint-config-standard":"^11.0.0","eslint-plugin-import":"^2.13.0","eslint-plugin-node":"^7.0.0","eslint-plugin-promise":"^3.8.0","eslint-plugin-standard":"^3.1.0","mocha":"^5.1.1","nyc":"^12.0.2","sinon":"^6.1.3"},"gitHead":"88d566e4bed30f58dd07c76762126becadbeb07e","_id":"elint@1.5.3","_npmVersion":"6.1.0","_nodeVersion":"10.6.0","_npmUser":{"name":"keenwon","email":"semanwmj@gmail.com"},"dist":{"integrity":"sha512-RbagO2UjNT3Z93PfH9C19+mhf3F9kG88Sxc8rNqUlpmLwFk/JEoluIgiTtiqTdg116GqeNtpmIA5p4MedtcSjw==","shasum":"c6d3d95754e26beb59d083345204f3af2fd82db5","tarball":"https://registry.npmjs.org/elint/-/elint-1.5.3.tgz","fileCount":41,"unpackedSize":74791,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbWEzMCRA9TVsSAnZWagAAwVgP/2n2fU3BBbiQ4CRoAddI\nfargXcuYfxJ96BYErg7QZVWoTYWXyoXOGoJOo6KUdpGr0ZX0+L2FiQ4hX9qG\nMMt86GYONi1VHf+H7SoSiiFdI1m+x1Pp/hPc6dyg0IrqLpVYV8SYwoIHsrF1\nYI4psvG+JsUhpovYtDa4JSjOsyr04oVq+pIyvjG3Krp9y84aMBk7DUf068Tf\nyMKE42ubTmKv01cx4GiZEng7aRSNl3VJClOUwUQLF7z2Xlew+K5Z54FYp8qg\nUK8ihiKPQI/irX1uzpIN5QxLdh/BXaDGVz6gwRKuZjmLLUkkcLlTa9XS+nOC\n5FzqMMzgn1YGNZPVPtmesA6kXtwbXe5r+FYuL4btfSVbE/J7mPF8e03IIkPJ\nmFtNrKUHQw9KjvnUijiJ8cdci2tbJBsKalU3qc7UlocIMlZHWdULIiBGcduG\nlUrRuKmp/rXRyVsWjhJg1aD09EZcAvOwnQLh94yiElKVd1IEPEZ30vIbWJwY\nKZFeIxmcI/ipS0O4zUZEEFwgqz3Il8fwUyd6/S07pl8uV6cojqpBYx3H1/Sg\nDUrJhgKCe5ynf96peiTQIu1NHVgjoYdTpTlkV7sBVt4DaYBV/a0BeH+GxTid\n7XqLMeZYomeITzCGvUVOCNlIztbYBQnnFYxWFLPDlJZ1AIZf9U3S/NRzQnnE\n8How\r\n=39YS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICS0KABBPfsRpvloE8u87YKdGq/viRUqjThEMUyfZooXAiEAnRw54jAhkbNJ+pNQNwao+vUr5R+ZAa2Wv92SdPKSjxo="}]},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_1.5.3_1532513484861_0.7383402955477967"},"_hasShrinkwrap":false},"1.6.0":{"name":"elint","version":"1.6.0","description":"A easy way to lint your code.","main":"src/index.js","bin":{"elint":"./bin/cli.js"},"scripts":{"test":"npm run test:lint && npm run test:unit:coverage && npm run test:system","test:circleci":"npm run test:lint && npm run test:unit && npm run test:system","test:appveyor":"npm run test:lint && npm run test:unit && npm run test:system","test:lint":"eslint --format codeframe \"bin/**/*.js\" \"src/**/*.js\" \"test/**/*.js\" \"scripts/postinstall\" --fix","test:system":"node test/system/utils/init.js && ava \"test/system/**/*.spec.js\" && node test/system/utils/clean.js","test:unit":"mocha \"test/unit/**/*.spec.js\"","test:unit:coverage":"nyc --reporter=html --reporter=text npm run test:unit && nyc report --reporter=text-lcov | coveralls","postinstall":"node ./src/postinstall.js"},"repository":{"type":"git","url":"git+https://github.com/keenwon/elint.git"},"keywords":["eslint","eslintplugin","eslintconfig","stylelint","commitlint","standard","jshint","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","bugs":{"url":"https://github.com/keenwon/elint/issues"},"homepage":"https://github.com/keenwon/elint#readme","engines":{"node":">=6.0.0"},"dependencies":{"@commitlint/core":"^7.1.1","chalk":"^2.4.1","co":"^4.6.0","commander":"^2.17.1","debug":"^3.1.0","diff":"^3.5.0","eslint":"^5.4.0","execa":"^1.0.0","figures":"^2.0.0","find-process":"^1.1.3","fs-extra":"^7.0.0","global-prefix":"^1.0.2","globby":"^8.0.1","husky":"1.0.0-rc.13","ignore":"^5.0.2","is-npm":"^2.0.0","left-pad":"^1.3.0","lodash":"^4.17.10","md5":"^2.2.1","minimatch":"^3.0.4","semver":"^5.5.1","semver-utils":"^1.1.2","staged-git-files":"^1.1.1","stylelint":"^9.5.0","supports-color":"^4","write-json-file":"^3.0.0"},"devDependencies":{"@commitlint/cli":"^7.1.1","ava":"^0.25.0","chai":"^4.1.2","chai-as-promised":"^7.1.1","coveralls":"^3.0.2","deep-equal-in-any-order":"^1.0.10","eslint-config-standard":"^12.0.0","eslint-plugin-import":"^2.14.0","eslint-plugin-node":"^7.0.1","eslint-plugin-promise":"^4.0.0","eslint-plugin-standard":"^4.0.0","mocha":"^5.2.0","nyc":"^13.0.1","sinon":"^6.1.5"},"gitHead":"8daea6f63c9b0b6d9c6999f668b6b2d99f2e0f33","_id":"elint@1.6.0","_npmVersion":"6.1.0","_nodeVersion":"10.6.0","_npmUser":{"name":"keenwon","email":"semanwmj@gmail.com"},"dist":{"integrity":"sha512-4v1QV3xNMY5kC6+Pxx54GeMVeS62jgm5ZPtVWMZ2HN/HJ4EmgddmrDGgRp3ICSQ6APIj973BwbdfLtvWUA6gTQ==","shasum":"9c24ec3c69e8ee0b7e19c6d43c8d4e4a32ca82e1","tarball":"https://registry.npmjs.org/elint/-/elint-1.6.0.tgz","fileCount":41,"unpackedSize":75185,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbjkd1CRA9TVsSAnZWagAABp4P/2QB6RvlzBdQ1P6glmyO\nio1aYxGP4Cpt9IqHfr13E/kdkgc5CB6UrLmp6V9Dh1/26uhMwZ2fsZlHOa7j\nb93bLBRe/O2V2H/Pxgshbt9j1Vtw6DWzicNZ6QQ2Zss20lGgjI/k8Pz2XTKF\nZb7Xb80apHlEXP1CEx7vKsCROs2k/zv+yvatNyGdrNfTBD4rBCJK3dIva9VJ\nUqclizyNTS4wf6MEAHPqKy6DD5xy8VrviUS52hh7DAiTTUWUfeeL3K5X15O9\n4VOztbeOIKowfaFpALllWWBC+mgDd0mQDSZ5f3+vXngIMD5K+cDLLPYRDppZ\nrxBNR+1r5ggNcZNnTzdVU0eO7Nt6ObguhwbFmjeagwLUoHNBts7sj/gPpKFs\nrYVQOHcROgVxfyViPibLDDyn3Qwc5f4ST8UMqN43vUl9io5c87oyxxJ5htLV\nxZ3OkAWEcU/A+U3g9jFgCPglKpvizIqSpdRDTPs8eg8lsEjkOeLrOaFcJncF\nDn/pbXMgk1bRdrp2mF1CboyOs+/aSWQVPNNM3Nt8/Eb0SJypzrG5C6DhKETl\nX1epN413rupGyt5SICkMSTkMKBkXiw3Zj3Mmy5+9zz3QSOm8Dqu3ub3Zfnlr\n1GpNP+sY4k+riNu0JRvLrXjWMDvv+YnenIfhFrNX9gL55cZDep2LXNitZpE8\nm/Vd\r\n=WiB5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDEWBf+KVZNTft616ctzP0GH88c2Dsm47Fl3SM3gpdulgIgKfZgb9klFzGvcjziKE8/O7rDdkr6qfIrIkCaURTqlC0="}]},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_1.6.0_1536051060003_0.3985816379781606"},"_hasShrinkwrap":false},"1.6.1":{"name":"elint","version":"1.6.1","description":"A easy way to lint your code.","main":"src/index.js","bin":{"elint":"./bin/cli.js"},"scripts":{"test":"npm run test:lint && npm run test:unit:coverage && npm run test:system","test:circleci":"npm run test:lint && npm run test:unit && npm run test:system","test:appveyor":"npm run test:lint && npm run test:unit && npm run test:system","test:lint":"eslint --format codeframe \"bin/**/*.js\" \"src/**/*.js\" \"test/**/*.js\" \"scripts/postinstall\" --fix","test:system":"node test/system/utils/init.js && ava \"test/system/**/*.spec.js\" && node test/system/utils/clean.js","test:unit":"mocha \"test/unit/**/*.spec.js\"","test:unit:coverage":"nyc --reporter=html --reporter=text npm run test:unit && nyc report --reporter=text-lcov | coveralls","postinstall":"node ./src/postinstall.js"},"repository":{"type":"git","url":"git+https://github.com/keenwon/elint.git"},"keywords":["eslint","eslintplugin","eslintconfig","stylelint","commitlint","standard","jshint","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","bugs":{"url":"https://github.com/keenwon/elint/issues"},"homepage":"https://github.com/keenwon/elint#readme","engines":{"node":">=6.0.0"},"dependencies":{"@commitlint/core":"^7.1.2","chalk":"^2.4.1","co":"^4.6.0","commander":"^2.18.0","debug":"^4.0.0","diff":"^3.5.0","eslint":"^5.5.0","execa":"^1.0.0","figures":"^2.0.0","find-process":"^1.1.3","fs-extra":"^7.0.0","globby":"^8.0.1","husky":"1.0.0-rc.14","ignore":"^5.0.2","is-npm":"^2.0.0","left-pad":"^1.3.0","lodash":"^4.17.10","md5":"^2.2.1","minimatch":"^3.0.4","semver":"^5.5.1","semver-utils":"^1.1.2","staged-git-files":"^1.1.1","stylelint":"^9.5.0","supports-color":"^5.5.0","which":"^1.3.1","write-json-file":"^3.0.1"},"devDependencies":{"@commitlint/cli":"^7.1.2","ava":"^0.25.0","chai":"^4.1.2","chai-as-promised":"^7.1.1","coveralls":"^3.0.2","deep-equal-in-any-order":"^1.0.10","eslint-config-standard":"^12.0.0","eslint-plugin-import":"^2.14.0","eslint-plugin-node":"^7.0.1","eslint-plugin-promise":"^4.0.1","eslint-plugin-standard":"^4.0.0","mocha":"^5.2.0","nyc":"^13.0.1","sinon":"^6.2.0"},"gitHead":"d5844cbea40ff3b8303c50c1f0dce7d36faef2ca","_id":"elint@1.6.1","_npmVersion":"6.1.0","_nodeVersion":"10.6.0","_npmUser":{"name":"keenwon","email":"semanwmj@gmail.com"},"dist":{"integrity":"sha512-WnsexKSjLjuNSyRWeQiQD6zDmervMzNXetH23rNxDe5fCGpFm1FpI/RtKYsST1Jhnt7qp26aD1mL/eACh85whA==","shasum":"d310733f291d1e6e1f104027a17de8d7dedcb780","tarball":"https://registry.npmjs.org/elint/-/elint-1.6.1.tgz","fileCount":41,"unpackedSize":75298,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbmPAcCRA9TVsSAnZWagAAH9MP/1iglB1PoVnfNWrsjOFR\n9M+X01mLZW+Qt+sh1Dix0gnFkK8jODCOs7XoN2kBfe8yCABzCxLeWs1WoMTj\nHXIonbb/iWipI+TdqKYBsupCvAlxj5h2LFGzj5dfR4uTA0tsYROurMCkOoQA\nDX7mTfli1nE05ygiu/epORmmBBlXz8riSq3kVnL1h5pxuQzX5j8w07fXxcLc\nXpXkMU85L/KsDXH6L+VLv0+mM9YAZoaEP6LHWVmCXVgkdFpcXfU2935bRw0H\nI3UDPZPSWHTh29sdTyJnF/3yGZdxNhulEM6qTTf/DVyW7tsEn4FF8wsUcYCv\n0EfgqneGgKgOuBPejySuXlL9GoO4IythaYCxBl5gokrNfKUmMW1+Q+Q8oeyY\n9ajQz2q2daC0S5pgxxA7Nny0+RNS+6gmGJ3cwWFr+pmrMmz2Gcb6zFFH3B8l\nt3nnM/ddOUZCb6V93wVw8Gwv/4wQ3gDbAIq8O+5omOGpGx7dj75UbCgIWfrB\nPsR3Z/ydKEeLcA0YjFdqvUEzLNQXkPrYdTy29/fn+VMQamJAM4wV3SGdk7uP\naNCezwCi8+4aIPVyNRiMw0D691QSPpbRKxlRO6vLadtSuHiQEKXj/Zlgfzff\nEu8cSDBqFtgPKzcYjAVkDEb3pFjoQu3yFGIabyWMrAw23DT/rldDQH5QpEi4\n4pMO\r\n=3bIL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGRo8a1yaouqQTgtixUni7ahToPapKe8IdaiVC99jE7CAiEAzzrXr0ZAkiJNZNOurKcWhI3Mk3cAJ3ZPCkVrd51MVo4="}]},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_1.6.1_1536749595161_0.4929459955905904"},"_hasShrinkwrap":false},"1.6.2":{"name":"elint","version":"1.6.2","description":"A easy way to lint your code.","main":"src/index.js","bin":{"elint":"./bin/cli.js"},"scripts":{"test":"npm run test:lint && npm run test:unit:coverage && npm run test:system","test:circleci":"npm run test:lint && npm run test:unit && npm run test:system","test:appveyor":"npm run test:lint && npm run test:unit && npm run test:system","test:lint":"eslint --format codeframe \"bin/**/*.js\" \"src/**/*.js\" \"test/**/*.js\" \"scripts/postinstall\" --fix","test:system":"node test/system/utils/init.js && ava \"test/system/**/*.spec.js\" && node test/system/utils/clean.js","test:unit":"mocha \"test/unit/**/*.spec.js\"","test:unit:coverage":"nyc --reporter=html --reporter=text npm run test:unit && nyc report --reporter=text-lcov | coveralls","postinstall":"node ./src/postinstall.js"},"repository":{"type":"git","url":"git+https://github.com/keenwon/elint.git"},"keywords":["eslint","eslintplugin","eslintconfig","stylelint","commitlint","standard","jshint","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","bugs":{"url":"https://github.com/keenwon/elint/issues"},"homepage":"https://github.com/keenwon/elint#readme","engines":{"node":">=6.0.0"},"dependencies":{"@commitlint/core":"^7.1.2","chalk":"^2.4.1","co":"^4.6.0","commander":"^2.18.0","debug":"^4.0.0","diff":"^3.5.0","eslint":"^5.5.0","execa":"^1.0.0","figures":"^2.0.0","find-process":"^1.1.3","fs-extra":"^7.0.0","globby":"^8.0.1","husky":"1.0.0-rc.14","ignore":"^5.0.2","is-npm":"^2.0.0","left-pad":"^1.3.0","lodash":"^4.17.10","md5":"^2.2.1","minimatch":"^3.0.4","semver":"^5.5.1","semver-utils":"^1.1.2","staged-git-files":"^1.1.1","stylelint":"^9.5.0","supports-color":"^5.5.0","write-json-file":"^3.0.1"},"devDependencies":{"@commitlint/cli":"^7.1.2","ava":"^0.25.0","chai":"^4.1.2","chai-as-promised":"^7.1.1","coveralls":"^3.0.2","deep-equal-in-any-order":"^1.0.10","eslint-config-standard":"^12.0.0","eslint-plugin-import":"^2.14.0","eslint-plugin-node":"^7.0.1","eslint-plugin-promise":"^4.0.1","eslint-plugin-standard":"^4.0.0","mocha":"^5.2.0","nyc":"^13.0.1","sinon":"^6.2.0"},"gitHead":"8b012abc9ea16f4504a774a35552d42bc42f6f93","_id":"elint@1.6.2","_npmVersion":"6.1.0","_nodeVersion":"10.6.0","_npmUser":{"name":"keenwon","email":"semanwmj@gmail.com"},"dist":{"integrity":"sha512-rU9oXjUE+Gc4xAnTNh5Uu3v9Zn3B7y6ANoTRpa++112mu4slqDukIlZdckPXtg1fyqOJaBbEGHYBmoocPm9cNA==","shasum":"062070763b6a3f250bbd7efefb77987a0999b800","tarball":"https://registry.npmjs.org/elint/-/elint-1.6.2.tgz","fileCount":41,"unpackedSize":75036,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbmTKgCRA9TVsSAnZWagAAOvYP/jUKq7U4gsU3vY16i86K\nVLvDlddX9oDi388UH0VqfKa+8hqH8YbO+j8yXpmrnDgktGPldD2zNVaNQZNL\n0M7RMBPh2KcUa2bm+Re0mY+eBjafE2cG/6eDKFv1VRmj8tEAzFaD85ydowRx\nvL95zSfZVSXEguc4G9zOCQg39A8lgDSuoO2wByfJcDb6cgLcD1v4yEtCkQrx\nodsqaUj9zD7MZLrdSnGlZbW9E7vKiSG1blAKdBcXryoSWjOJe5Ne6K6IXYCl\nKb5OM6rX0chgO5JmuRCXM7DwPJG7HJ7RRxa7XkqBABzaQuFsxrhN7DtD6Owt\nF6I+I4+CfkpKMjpOGN6eE1ixfQmByubO3wpEuvU3AbfWzs9ZWkN40XC5fpvb\ninCn9DxDRfykU59XoxnjFH7ffrpvqRJU8muQwWmt3wmwg/aKaYQQscKeiJvk\nfzKenjnAayVkYi3s9aSLvUgSlFItkmfn7sPWOP7KkAx+Ab/UtpjNYKgeIcy8\nYSjx/eVOr8WdVzkjjUKWDJJNKPiBNLOz/oJylHCB2Xe9ug9UMCRTqP/pqaeb\nfTCokBEzDaZzhVbizNKTgls7ECI3yN8hCN800HuwlV+yJUwC2dnt/ZFIKwmE\nq6NDJ2XGYJHMRo9Z3P7561PNAMmhJJEjgPRrkPJCQlTVRi8QnR1x+uSmT/0q\n8EvT\r\n=3FDM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCjWs8NGPzwXu8ZqNWEtIY/QrDJ0zc4moib6ZQXVBRNkgIgf4XXfv2tF/UJCujBJlwcn35azjDrBGBfJzCnhyv5M0o="}]},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_1.6.2_1536766623225_0.28610442028073346"},"_hasShrinkwrap":false},"1.6.3":{"name":"elint","version":"1.6.3","description":"A easy way to lint your code.","main":"src/index.js","bin":{"elint":"./bin/cli.js"},"scripts":{"test":"npm run test:lint && npm run test:unit:coverage && npm run test:system","test:circleci":"npm run test:lint && npm run test:unit && npm run test:system","test:appveyor":"npm run test:lint && npm run test:unit && npm run test:system","test:lint":"eslint --format codeframe \"bin/**/*.js\" \"src/**/*.js\" \"test/**/*.js\" \"scripts/postinstall\" --fix","test:system":"node test/system/utils/init.js && ava \"test/system/**/*.spec.js\" && node test/system/utils/clean.js","test:unit":"mocha \"test/unit/**/*.spec.js\"","test:unit:coverage":"nyc --reporter=html --reporter=text npm run test:unit && nyc report --reporter=text-lcov | coveralls","postinstall":"node ./src/postinstall.js"},"repository":{"type":"git","url":"git+https://github.com/keenwon/elint.git"},"keywords":["eslint","eslintplugin","eslintconfig","stylelint","commitlint","standard","jshint","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","bugs":{"url":"https://github.com/keenwon/elint/issues"},"homepage":"https://github.com/keenwon/elint#readme","engines":{"node":">=6.0.0"},"dependencies":{"@commitlint/core":"^7.1.2","chalk":"^2.4.1","co":"^4.6.0","commander":"^2.18.0","debug":"^4.0.0","diff":"^3.5.0","eslint":"^5.5.0","execa":"^1.0.0","figures":"^2.0.0","find-process":"^1.1.3","fs-extra":"^7.0.0","globby":"^8.0.1","husky":"1.0.0-rc.14","ignore":"^5.0.2","is-npm":"^2.0.0","left-pad":"^1.3.0","lodash":"^4.17.10","md5":"^2.2.1","minimatch":"^3.0.4","semver":"^5.5.1","semver-utils":"^1.1.2","staged-git-files":"^1.1.1","stylelint":"^9.5.0","supports-color":"^5.5.0","which":"^1.3.1","write-json-file":"^3.0.1"},"devDependencies":{"@commitlint/cli":"^7.1.2","ava":"^0.25.0","chai":"^4.1.2","chai-as-promised":"^7.1.1","coveralls":"^3.0.2","deep-equal-in-any-order":"^1.0.10","eslint-config-standard":"^12.0.0","eslint-plugin-import":"^2.14.0","eslint-plugin-node":"^7.0.1","eslint-plugin-promise":"^4.0.1","eslint-plugin-standard":"^4.0.0","mocha":"^5.2.0","nyc":"^13.0.1","sinon":"^6.2.0"},"gitHead":"9dab06a2aeb40513c01764dfb650521977ba59a0","_id":"elint@1.6.3","_npmVersion":"6.1.0","_nodeVersion":"10.6.0","_npmUser":{"name":"keenwon","email":"semanwmj@gmail.com"},"dist":{"integrity":"sha512-/Fwm1QnGF81NM1yM167XvA0S/06g6OnYLdCPTONjJihLBmBlBD+QWgVtzpgcY4ZIBlD+Q3Sn/7Sndew80i58xw==","shasum":"dc9514156c9ced285a4f71c691efbe6b6982d051","tarball":"https://registry.npmjs.org/elint/-/elint-1.6.3.tgz","fileCount":41,"unpackedSize":75380,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbmUoyCRA9TVsSAnZWagAAPHsP/1eEyKYnMyVzqFZJ6p9S\nYmSvlwr5vimKUYFwl7f9cqf54VrUFcfTpYo4/BfeN/T7pq7Mfv1/Fk+6W0Fh\nEMZBOPO0AKQ5r0YUgBN1S2VmwydmdxwW5bsLeJUlw3IEsALUEsVoycoNv990\nocJR382NnIJgI37CkXR5mI5UX0A+9c7l8zzLbeEEiABiFEUsDVw2ox37+LYj\n5x/8WryHSYsYPDAYSwBRH993XlSYXbt/SiustxAseuUGXqpPSlC3B02K02Dt\nJWjpPkK8zkdmGzAuM+S6v22YYkU81sHE2K3ilikDz/naPBGmXAmont9kGwDl\nZhBVabSBr0uu09Nvx9T0nGywEJ7ct8jPbJuEB51Wv0BnQ+sNfzOFtJuAE/ih\n+VhtauEb1rb/c7dl4UV0QqndEKxYsRl4VEInjHQzknG/XLZV8rSzsr71cmlZ\ngNlRCJcCwhgUDrRQfCXzph/TDR2suCGNzCKIfBqmurTnjHbF1lhRBi/B+8WO\nv7PriosJf4msHdWM5swHI8949Nnv+TeVZLEkXTJQGj2MJGfKPza5RzGzmt36\n9cvk1Wta+9IrsV56o+/TWwOPeIZRPBVr3FSyUcxAAMLlmkkZI8/rp61C6/UX\ndBBb1r8ev3dGElMleRvkH7RcrCXr9plKioKEGLz1Szar1OPo/SV9HBSN9q4y\nvZrU\r\n=lEvu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA+7td6yo+NN7fTkEcF0LqJTu5hJ273UhCXnbBQjn/g3AiEAplQWYFKcf30Pj3t0TXUX4da8msVT2iItp5AxJFldSAg="}]},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_1.6.3_1536772657036_0.713546476069683"},"_hasShrinkwrap":false},"1.6.4":{"name":"elint","version":"1.6.4","description":"A easy way to lint your code.","main":"src/index.js","bin":{"elint":"./bin/cli.js"},"scripts":{"test":"npm run test:lint && npm run test:unit:coverage && npm run test:system","test:circleci":"npm run test:lint && npm run test:unit && npm run test:system","test:appveyor":"npm run test:lint && npm run test:unit && npm run test:system","test:lint":"eslint --format codeframe \"bin/**/*.js\" \"src/**/*.js\" \"test/**/*.js\" \"scripts/postinstall\" --fix","test:system":"node test/system/utils/init.js && ava \"test/system/**/*.spec.js\" && node test/system/utils/clean.js","test:unit":"mocha \"test/unit/**/*.spec.js\"","test:unit:coverage":"nyc --reporter=html --reporter=text npm run test:unit && nyc report --reporter=text-lcov | coveralls","postinstall":"node ./src/postinstall.js"},"repository":{"type":"git","url":"git+https://github.com/keenwon/elint.git"},"keywords":["eslint","eslintplugin","eslintconfig","stylelint","commitlint","standard","jshint","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","bugs":{"url":"https://github.com/keenwon/elint/issues"},"homepage":"https://github.com/keenwon/elint#readme","engines":{"node":">=6.0.0"},"dependencies":{"@commitlint/core":"^7.1.2","chalk":"^2.4.1","co":"^4.6.0","commander":"^2.18.0","debug":"^4.0.0","diff":"^3.5.0","eslint":"^5.5.0","execa":"^1.0.0","figures":"^2.0.0","find-process":"^1.1.3","fs-extra":"^7.0.0","globby":"^8.0.1","husky":"1.0.0-rc.14","ignore":"^5.0.2","is-npm":"^2.0.0","left-pad":"^1.3.0","lodash":"^4.17.10","md5":"^2.2.1","minimatch":"^3.0.4","semver":"^5.5.1","semver-utils":"^1.1.2","staged-git-files":"^1.1.1","stylelint":"^9.5.0","supports-color":"^5.5.0","which":"^1.3.1","write-json-file":"^3.0.1"},"devDependencies":{"@commitlint/cli":"^7.1.2","ava":"^0.25.0","chai":"^4.1.2","chai-as-promised":"^7.1.1","coveralls":"^3.0.2","deep-equal-in-any-order":"^1.0.10","eslint-config-standard":"^12.0.0","eslint-plugin-import":"^2.14.0","eslint-plugin-node":"^7.0.1","eslint-plugin-promise":"^4.0.1","eslint-plugin-standard":"^4.0.0","mocha":"^5.2.0","nyc":"^13.0.1","sinon":"^6.2.0"},"gitHead":"722aa51f4bca889a87a2ce59256cff2ebe888c05","_id":"elint@1.6.4","_npmVersion":"6.4.1","_nodeVersion":"10.10.0","_npmUser":{"name":"keenwon","email":"semanwmj@gmail.com"},"dist":{"integrity":"sha512-5wpL0K1wpkIcF3CDAsn0Ryuqy5IfD37h5rv/zgltpIPNRXioT1qSWxebKzJWB34QYTEjxpfNjKTeYFmuoTWwcA==","shasum":"e5a62e4663d2b261fe2c253d62515fbb092cbefd","tarball":"https://registry.npmjs.org/elint/-/elint-1.6.4.tgz","fileCount":42,"unpackedSize":76595,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbmisICRA9TVsSAnZWagAAHpEQAI2TYFAVTodMYTNBiAS8\nhsL7k/JLVLjbNYK1y5WMOQaHvDlgFHJM/deVPiRN7NrGrXoO2apw7nTETFIr\nNpyD5bq1RcD3mq+TdINoE8UfXy2GdGX64MpSPHD0TiP00nHMzikw7AJ8h/3Z\nI4suZhXSWg/BrYH8/CZ/RYvJP7mkMWDvKx+tpD8/UdCBP9uLTjmdXci0Y4oT\nsP1xl6iX9keFFLXrZayp7MozvZCOsYzdu6WstFDfCuNK9DegACXFxbk1GhJY\nNfNVppYIjL/CCyNdTBj5vHpiEomh9Da4ipFd4pspD+aZjjwf9GXUjn/6/rH9\nFNKvRuugwtBkRuvx2A8FSaF7vxxp8XVPcYGS366YyqO7NGgMM785lh77bqUo\n7Mtce/OeMw2FwydkMxsUH3OOMb498URwpZ0cwsuVLdDgvC5C+tW4SXxs+Cvv\nQpP27FvQNVrvKC1Xxq8yFEL26E//Zz10kc58BpZpYszxhXi25ZWZ8CD3cwhe\n3Kndy1wnBhrdZvQHn5VVduYh1gf4GdlrWwea0el0zAUiG9+gBMHNhwrhl8Va\njgEs4MiBzRCM7xwvdY73FN/Lm956NZnvt9fEAYz4vlGUs060J94nHc+o90NO\nEq7c9Y+XIo501ATxu7nCizg1X1eNs8GSNvpvqqbWiRzZj5fpAEmN7GNn6bqR\nfiIn\r\n=+lw2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCTJpJfr2OLiLs9YhgZT2f5UwW4YxLfhsw/GpvpeR1MCQIhAOwQB9cAwcBkL5pgx3A0HE7u+3f4HKWmpGW30kmoNKo9"}]},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_1.6.4_1536830215386_0.8498132401827199"},"_hasShrinkwrap":false},"1.6.5":{"name":"elint","version":"1.6.5","description":"A easy way to lint your code.","main":"src/index.js","bin":{"elint":"./bin/cli.js"},"scripts":{"test":"npm run test:lint && npm run test:unit:coverage && npm run test:system","test:circleci":"npm run test:lint && npm run test:unit && npm run test:system","test:appveyor":"npm run test:lint && npm run test:unit && npm run test:system","test:lint":"eslint --format codeframe \"bin/**/*.js\" \"src/**/*.js\" \"test/**/*.js\" \"scripts/postinstall\" --fix","test:system":"node test/system/utils/init.js && ava \"test/system/**/*.spec.js\" && node test/system/utils/clean.js","test:unit":"mocha \"test/unit/**/*.spec.js\"","test:unit:coverage":"nyc --reporter=html --reporter=text npm run test:unit && nyc report --reporter=text-lcov | coveralls","postinstall":"node ./src/postinstall.js"},"repository":{"type":"git","url":"git+https://github.com/keenwon/elint.git"},"keywords":["eslint","eslintplugin","eslintconfig","stylelint","commitlint","standard","jshint","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","bugs":{"url":"https://github.com/keenwon/elint/issues"},"homepage":"https://github.com/keenwon/elint#readme","engines":{"node":">=6.0.0"},"dependencies":{"@commitlint/core":"^7.1.2","chalk":"^2.4.1","co":"^4.6.0","commander":"^2.18.0","debug":"^4.0.0","diff":"^3.5.0","eslint":"^5.5.0","execa":"^1.0.0","figures":"^2.0.0","find-process":"^1.1.3","fs-extra":"^7.0.0","globby":"^8.0.1","husky":"1.0.0-rc.14","ignore":"^5.0.2","is-npm":"^2.0.0","left-pad":"^1.3.0","lodash":"^4.17.11","md5":"^2.2.1","minimatch":"^3.0.4","semver":"^5.5.1","semver-utils":"^1.1.2","staged-git-files":"^1.1.1","stylelint":"^9.5.0","supports-color":"^5.5.0","which":"^1.3.1","write-json-file":"^3.0.1"},"devDependencies":{"@commitlint/cli":"^7.1.2","ava":"^0.25.0","chai":"^4.1.2","chai-as-promised":"^7.1.1","coveralls":"^3.0.2","deep-equal-in-any-order":"^1.0.10","eslint-config-standard":"^12.0.0","eslint-plugin-import":"^2.14.0","eslint-plugin-node":"^7.0.1","eslint-plugin-promise":"^4.0.1","eslint-plugin-standard":"^4.0.0","mocha":"^5.2.0","nyc":"^13.0.1","sinon":"^6.3.2"},"gitHead":"a32671a3e2cab2bb792be9b0b5dd72a5b7ea3e4f","_id":"elint@1.6.5","_npmVersion":"6.4.1","_nodeVersion":"10.10.0","_npmUser":{"name":"keenwon","email":"semanwmj@gmail.com"},"dist":{"integrity":"sha512-h/Qfyyl9hoeeZJ4jaeGxueIETldrDWxjLHWyE702ERQk2DCBn5W0hBNcDZnpj4i8oN5ptquJ4csZJhpZ4cCl6A==","shasum":"2e529c55ceaabff8ead96893625d09db8dfe5b7d","tarball":"https://registry.npmjs.org/elint/-/elint-1.6.5.tgz","fileCount":42,"unpackedSize":77154,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbm1RoCRA9TVsSAnZWagAAlsEQAJHx6DsvaH6N2W/50KlF\nvsH3OKfulprdK/eufjA3JMEGjgtdJpaBa+tE4c+XQe1EcSl8ePo6TUM4VhR1\nKnR8B/GeqTHo5HtF3XYFisJa25iv+mBSyiLAwqT3t60t4n/wY9VqhDPt3Rro\nA9GLUU2gFupLwW7JC13bsZqSxA6VmacfnIhOk19pxNIpnp2JKDpDVaHpRYP4\nAAQ5t1jl6chz900PdAV8JvHR3xdhmUg6G/sR9bk2Wn5j2WqMpLfBOULv9A8O\nSoHhO2ERxpe3kYY0U6NVBMCj1sZ/pB1f8MiqTwy9yEHg2bM80hDF5D9GKPXF\np5aQL743MyHOxawKeWr1DF2tOP66nzB6yKgFb3HXBQgPK9SYPcCb7ppstPLf\nOXW0V04sN1eMt9tIZ1LmnAXrJN79s413QadVgpLwm7F69J72AkepzgGdt1M0\n1nLHqy+7yXmPEdFiNwAzRU+DHUfgUQf30uRfJ9AfhoL3D5YlpWdJLwFhaKDm\n8/bhB9Bpd1rjFnGf95AtsRtIIj7dRNZHpvCLmHda6inbUastyIX9PsMhftmK\nFAh5ZnowFtn087b1PXvB1Qf3vbdXWLvuZe+FJkYCQ6C98SCZ69xbbrH6q+tM\nlMooI0ox2WrDBdrXVqNeTdFKjDEVhqX7huXZQH65WkjqleIhlxbZDnFt4hkN\nFder\r\n=5D8b\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFE5IWKBi96BDAmUyHTFZpmSq7JYnKZelGepVqDqSiDOAiAcN5cM4XDWmp1LuIoGpyJ+i1VY8Z8s0OrUtP7jQDwG9g=="}]},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_1.6.5_1536906343716_0.8967935791318846"},"_hasShrinkwrap":false},"1.7.0":{"name":"elint","version":"1.7.0","description":"A easy way to lint your code.","main":"src/index.js","bin":{"elint":"./bin/cli.js"},"scripts":{"test":"npm run test:lint && npm run test:unit:coverage && npm run test:system","test:circleci":"npm run test:lint && npm run test:unit && npm run test:system","test:appveyor":"npm run test:lint && npm run test:unit && npm run test:system","test:lint":"eslint --format codeframe \"bin/**/*.js\" \"src/**/*.js\" \"test/**/*.js\" \"scripts/postinstall\" --fix","test:system":"node test/system/utils/init.js && ava \"test/system/**/*.spec.js\" && node test/system/utils/clean.js","test:unit":"mocha \"test/unit/**/*.spec.js\"","test:unit:coverage":"nyc --reporter=html --reporter=text npm run test:unit && nyc report --reporter=text-lcov | coveralls","postinstall":"node ./src/postinstall.js"},"repository":{"type":"git","url":"git+https://github.com/keenwon/elint.git"},"keywords":["eslint","eslintplugin","eslintconfig","stylelint","commitlint","standard","jshint","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","bugs":{"url":"https://github.com/keenwon/elint/issues"},"homepage":"https://github.com/keenwon/elint#readme","engines":{"node":">=6.0.0"},"dependencies":{"@commitlint/core":"^7.1.2","chalk":"^2.4.1","co":"^4.6.0","commander":"^2.18.0","debug":"^4.0.0","diff":"^3.5.0","eslint":"^5.5.0","execa":"^1.0.0","figures":"^2.0.0","find-process":"^1.1.3","fs-extra":"^7.0.0","globby":"^8.0.1","husky":"1.0.0-rc.14","ignore":"^5.0.2","is-npm":"^2.0.0","left-pad":"^1.3.0","lodash":"^4.17.11","md5":"^2.2.1","minimatch":"^3.0.4","semver":"^5.5.1","semver-utils":"^1.1.2","staged-git-files":"^1.1.1","stylelint":"^9.5.0","supports-color":"^5.5.0","which":"^1.3.1","write-json-file":"^3.0.1"},"devDependencies":{"@commitlint/cli":"^7.1.2","ava":"^0.25.0","chai":"^4.1.2","chai-as-promised":"^7.1.1","coveralls":"^3.0.2","deep-equal-in-any-order":"^1.0.10","eslint-config-standard":"^12.0.0","eslint-plugin-import":"^2.14.0","eslint-plugin-node":"^7.0.1","eslint-plugin-promise":"^4.0.1","eslint-plugin-standard":"^4.0.0","mocha":"^5.2.0","nyc":"^13.0.1","sinon":"^6.3.2"},"gitHead":"eb25229d21ca75fddde8994b5d45564e5667246c","_id":"elint@1.7.0","_npmVersion":"6.4.1","_nodeVersion":"10.10.0","_npmUser":{"name":"keenwon","email":"semanwmj@gmail.com"},"dist":{"integrity":"sha512-LzPonrUEV+5fxVl01PQljZc8c7SBjc5JqEL12LeAlQhR1pQnvuUb1p+Bve8mNOh0PXKfzl1Ym2+v6Qe2+28TtQ==","shasum":"39c8ebf8e0c26aef0b1f1af5e6d79c5e0ed18df3","tarball":"https://registry.npmjs.org/elint/-/elint-1.7.0.tgz","fileCount":42,"unpackedSize":78671,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbm7ENCRA9TVsSAnZWagAAmikP/itOq60c8jx7n8r5CpX5\nZL9AXo45edL0h21/oDP2708HoKvEUUcSlOiHqasmJqirCj71Bf5JM3f14aqJ\nXaYOS85NtlLdYq9Yfp6hforojluK2jxRRqozHP3Qt/3z0qQ07X9y5t+k0Uz8\n1xoHKBbSC/FI3pq+gdmIaT7TIolXNYuq2AuLIiTRQyA48RZmWQHsrzg0Kgm3\ntE4HnSsZwEo2sl5nKYeRZULuAzAZBOLtyo1BJDTCQ1JzMBO0CtARj+BVCu7u\n1jFtOwsQu5MI0LB/muKD46KVBlz7t3BptLUgnOb9sgOJgTU7K5G5RWzOky6T\nFYpXa1YD7Hk4SRpNCfUFRaUSa/srF76S7CSuZsBTNb+9cJjxPfcGxRY5QXDL\nYXRU4B0GqstbAJ7kPqZpsHMkxUn3TGu3eeAECd04YxRp++ioEcN4ZW8m5ZFK\nlbK3qihQw+FkM20yxG+k5pT5N9hkJaHNV8O3HDU5Adywx2GXoopA1DkLXeT4\nBOMyKhQufws5V/o0I2rgBYTHGN7UrCtiu3ptShSX+PT7b/FPH9tedCGZ9eYM\niq2ztL7jg0Q1w9jeXfPmTqxRSK+Uu6X8LaroKg3N8psQPXHAWQCcX41zOr1p\nvidcdUt7Y2K8ijsUwD6g5y4uPjTfEWDGOjhEFJom3PkXfVKX2JxeC/+dEMdk\nFjEx\r\n=egtT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAe/4CU6noNJGpjhal82C6XoRD2UMuKRKYRQw78lJQvbAiB87JOTKQKZBhBJqSsshWPXzJgg3GA8jqEyfSd7nb6Kcw=="}]},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_1.7.0_1536930060629_0.18659210941271098"},"_hasShrinkwrap":false},"1.7.1":{"name":"elint","version":"1.7.1","description":"A easy way to lint your code.","main":"src/index.js","bin":{"elint":"./bin/cli.js"},"scripts":{"test":"npm run test:lint && npm run test:unit:coverage && npm run test:system","test:circleci":"npm run test:lint && npm run test:unit && npm run test:system","test:appveyor":"npm run test:lint && npm run test:unit && npm run test:system","test:lint":"eslint --format codeframe \"bin/**/*.js\" \"src/**/*.js\" \"test/**/*.js\" \"scripts/postinstall\" --fix","test:system":"node test/system/utils/init.js && ava \"test/system/**/*.spec.js\" && node test/system/utils/clean.js","test:unit":"mocha \"test/unit/**/*.spec.js\"","test:unit:coverage":"nyc --reporter=html --reporter=text npm run test:unit && nyc report --reporter=text-lcov | coveralls","postinstall":"node ./src/postinstall.js"},"repository":{"type":"git","url":"git+https://github.com/keenwon/elint.git"},"keywords":["eslint","eslintplugin","eslintconfig","stylelint","commitlint","standard","jshint","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","bugs":{"url":"https://github.com/keenwon/elint/issues"},"homepage":"https://github.com/keenwon/elint#readme","engines":{"node":">=6.0.0"},"dependencies":{"@commitlint/core":"^7.1.2","chalk":"^2.4.1","co":"^4.6.0","commander":"^2.18.0","debug":"^4.0.0","diff":"^3.5.0","eslint":"^5.5.0","execa":"^1.0.0","figures":"^2.0.0","find-process":"^1.1.3","fs-extra":"^7.0.0","globby":"^8.0.1","husky":"1.0.0-rc.14","ignore":"^5.0.2","is-npm":"^2.0.0","left-pad":"^1.3.0","lodash":"^4.17.11","md5":"^2.2.1","minimatch":"^3.0.4","semver":"^5.5.1","semver-utils":"^1.1.2","staged-git-files":"^1.1.1","stylelint":"^9.5.0","supports-color":"^5.5.0","which":"^1.3.1","write-json-file":"^3.0.1"},"devDependencies":{"@commitlint/cli":"^7.1.2","ava":"^0.25.0","chai":"^4.1.2","chai-as-promised":"^7.1.1","coveralls":"^3.0.2","deep-equal-in-any-order":"^1.0.10","eslint-config-standard":"^12.0.0","eslint-plugin-import":"^2.14.0","eslint-plugin-node":"^7.0.1","eslint-plugin-promise":"^4.0.1","eslint-plugin-standard":"^4.0.0","mocha":"^5.2.0","nyc":"^13.0.1","sinon":"^6.3.2"},"gitHead":"ad043557c41fcd1c8a4f16f8605f8d44cea21c0e","_id":"elint@1.7.1","_npmVersion":"6.4.1","_nodeVersion":"10.10.0","_npmUser":{"name":"keenwon","email":"semanwmj@gmail.com"},"dist":{"integrity":"sha512-Qcx3leTa01KrdvSabcZlqj4obynpcWKVbyq+vX5GXMc5ybPtkmK2ZpOaQ28L7Oo9TyUM9jGyQ5NPeDsrSdGeZw==","shasum":"f88ed6442af661eb213f82d90b105d06640f2f46","tarball":"https://registry.npmjs.org/elint/-/elint-1.7.1.tgz","fileCount":42,"unpackedSize":78759,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbq2t+CRA9TVsSAnZWagAAgqUP/jcQ1kAd1mLLjxJ3x5TY\nmn6mpWQwzajbNBMT6dt2FJibl7EolhCyggqmPtoHhzTN21NByRaWciGJ/lAk\nPv5sPJSGLWdysX0IJ5qysyz26ZfbyYReARMc5VsQqSfhw1inqVVdG1MY8FSv\n2nSXEOTRkOxADkklvL1i0V7Zb3LyKG+0hbJrc32/LyDzt1PbCgRPhDj+UL+U\n8HVdW5qPwmYB3BSD9H0we+wLBwY7zObUne22dGoAKoEWWOWoxlqR610QW96j\nlUddf+V+9ZmIo1VnZUJmbuhOwfdC6wkE6kdodOVGBYL1U/3bnrOp8otm8JXm\n69IgR7FN5GELGnqaKduv8xJEGrSx8Jnuw9e8EkFl94wZmTuSW0O9C9rgmKu4\n6SxXsLfY+OHUR+wCdVgz387cKXaLF5PXKCV7ibirG8YOYfaTowK2M+P6Bu4h\nBoAljD8ck8yKhvFfjI7OOIllWgGC4zYPIIThK2pcY6usnkmaf0/hLXwAJrbs\nhodgIioJUjkQsTjqvzB1jdy2yQdkDwdpTMJVb/VuVb/Rw4/1uG/qtOQg2byr\nS407OFuTvouymLNwElJU80gTL8Ndn0jkG5W5ZNPbaTN6WBZW7IGfCVVQKuMF\njLjiB4V4cBYW9obySf8CGPPl+t0/P0KkZUUmzEct/yDWC6rIuHTCUZ6xfe57\nNiFE\r\n=aHMJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCWD6Ycbo1PjbNtQfJ8QWE4PgwlL5ei4tl5lBAYpI7fZQIgBaaOAdO0hLGjsjdM+x7ctEQJnsgZKNFpUJ2XIoUk0Vg="}]},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_1.7.1_1537960829406_0.3211005546405534"},"_hasShrinkwrap":false},"1.7.2":{"name":"elint","version":"1.7.2","description":"A easy way to lint your code.","main":"src/index.js","bin":{"elint":"./bin/cli.js"},"scripts":{"test":"npm run test:lint && npm run test:unit:coverage && npm run test:system","test:circleci":"npm run test:lint && npm run test:unit && npm run test:system","test:appveyor":"npm run test:lint && npm run test:unit && npm run test:system","test:lint":"eslint --format codeframe \"bin/**/*.js\" \"src/**/*.js\" \"test/**/*.js\" \"scripts/postinstall\" --fix","test:system":"node test/system/utils/init.js && ava \"test/system/**/*.spec.js\" && node test/system/utils/clean.js","test:unit":"mocha \"test/unit/**/*.spec.js\"","test:unit:coverage":"nyc --reporter=html --reporter=text npm run test:unit && nyc report --reporter=text-lcov | coveralls","postinstall":"node ./src/postinstall.js"},"repository":{"type":"git","url":"git+https://github.com/keenwon/elint.git"},"keywords":["eslint","eslintplugin","eslintconfig","stylelint","commitlint","standard","jshint","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","bugs":{"url":"https://github.com/keenwon/elint/issues"},"homepage":"https://github.com/keenwon/elint#readme","engines":{"node":">=6.0.0"},"dependencies":{"@commitlint/core":"^7.1.2","chalk":"^2.4.1","co":"^4.6.0","commander":"^2.18.0","debug":"^4.0.0","diff":"^3.5.0","eslint":"^5.5.0","execa":"^1.0.0","figures":"^2.0.0","find-process":"^1.1.3","fs-extra":"^7.0.0","globby":"^8.0.1","husky":"^1.0.1","ignore":"^5.0.2","is-npm":"^2.0.0","left-pad":"^1.3.0","lodash":"^4.17.11","md5":"^2.2.1","minimatch":"^3.0.4","semver":"^5.5.1","semver-utils":"^1.1.2","staged-git-files":"^1.1.1","stylelint":"~9.6.0","supports-color":"^5.5.0","which":"^1.3.1","write-json-file":"^3.0.1"},"devDependencies":{"@commitlint/cli":"^7.1.2","ava":"^0.25.0","chai":"^4.1.2","chai-as-promised":"^7.1.1","coveralls":"^3.0.2","deep-equal-in-any-order":"^1.0.10","eslint-config-standard":"^12.0.0","eslint-plugin-import":"^2.14.0","eslint-plugin-node":"^7.0.1","eslint-plugin-promise":"^4.0.1","eslint-plugin-standard":"^4.0.0","mocha":"^5.2.0","nyc":"^13.0.1","sinon":"^6.3.2"},"gitHead":"347f692c40dde9a8c3a5516aa952d2389498edd9","_id":"elint@1.7.2","_npmVersion":"6.4.1","_nodeVersion":"10.10.0","_npmUser":{"name":"keenwon","email":"semanwmj@gmail.com"},"dist":{"integrity":"sha512-aOK9+i9tMuA0oYBUZDpqdphtAs2fCp92QuNhDmzJWM10EXdwvooZGUHmO0GNIUkLTobXiViCj/w90/L8YP7cuw==","shasum":"863f0db6c370f3db066e04bf9210f15451140344","tarball":"https://registry.npmjs.org/elint/-/elint-1.7.2.tgz","fileCount":42,"unpackedSize":78754,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbrRx+CRA9TVsSAnZWagAA24oP+wVchRJCOQM4Vj3c0HGw\nKN5z49F+bzecFHl7ripvkd/9QCCbbRdZwxxhEIiHu3dDUyHRi018EGkZUJ1b\nQYOrq41TWQyY0Yjt1ZSzH50BJCFumftfcby4v0PZVgS6zpD6hZi9gu3IbdVs\nw2IBWukI4eUoA6V3pqPsule5urdzMZOz59gRpQq11S9K+gvDBYYcBx21ziMf\n9vl1xnakJBryTgLONN4PaaGcLUdWZUOl9fFEKJ6E2BR53hA0bZ7Y3pI3zxJK\nD3mx8HcwEDkzAXgUWDMXcDF+e/JzZHPEb+Ll8VPbTeT/GKWWVReoJwi18ZDw\nk/68x6/oGSy/h3jRcwArI2ZoHyXF9t14Qx1S26edLBsyEgMentwczVVbC/PU\nXA7tKG2xv15KZVC5Zbxs20wFek/vWKb+L4v4NeqSbDM4YhCUz1Q1GGTe4L3M\nVCbG9dxgVfZl21Yc4p+MKYnCsz7miOZSXwVXEsFo+2LJ9+tlSZ2riIjaJ80r\nMLYBbayNIZtZQrjKGXOWJ+rd35aVexOg0WeQx4CKuxtdeDsfU2LIS2oLQ5Gx\nV9UV2XPQcNM6/9ibbI9IQGHI8AnV3zJfARVBxBjc/KsGaX/ZYNAc4fVYrIKt\nwxL7uvnYYFvQ2LVz97x4aKfccuwfEr0a/0luTril/waFCniw+kGHjJkv+wS0\ndRt9\r\n=rSQT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCrPuUpQ1e4sC+zN4PZB24LpuVojaRWX4MtY/cbGbhwXAIhAMYafKTZ8KIcuhg+NMBYTjXW/cksTrvcFUO8yd0xecld"}]},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_1.7.2_1538071677684_0.9707216185639833"},"_hasShrinkwrap":false},"1.8.0":{"name":"elint","version":"1.8.0","description":"A easy way to lint your code.","main":"src/index.js","bin":{"elint":"./bin/cli.js"},"scripts":{"test":"npm run test:lint && npm run test:unit:coverage && npm run test:system","test:circleci":"npm run test:lint && npm run test:unit && npm run test:system","test:appveyor":"npm run test:lint && npm run test:unit && npm run test:system","test:lint":"eslint --format codeframe \"bin/**/*.js\" \"src/**/*.js\" \"test/**/*.js\" \"scripts/postinstall\" --fix","test:system":"node test/system/utils/init.js && ava \"test/system/**/*.spec.js\" && node test/system/utils/clean.js","test:unit":"mocha \"test/unit/**/*.spec.js\"","test:unit:coverage":"nyc --reporter=html --reporter=text npm run test:unit && nyc report --reporter=text-lcov | coveralls","postinstall":"node ./src/postinstall.js"},"repository":{"type":"git","url":"git+https://github.com/keenwon/elint.git"},"keywords":["eslint","eslintplugin","eslintconfig","stylelint","commitlint","standard","jshint","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","bugs":{"url":"https://github.com/keenwon/elint/issues"},"homepage":"https://github.com/keenwon/elint#readme","engines":{"node":">=6.0.0"},"dependencies":{"@commitlint/core":"^7.1.2","chalk":"^2.4.1","co":"^4.6.0","commander":"^2.18.0","debug":"^4.0.0","diff":"^3.5.0","eslint":"^5.5.0","execa":"^1.0.0","figures":"^2.0.0","find-process":"^1.1.3","fs-extra":"^7.0.0","globby":"^8.0.1","husky":"^1.0.1","is-npm":"^2.0.0","left-pad":"^1.3.0","lodash":"^4.17.11","md5":"^2.2.1","minimatch":"^3.0.4","semver":"^5.5.1","semver-utils":"^1.1.2","staged-git-files":"^1.1.1","stylelint":"~9.6.0","supports-color":"^5.5.0","which":"^1.3.1","write-json-file":"^3.0.1"},"devDependencies":{"@commitlint/cli":"^7.1.2","ava":"^0.25.0","chai":"^4.1.2","chai-as-promised":"^7.1.1","coveralls":"^3.0.2","deep-equal-in-any-order":"^1.0.10","eslint-config-standard":"^12.0.0","eslint-plugin-import":"^2.14.0","eslint-plugin-node":"^7.0.1","eslint-plugin-promise":"^4.0.1","eslint-plugin-standard":"^4.0.0","mocha":"^5.2.0","nyc":"^13.0.1","sinon":"^6.3.2"},"gitHead":"74c357298c78d284af96c47c63d40cf5fb87690a","_id":"elint@1.8.0","_npmVersion":"6.4.1","_nodeVersion":"10.10.0","_npmUser":{"name":"keenwon","email":"semanwmj@gmail.com"},"dist":{"integrity":"sha512-8HEhCWROj76bxT1wawOp/G2l14ucrIxrfFayTZPMLp7OsLpBBwUI0VqundZMex6aZl9iikrQsxNSdYfFJTPVmQ==","shasum":"41b738ffd695d4d3e396bd7d9c886ff159cdd559","tarball":"https://registry.npmjs.org/elint/-/elint-1.8.0.tgz","fileCount":44,"unpackedSize":82037,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbrxhkCRA9TVsSAnZWagAARXgP/3JOQl0fSr+PPYEh2Hjn\nUdKK5HGgB9St+UcRNpQYHxik1eYH8V2Izq/TcKUCe9aBAF0x2M9MoqiZfi8f\nKUHpjDwesf4YtDb3yhLzKkU6jHaXA2jX/WjdX+PMo2JnTAzmnMxm3SbZyU64\n8g1ifxicVC+8GIc25OOZfaQaXp+PjshSJqSkFd0ALdJr6LW9RMVVkQ8QReBH\nBeHeSTP46oacqwJc0zNfpSrOyv6tgJe0hTiwB80LXxCpgmBGFSwbu3ZfLzzV\nYCX49H1Eo40HGCFqM+9vQGWTVmcpA0UXPlWnkqfQ+XrpyWw4NQY924+MI3zN\nB5pK8gAJAQBefHgjdX4iDJl0kVjTGD9OWpSN2k5NTyHLF0Jz4AHX3L/T6dct\nAPtKJK4z1neRb0xd7D4sDP+qIvGN6VObiwCK2VJnEXHegyHj87cItxmC8ZCH\nvlpA1W1yb+s1zSEEYEF9QLpaTIbKabQIglaKB654dakX8y4TOV8WWU25FfgN\nac3jdTrGX5XolDriWcSMj5NHHo7jXKMSmEsgTtKbXWFlm2x8D/N1f1lLOKka\nShFVRdYN4dKp3M3wmMnmF1/d9Pk+G22olmEwXw8jBEB6yXx+5gJhqIQ99Jvp\nrWSGuLq4MM+yUuRoVKqPtw/jHZ60r1Rez2Bn6vOYj6q7+Tbfj94UhTkORxN3\nF044\r\n=q5gi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD63hInJHgOH1pF81i+GGzJHTUTesCiOhuUNIoBEFTzeAIgFMTyD2s1BE875CkMBALfu90Cfj1rQy03fcxK2kbshgg="}]},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_1.8.0_1538201699425_0.5799968472427008"},"_hasShrinkwrap":false},"1.8.1":{"name":"elint","version":"1.8.1","description":"A easy way to lint your code.","main":"src/index.js","bin":{"elint":"./bin/cli.js"},"scripts":{"test":"npm run test:lint && npm run test:unit:coverage && npm run test:system","test:circleci":"npm run test:lint && npm run test:unit && npm run test:system","test:appveyor":"npm run test:lint && npm run test:unit && npm run test:system","test:lint":"eslint --format codeframe \"bin/**/*.js\" \"src/**/*.js\" \"test/**/*.js\" \"scripts/postinstall\" --fix","test:system":"node test/system/utils/init.js && ava \"test/system/**/*.spec.js\" && node test/system/utils/clean.js","test:unit":"mocha \"test/unit/**/*.spec.js\"","test:unit:coverage":"nyc --reporter=html --reporter=text npm run test:unit && nyc report --reporter=text-lcov | coveralls","postinstall":"node ./src/postinstall.js"},"repository":{"type":"git","url":"git+https://github.com/keenwon/elint.git"},"keywords":["eslint","eslintplugin","eslintconfig","stylelint","commitlint","standard","jshint","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","bugs":{"url":"https://github.com/keenwon/elint/issues"},"homepage":"https://github.com/keenwon/elint#readme","engines":{"node":">=6.0.0"},"dependencies":{"@commitlint/core":"^7.2.0","chalk":"^2.4.1","co":"^4.6.0","commander":"^2.18.0","debug":"^4.0.0","diff":"^3.5.0","eslint":"^5.5.0","execa":"^1.0.0","figures":"^2.0.0","find-process":"^1.1.3","fs-extra":"^7.0.0","globby":"^8.0.1","husky":"^1.0.1","is-npm":"^2.0.0","left-pad":"^1.3.0","lodash":"^4.17.11","md5":"^2.2.1","minimatch":"^3.0.4","semver":"^5.5.1","semver-utils":"^1.1.2","staged-git-files":"^1.1.1","stylelint":"~9.6.0","supports-color":"^5.5.0","which":"^1.3.1","write-json-file":"^3.0.1"},"devDependencies":{"@commitlint/cli":"^7.1.2","ava":"^0.25.0","chai":"^4.1.2","chai-as-promised":"^7.1.1","coveralls":"^3.0.2","deep-equal-in-any-order":"^1.0.10","eslint-config-standard":"^12.0.0","eslint-plugin-import":"^2.14.0","eslint-plugin-node":"^7.0.1","eslint-plugin-promise":"^4.0.1","eslint-plugin-standard":"^4.0.0","mocha":"^5.2.0","nyc":"^13.0.1","sinon":"^6.3.2"},"gitHead":"f040054bffe2fa82e5bc5cc8ec22e360d3670bb0","_id":"elint@1.8.1","_npmVersion":"6.4.1","_nodeVersion":"10.10.0","_npmUser":{"name":"keenwon","email":"semanwmj@gmail.com"},"dist":{"integrity":"sha512-35ce+SxIbi5LC1hE69fSEhVzN68dIZlwNngjMvXNI4V/M3t15/Kk/lFWzeq+CSP/N7eZ3eqIqn1NtLynnI+u4A==","shasum":"ecf06d20a1a8049a33f4ea7587294fd6aca4f081","tarball":"https://registry.npmjs.org/elint/-/elint-1.8.1.tgz","fileCount":44,"unpackedSize":82076,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbva0qCRA9TVsSAnZWagAAZkIP/0mGikiPTx5rlMxgiKFs\nr/2Trnzn+DkPzYrwtSQX5qy947ci1OobrTGvf1+x/dOfkHDzNDxKezPWypZJ\nbGh/fMeXzNNCOB3sP0mnR9apAhe+GDEEYzc5lko6r39tEssuJlXBxOmyqX6V\nKKCBn+B9QRR0r6yPhjs/vRz95Se1x3fH7ugRjRYetXtDAGY6qKgv1BgEObsa\nzN5FP013wC1YxEor7LsxkB9+4MOnMiOVgSadCZQXSZtR9/9uIfMQA1y5eHLZ\nKWq3P8uTAQw2cBIjnrluzheh9ujn2mEcSFH7XK8Ex9/HTp7XX4SS9oA6HwH9\nmQ8jcd2BAPLNMRWu5wc5M9wq7khf7c4GrLIAT7H45E1BlBPT+7m1TF5yxSDO\nO5csFGQG9Kd2JKx1JYkwV2z3m+QCrwsBHroiTonSFu5fFH5aeqnmXuH0aNnM\ngv353WcTHd1Drd1trqogLjwUrrJblpq6UMrvr3PdumzzlQC5k3dHlNlWtr4N\nDERlHbmSk4gnIJkNk11gh8GTM6Bv/Z8MbAlAXHzmnU+B3iLb4JbceNc65l1G\nsgczD8yn3c6TxvVQHJURvKlLorucUvNk/MF2y0WeW1fUsOec7SvyQXiLoFcN\nZPnDJaCk1R1FMUF8g0930Fdt9OTbs54V3v7qwXpz9sDHknM4p45ML9D3Kxkf\nfhjp\r\n=zHRk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEjQG900Y1cwzeh6iJNvpMfx45fVzAiFwdqUWH+qXHmcAiB4fxVvozthoFC7oRkERkQQse8sHNjFRjXauhxNiOGP9g=="}]},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_1.8.1_1539157289097_0.36008951867726435"},"_hasShrinkwrap":false},"1.8.2":{"name":"elint","version":"1.8.2","description":"A easy way to lint your code.","main":"src/index.js","bin":{"elint":"./bin/cli.js"},"scripts":{"test":"npm run test:lint && npm run test:unit:coverage && npm run test:system","test:circleci":"npm run test:lint && npm run test:unit && npm run test:system","test:appveyor":"npm run test:lint && npm run test:unit && npm run test:system","test:lint":"eslint --format codeframe \"bin/**/*.js\" \"src/**/*.js\" \"test/**/*.js\" \"scripts/postinstall\" --fix","test:system":"node test/system/utils/init.js && ava \"test/system/**/*.spec.js\" && node test/system/utils/clean.js","test:unit":"mocha \"test/unit/**/*.spec.js\"","test:unit:coverage":"nyc --reporter=html --reporter=text npm run test:unit && nyc report --reporter=text-lcov | coveralls","postinstall":"node ./src/postinstall.js"},"repository":{"type":"git","url":"git+https://github.com/keenwon/elint.git"},"keywords":["eslint","eslintplugin","eslintconfig","stylelint","commitlint","standard","jshint","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","bugs":{"url":"https://github.com/keenwon/elint/issues"},"homepage":"https://github.com/keenwon/elint#readme","engines":{"node":">=6.0.0"},"dependencies":{"@commitlint/core":"^7.2.0","chalk":"^2.4.1","co":"^4.6.0","commander":"^2.18.0","debug":"^4.0.0","diff":"^3.5.0","eslint":"^5.5.0","execa":"^1.0.0","figures":"^2.0.0","find-process":"^1.1.3","fs-extra":"^7.0.0","globby":"^8.0.1","husky":"^1.0.1","is-npm":"^2.0.0","left-pad":"^1.3.0","lodash":"^4.17.11","md5":"^2.2.1","micromatch":"^3.1.10","semver":"^5.5.1","semver-utils":"^1.1.2","staged-git-files":"^1.1.1","stylelint":"~9.6.0","supports-color":"^5.5.0","which":"^1.3.1","write-json-file":"^3.0.1"},"devDependencies":{"@commitlint/cli":"^7.1.2","ava":"^0.25.0","chai":"^4.1.2","chai-as-promised":"^7.1.1","coveralls":"^3.0.2","deep-equal-in-any-order":"^1.0.10","eslint-config-standard":"^12.0.0","eslint-plugin-import":"^2.14.0","eslint-plugin-node":"^8.0.0","eslint-plugin-promise":"^4.0.1","eslint-plugin-standard":"^4.0.0","mocha":"^5.2.0","nyc":"^13.0.1","sinon":"^7.1.0"},"gitHead":"91b7021298c942015c1d4d0962f4acc4d8325811","_id":"elint@1.8.2","_npmVersion":"6.4.1","_nodeVersion":"10.10.0","_npmUser":{"name":"keenwon","email":"semanwmj@gmail.com"},"dist":{"integrity":"sha512-Xf+kP2Yg0MDXy4ipuwmxUzBOsuPuvD9bgUs2hHLpSsljGq2RSnqTdHILtqy+bgTDaFS2FAqus+gnoXe02zVjjw==","shasum":"287950185a8c769572855ba8ea5dc4eceec4e94e","tarball":"https://registry.npmjs.org/elint/-/elint-1.8.2.tgz","fileCount":44,"unpackedSize":82208,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb2DLPCRA9TVsSAnZWagAAJuYQAKT9Ks8tkid+EJAZFsOv\nU/bKjHMw8Hgbe7Osmyd9+8yBBGhMQsEkkCLH6JlQcgQHSr9I5GHAk60uzYJW\nf07wAakw/HspzXmhjc7S18P81FgFnbjhQ/TwN1z5wkZT6t4Qt5DNFCGddrUi\nD6oI76oiZpAqifjgnvwq8TOymzVu5Djv9INV2WcU5umQ4t1rfxQwW4pmRKzy\nQ9q5BdmI1n/VnhBh7E1OWDHfZ3Jqr6IXSXJRUs0im3RiAxWo/e2nxuKf4zYh\nvjwgZj05QFZ57hd8a5gk8lHLtksTN6IHmaaad0MZfi8F7Q1Tukp0YGsbPrU7\n8LnDIB9CAZlekudjYSnaCJncOz8k4JSJEjuKqMst2fJWHNovs1o7iMmIsVyY\nqZJkSAKl6LDKHhG0X5h+gtsHa2L2s+iydrK7LxX9a21mpbbfLjN/8t/IWllB\nIrb5CkgYzQLT/o3N1AwHDh/5UdCzl+xYlYc0Zp29P0zb1BvnWHPW0287Z0Y1\nn3xxvYw1zN3NETUvwTF5+2jWMQ6iVcUjWXL8O68ox9SKiJZMfioEnHnz710X\nZCy6Fv57Q5WqFRXpuzpTRBJjN2vIFePq5z5NxIz7ZjNNhJi+UliT3iENgVZB\nVcp4dU1InXX7rP3foBG0Oih+cqkoo2KgmTjsnjqB/N3tbAUA4gF56ZkIfcI0\nvbSO\r\n=MDPf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBm4w3dQMDPBeEbhbTJkm7bV6hZk1st8mcI77NLEQhXkAiEA29udzmw8OvzmRYrB6D+NGXWbZ9Olanl+87dTvgEd1kk="}]},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_1.8.2_1540895438456_0.03244504831896022"},"_hasShrinkwrap":false},"1.8.3":{"name":"elint","version":"1.8.3","description":"A easy way to lint your code.","main":"src/index.js","bin":{"elint":"./bin/cli.js"},"scripts":{"test":"npm run test:lint && npm run test:unit:coverage && npm run test:system","test:circleci":"npm run test:lint && npm run test:unit && npm run test:system","test:appveyor":"npm run test:lint && npm run test:unit && npm run test:system","test:lint":"eslint --format codeframe \"bin/**/*.js\" \"src/**/*.js\" \"test/**/*.js\" \"scripts/postinstall\" --fix","test:system":"node test/system/utils/init.js && ava \"test/system/**/*.spec.js\" && node test/system/utils/clean.js","test:unit":"mocha \"test/unit/**/*.spec.js\"","test:unit:coverage":"nyc --reporter=html --reporter=text npm run test:unit && nyc report --reporter=text-lcov | coveralls","postinstall":"node ./src/postinstall.js"},"repository":{"type":"git","url":"git+https://github.com/keenwon/elint.git"},"keywords":["eslint","eslintplugin","eslintconfig","stylelint","commitlint","standard","jshint","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","bugs":{"url":"https://github.com/keenwon/elint/issues"},"homepage":"https://github.com/keenwon/elint#readme","engines":{"node":">=6.0.0"},"dependencies":{"@commitlint/core":"^7.2.0","chalk":"^2.4.1","co":"^4.6.0","commander":"^2.18.0","debug":"^4.0.0","diff":"^3.5.0","eslint":"^5.5.0","execa":"^1.0.0","figures":"^2.0.0","find-process":"^1.1.3","fs-extra":"^7.0.0","globby":"^8.0.1","husky":"^1.0.1","is-npm":"^2.0.0","left-pad":"^1.3.0","lodash":"^4.17.11","md5":"^2.2.1","micromatch":"^3.1.10","semver":"^5.5.1","semver-utils":"^1.1.2","staged-git-files":"^1.1.1","stylelint":"~9.6.0","supports-color":"^5.5.0","which":"^1.3.1","write-json-file":"^3.0.1"},"devDependencies":{"@commitlint/cli":"^7.1.2","ava":"^0.25.0","chai":"^4.1.2","chai-as-promised":"^7.1.1","coveralls":"^3.0.2","deep-equal-in-any-order":"^1.0.10","eslint-config-standard":"^12.0.0","eslint-plugin-import":"^2.14.0","eslint-plugin-node":"^8.0.0","eslint-plugin-promise":"^4.0.1","eslint-plugin-standard":"^4.0.0","mocha":"^5.2.0","nyc":"^13.0.1","sinon":"^7.1.0"},"gitHead":"0e9bc87bc151d11d0a24561bc71c61bbf9dc31b6","_id":"elint@1.8.3","_npmVersion":"6.4.1","_nodeVersion":"10.10.0","_npmUser":{"name":"keenwon","email":"semanwmj@gmail.com"},"dist":{"integrity":"sha512-XJZ8wy9oj4aiDic4RC4RQbiCbpTng6ty5RMoKQTfj0K3enFyK6Mi9HYcKnTruMTEGDc9yRSuRPxCeFuM5/f1Bw==","shasum":"d2ded9ebb6bd6c2c0fa26807e614700f8bab4f54","tarball":"https://registry.npmjs.org/elint/-/elint-1.8.3.tgz","fileCount":44,"unpackedSize":82339,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcANdbCRA9TVsSAnZWagAACcoP/j8DfLLnVyj1YMwD6eXJ\nf1jwblGU0t9rKFKblW7LVsfg6vKsTHuW2RRtg/yeGNJ3p1xYbMv6bvpJUhqu\nIcjcL9DjpD3WeaakKlqdIOOFOwLUpNWCZ6YaIeYiZL1MXg/Eq6djAAryx8jv\n85snNlvRbrw7u2+vJntKlIpHYP8BzIzAYFQeCBj3PhsRo/XE/oObOqmPIBIS\nFf4EXOvPoxtEQ24r9JC+PebR4BQ4AR2MTH7+AIQBDTZwMod1EBVU8Mc6uSSa\nOjCYD0eTY0EXmz20RDBYvGxCJbQenVc4TgbHPqMqDM3HAmTN9DkwY66Y9I5z\nfACqNWas2e1FRelj4l5fxsLtHhLUlcU4yQO2UxDQCxC4346DAbqWOw1T6RSu\noQBG58YGv1XMiQk78I6ndIQOINwSyxSgzriRhgCnKdMsqZtIwaDbQ08D5Psg\nOaZujmDojTknt56WinMlB553D8yhKCultECFfbJWCmsltN1/ke0w+mQtHs4k\nHhRYP20w75TEJ/yjDL2hRTv8sHJF1cbFaEU2hLTiEORp+aEKKZtHgVqd9X5u\n55pbIGNrNV4oFlHtnE7hd0KTCUgKnHaZFTR4C8X9a+amXH07AWiOi0/z5Fup\nvrYjkihsbjr4uqyl9MrYL1h9fHU7xvfTfUrsmPWImnc8zKdzHO7a2AONbZVe\nKquz\r\n=9iZZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDS4eL7lfqiizhxEhbADCXFPRHFPYkeOh2f1dJIh63Y/wIhAKXg9l1ZwFxLWnfzN161t3fambuYkvIm/+5W5p4ubDY9"}]},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_1.8.3_1543559002277_0.5880318192172145"},"_hasShrinkwrap":false},"1.9.0":{"name":"elint","version":"1.9.0","description":"A easy way to lint your code.","main":"src/index.js","bin":{"elint":"./bin/cli.js"},"scripts":{"test":"npm run test:lint && npm run test:unit:coverage && npm run test:system","test:circleci":"npm run test:lint && npm run test:unit && npm run test:system","test:azure":"npm run test:lint && npm run test:unit && npm run test:system","test:lint":"eslint --format codeframe \"bin/**/*.js\" \"src/**/*.js\" \"test/**/*.js\" \"scripts/postinstall\" --fix","test:system":"node test/system/utils/init.js && ava \"test/system/**/*.spec.js\" --verbose && node test/system/utils/clean.js","test:unit":"mocha \"test/unit/**/*.spec.js\" --timeout 15000","test:unit:coverage":"nyc --reporter=html --reporter=text npm run test:unit && nyc report --reporter=text-lcov | coveralls","postinstall":"node ./src/postinstall.js"},"repository":{"type":"git","url":"git+https://github.com/keenwon/elint.git"},"keywords":["eslint","eslintplugin","eslintconfig","stylelint","commitlint","standard","jshint","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","bugs":{"url":"https://github.com/keenwon/elint/issues"},"homepage":"https://github.com/keenwon/elint#readme","engines":{"node":">=6.0.0"},"dependencies":{"@commitlint/core":"^7.2.0","chalk":"^2.4.1","co":"^4.6.0","commander":"^2.18.0","debug":"^4.0.0","diff":"^3.5.0","eslint":"^5.5.0","execa":"^1.0.0","figures":"^2.0.0","find-process":"^1.1.3","fs-extra":"^7.0.0","globby":"^8.0.1","husky":"^1.0.1","is-npm":"^2.0.0","left-pad":"^1.3.0","lodash":"^4.17.11","md5":"^2.2.1","micromatch":"^3.1.10","semver":"^5.5.1","semver-utils":"^1.1.2","staged-git-files":"^1.1.1","stylelint":"~9.6.0","supports-color":"^5.5.0","which":"^1.3.1","write-json-file":"^3.0.1"},"devDependencies":{"@commitlint/cli":"^7.1.2","ava":"^1.0.1","chai":"^4.1.2","chai-as-promised":"^7.1.1","coveralls":"^3.0.2","deep-equal-in-any-order":"^1.0.10","eslint-config-standard":"^12.0.0","eslint-plugin-import":"^2.14.0","eslint-plugin-node":"^8.0.0","eslint-plugin-promise":"^4.0.1","eslint-plugin-standard":"^4.0.0","mocha":"^5.2.0","nyc":"^13.0.1","sinon":"^7.1.0"},"gitHead":"082e83a5983f07dafde32d474c9bb8bb0d4d3b4f","_id":"elint@1.9.0","_npmVersion":"6.4.1","_nodeVersion":"10.10.0","_npmUser":{"name":"keenwon","email":"semanwmj@gmail.com"},"dist":{"integrity":"sha512-TQsjJjF1SchQuu6a7lKS5Dvao2LpAUCPSq28m4wIQ1p31hUJxHu6wjPYH78UC+6FtSFsnDFBiZEFvQ5Miq4tkg==","shasum":"5ae073ee8661a4e509cc194a103ccfb02d38fab3","tarball":"https://registry.npmjs.org/elint/-/elint-1.9.0.tgz","fileCount":44,"unpackedSize":82588,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcGlxzCRA9TVsSAnZWagAA9X0P/iZWLcpEyjRTFesSRAOo\nql+OiArouGYgwbbLL0C9/s4mZLqBmvB5M8Hm3iEZJ+gpoHaPiQjZbNTaXwcx\n9GzmzAMLj7uc0EA2AH9C3tpcavGfDesxUKSyHPPOzz/YGsUs4ihiIyDkMEp8\n/ZXZsfZQjbN/lbq8e3w0YAyV1GeTtLQ27lmbXMA6LJHKUEQ77IHVP3t7y/UP\nzPMGs8hs0gPa5F/ZrzxRn0/g+6fSsx9O6STV7zblT+KmsSTcLcS0f2CHzeDY\nXugdig50+lhUj1x5bUlBGbPo4/e+7le5frktShctdZSrYl61YNq/T6rw2Hbf\nTp8wix7gBLps6u+jP0ndg3f1OYeC51gZMsFssoFcxlOyZVjTwfAT06NSafqn\n15pUWfL2PAxaqHyaDiiwWMmBFm/HTrGHdc7puD6expdjdBPJyfFbqVwRf/Tv\nMdPAtGejQJUY8bPzutlKUk1Rt7qwl1PlhqJ0uvBLvy3SmwlwPF0dPqwFsuvl\n9ZqObVYdcgVB00a8FC73zS4ap7Qy3k/ibpmWiugr8rDrvzupeasuBqMAiWv1\nzgdYgGn9wBidsJcfbyMlBFr+cpn0EFdXtNV91Rf/oqzEsH5aN+lOVFgFuOvF\nffDAJqhcU3qRjjG0lzL19vPbLR+/KBO3vMfUolW2EY0AzBY6Os4PYICbzr4A\naugj\r\n=ZAbt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE9++eqppRwuLiLEYF6bQG6WoVz0J6EOE5GMowcpYXOdAiEAnvIoOskcRhERnJCL7UW2zoQGzDWpkqXe+Zf6/DL/pGA="}]},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_1.9.0_1545231474399_0.19711718610578943"},"_hasShrinkwrap":false},"1.10.0-alpha.0":{"name":"elint","version":"1.10.0-alpha.0","description":"A easy way to lint your code.","main":"src/index.js","bin":{"elint":"./bin/cli.js"},"scripts":{"test":"npm run test:lint && npm run test:unit:coverage && npm run test:system","test:lint":"eslint --format codeframe \"+(bin|src|test)/**/*.js\" \"scripts/postinstall\" --fix","test:unit":"mocha \"test/unit/**/*.spec.js\" --timeout 15000","test:unit:coverage":"nyc --reporter=html --reporter=text npm run test:unit && nyc report --reporter=text-lcov | coveralls","test:system":"node test/system/utils/init.js && ava \"test/system/**/*.spec.js\" --verbose --fail-fast && node test/system/utils/clean.js","postinstall":"node ./src/postinstall.js"},"repository":{"type":"git","url":"git+https://github.com/keenwon/elint.git"},"keywords":["eslint","eslintplugin","eslintconfig","stylelint","commitlint","standard","jshint","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","bugs":{"url":"https://github.com/keenwon/elint/issues"},"homepage":"https://github.com/keenwon/elint#readme","engines":{"node":">=6.0.0"},"dependencies":{"@commitlint/core":"^7.2.1","boxen":"^2.1.0","chalk":"^2.4.1","co":"^4.6.0","commander":"^2.19.0","configstore":"^4.0.0","debug":"^4.1.0","diff":"^3.5.0","eslint":"^5.10.0","execa":"^1.0.0","figures":"^2.0.0","find-process":"^1.2.1","fs-extra":"^7.0.1","globby":"^8.0.1","husky":"^1.3.0","is-npm":"^2.0.0","left-pad":"^1.3.0","lodash":"^4.17.11","md5":"^2.2.1","micromatch":"^3.1.10","node-fetch":"^2.3.0","semver":"^5.6.0","semver-utils":"^1.1.4","staged-git-files":"^1.1.2","stylelint":"~9.6.0","supports-color":"^6.0.0","which":"^1.3.1","write-json-file":"^3.0.2"},"devDependencies":{"@commitlint/cli":"^7.2.1","ava":"^1.0.1","chai":"^4.2.0","chai-as-promised":"^7.1.1","coveralls":"^3.0.2","deep-equal-in-any-order":"^1.0.10","eslint-config-standard":"^12.0.0","eslint-plugin-import":"^2.14.0","eslint-plugin-node":"^8.0.0","eslint-plugin-promise":"^4.0.1","eslint-plugin-standard":"^4.0.0","mocha":"^5.2.0","nyc":"^13.1.0","sinon":"^7.2.2"},"gitHead":"935fe4910c3c0aecf7798db6f421f34bba4e952a","readme":"# ELint\n\n[![Node engine][node-image]][node-url]\n[![NPM version][npm-image]][npm-url]\n[![License][license-image]][license-url]\n[![Coverage Status][coveralls-image]][coveralls-url]\n[![Dependencies Status][dependencies-image]][dependencies-url]\n[![Lgtm Alerts][lgtm-alerts-image]][lgtm-alerts-url]\n[![Lgtm Grade][lgtm-grade-image]][lgtm-grade-url]\n\n|Linux|macOS|Windows|\n|:--:|:--:|:--:|\n|[![Linux build status][circleci-image]][circleci-url]|[![macOS build status][travis-image]][travis-url]|[![Windows build status][azure-image]][azure-url]|\n\n专为团队设计的 lint 工具\n\n**目录**：\n\n<!-- TOC -->\n\n- [1. 核心概念](#1-核心概念)\n  - [1.1. ELint](#11-elint)\n  - [1.2. Preset](#12-preset)\n- [2. 使用指南](#2-使用指南)\n  - [2.1. 安装 elint](#21-安装-elint)\n  - [2.2. 编写 preset](#22-编写-preset)\n    - [2.2.1. 新建一个 npm package](#221-新建一个-npm-package)\n    - [2.2.2. 添加 eslint 配置文件（可选）](#222-添加-eslint-配置文件可选)\n    - [2.2.3. 添加 stylelint 配置文件（可选）](#223-添加-stylelint-配置文件可选)\n    - [2.2.4. 添加 commitlint 配置文件（可选）](#224-添加-commitlint-配置文件可选)\n    - [2.2.5. 添加 git hooks（可选）](#225-添加-git-hooks可选)\n    - [2.2.6. 发布 npm package](#226-发布-npm-package)\n  - [2.3. 安装 preset](#23-安装-preset)\n  - [2.4. 定义 npm scripts](#24-定义-npm-scripts)\n    - [2.4.1. npm test](#241-npm-test)\n    - [2.4.2. npm beforecommit](#242-npm-beforecommit)\n- [3. ELint CLI](#3-elint-cli)\n  - [3.1. lint](#31-lint)\n  - [3.2. hooks](#32-hooks)\n  - [3.3. version](#33-version)\n  - [3.4. install](#34-install)\n  - [3.5. diff](#35-diff)\n- [4. 细节 & 原理](#4-细节--原理)\n  - [4.1. 安装 & 初始化过程](#41-安装--初始化过程)\n  - [4.2. 执行过程](#42-执行过程)\n- [5. 常见问题](#5-常见问题)\n  - [5.1. cnpm, yarn](#51-cnpm-yarn)\n  - [5.2. 为什么不建议全局安装](#52-为什么不建议全局安装)\n  - [5.3. 安装失败](#53-安装失败)\n  - [5.4. git hooks 不执行或报错](#54-git-hooks-不执行或报错)\n  - [5.5. 配置文件是不是可以 git ignore](#55-配置文件是不是可以-git-ignore)\n  - [5.6. 是否可以安装多个 preset](#56-是否可以安装多个-preset)\n  - [5.7. 某些文件没有被校验到](#57-某些文件没有被校验到)\n  - [5.8. 为什么添加了 fix 选项还是有问题输出](#58-为什么添加了-fix-选项还是有问题输出)\n  - [5.9. 如何禁用颜色输出](#59-如何禁用颜色输出)\n  - [5.10. lint 执行失败，提示包缺失](#510-lint-执行失败提示包缺失)\n  - [5.11. fix 和 force-fix 的区别](#511-fix-和-force-fix-的区别)\n- [6. 参考](#6-参考)\n\n<!-- /TOC -->\n\n## 1. 核心概念\n\n在使用 elint 之前，需要先了解几个核心概念。\n\n### 1.1. ELint\n\nelint 是一款代码校验工具，基于 eslint、stylelint、commitlint 等工具封装而成。elint 本身不包含任何校验规则，校验规则通过 preset 定义。elint 的主要功能包括：\n\n- 支持对 js，css 的校验 (eslint, stylelint)。\n- 支持对 git commit message 的校验 (husky, commitlint)。\n- **编写**定制化、场景化的 preset，preset 包含所有验证规则，**保证团队内部校验规则的一致性和可复用**。\n\n### 1.2. Preset\n\n简单来说，preset 就是一个 npm package，可以理解为”规则集“。\n\n只有 elint 是不够的，因为它不知道具体的校验规则，而 preset 就是用来定义规则的。preset 大概长这样：\n\n```shell\nelint-preset-<name>\n├── .commitlintrc.js    # 定义 commitlint 规则，用于 git commit message 的校验\n├── .eslintignore       # 定义 eslint 忽略规则\n├── .eslintrc.js        # 定义 eslint 规则，用于 js 的校验\n├── .huskyrc.js         # 定义 git hooks, 可在 commit 前执行 commitlint 等操作\n├── node_modules\n├── package.json\n├── package-lock.json\n├── .stylelintignore    # 定义 stylelint 忽略规则\n└── .stylelintrc.js     # 定义 stylelint 的规则，用于 css 的校验\n```\n\n要求：\n\n1. npm package name 必须以 `elint-preset-` 开头，如： `elint-preset-<name>` 或 `@team/elint-preset-<name>`。\n2. linter 的配置文件名必须是 `.commitlintrc.js`, `.eslintrc.js`, `.stylelintrc.js`。\n3. 对于 eslint 和 stylelint，支持使用 `.eslintignore`, `.stylelintignore` 定义需要忽略校验的文件和文件夹。\n4. git hooks (使用 husky) 的配置文件名必须是 `.huskyrc.js`。\n5. 所有配置文件必须放在 preset 的根目录。\n6. 依赖的 linter plugin（例如 eslint-plugin-react），必须明确定义在 `package.json` 的 `dependencies` 中。\n\n满足以上要求的 npm package 就是一个合法的 elint preset。\n\n> 一般来说，不建议把 `.eslintignore`，`.stylelintignore` 添加到 preset 中，因为 preset 应该对所有项目都是适用的（除非你的 preset 限定在一个很小的范围内使用，各个项目的目录结构都是一致的，此时可以使用它们来定义需要忽略校验的文件和文件夹）。\n\n> 在 `package.json` 中添加关键字 `elint-preset` 会方便大家找到。[这里](https://npms.io/search?q=keywords%3Aelint-preset)可以查找现有的 preset。\n\n> eslint, stylelint, commitlint, husky 等配置文件的语法规则，请阅读[参考](#6-参考)一节提供的文档。\n\n## 2. 使用指南\n\n开始使用 elint 之前，请先检查下你使用 node 和 npm 版本。运行 elint 需要：\n\n- node：>= 6.0.0，建议尽量使用新版本。\n- npm：>= 3.8.6，同样建议使用新版本。另外部分版本有 bug，可能会导致安装失败，详情查看[常见问题](#53-安装失败)。\n\n下面我们一起从零开始，一步一步的看看如何将 elint 集成到项目中。\n\n### 2.1. 安装 elint\n\n首先要安装 elint：\n\n```shell\n# 假设项目是 test-project\ncd test-project\n\n# 安装 elint\nnpm install elint --save-dev\n```\n\n> 如果你使用 yarn，cnpm（包括基于 cnpm 创建的私有仓库） 等包管理工具，请参考\"[内部细节](#4-细节--原理)\"和\"[常见问题](#51-cnpm-yarn)\"章节，我们的示例中统一使用 npm。\n\n> 强烈**不建议**全局安装（具体原因，请阅读[常见问题](#52-为什么不建议全局安装)）。\n\n### 2.2. 编写 preset\n\n安装完 elint 后，我们需要安装 preset，因为所有的校验规则（rules）都定义在 preset 中。一般来说，一个团队应该有一套编码规范，根据编码规范编写好 preset 后，团队中的各个项目直接安装使用即可，不必为每个项目都新建一个 preset。\n\n> 在一个团队里，可能一个 preset 并不能适应全部场景，那么我们可以根据不同的场景定义多个 preset。例如 `@team/elint-preset-h5`, `@team/elint-preset-node` 等。要覆盖所有项目，并不需要多少 preset。\n\n这里我们假设团队还没有任何 preset，一起看下如何新建它：\n\n#### 2.2.1. 新建一个 npm package\n\n上文已经讲过了，preset 本质上还是一个 npm package，所以新建 preset 的第一步就是新建 npm package：\n\n```shell\n# 假设叫 elint-preset-test\nmkdir elint-preset-test\n\ncd elint-preset-test\n\n# 为了方便演示，全部使用默认值，实际项目中酌情修改\nnpm init -y\n```\n\n#### 2.2.2. 添加 eslint 配置文件（可选）\n\n> 这步是可选的，如果你不需要校验 js 文件，可以直接跳过（下同）\n\n首先新建配置文件，名称必须是 `.eslintrc.js`, 参考上文的 [preset 约定](#12-preset)：\n\n```shell\ntouch .eslintrc.js\n```\n\n`.eslintrc.js` 写入如下内容：\n\n```js\nmodule.exports = {\n  'extends': [\n    // 使用 plugin eslint-plugin-react\n    'plugin:react/recommended'\n  ],\n  'rules': {\n    // 禁止 console\n    'no-console': 2\n  }\n};\n```\n\n因为使用了 plugin `eslint-plugin-react`，所以必须使用 npm 安装，且保存到 `package.json` 的 `dependencies` 中（无论是从语义方面考虑，还是上文关于 preset 的约定，都应该保存到 `dependencies` 中）：\n\n```shell\nnpm install eslint-plugin-react --save\n```\n\n> 因为我们使用 elint 执行校验，而 elint 已经集成了 eslint，stylelint 等工具，所以这里不需要再安装了，只需安装额外的 plugin。\n\n#### 2.2.3. 添加 stylelint 配置文件（可选）\n\n此处省略，和 eslint 一样的做法。\n\n#### 2.2.4. 添加 commitlint 配置文件（可选）\n\n新建配置文件 `.commitlintrc.js`：\n\n```shell\ntouch .commitlintrc.js\n```\n\n`.commitlintrc.js` 写入如下内容：\n\n```js\nmodule.exports = {\n  rules: {\n    // type 不能为空\n    'type-empty': [2, 'never'],\n    // type 必须是 build 或 ci\n    'type-enum': [2, 'always', [\n      'build',\n      'ci'\n    ]]\n  }\n};\n```\n\n#### 2.2.5. 添加 git hooks（可选）\n\n新建配置文件 `.huskyrc.js`：\n\n```shell\ntouch .huskyrc.js\n```\n\n`.huskyrc.js` 写入如下内容\n\n```js\nmodule.exports = {\n  'hooks': {\n    /**\n     * beforecommit 可以在项目的 package.json 中自由定义\n     * 例如可以执行代码校验和 commitlint，或者都执行\n     */\n    'commit-msg': 'npm run beforecommit'\n  }\n}\n```\n\n> 这里配置 git hooks 执行 `npm run beforecommit`，所以你可以在项目中自由定义要执行的操作（下面会详细解释）。\n\n> **注意**：\n>\n> 可能你会觉得，命名为 `precommit` 比 `beforecommit` 更合适。没错，单纯从命名的角度讲，`precommit` 确实更好。但这会与 husky 的规则产生冲突。旧版本的 husky 支持在 package.json 的 scripts 中定义 git hooks。\n\n#### 2.2.6. 发布 npm package\n\n此时项目的目录结构应该是：\n\n```shell\nelint-preset-test\n├── .commitlintrc.js\n├── .eslintrc.js\n├── .huskyrc.js\n├── node_modules\n├── package.json\n└── package-lock.json\n\n1 directory, 5 files\n```\n\n发布 npm package，执行：\n\n```shell\nnpm publish\n```\n> 如果希望更多人发现你的 preset，可以添加关键字 `elint-preset`，[点击此处](https://npms.io/search?q=keywords%3Aelint-preset)可以查看现有可用的 preset。\n\n### 2.3. 安装 preset\n\n刚刚我们已经编写并发布了 preset，现在安装到项目中就好了：\n\n```shell\ncd test-project\n\n# 安装我们刚才新建的 elint-preset-test\nnpm install elint-preset-test --save-dev\n```\n\n安装完成后，你会发现刚才定义在 preset 中的各种配置文件（`.eslintrc.js` 等），都拷贝到了项目的根目录，这是为了兼容各种 IDE 和 build 工具（如 webpack），elint 与他们是可以共存的。\n\n### 2.4. 定义 npm scripts\n\n#### 2.4.1. npm test\n\n按照常规套路，需要在 `package.json` 中定义 `npm test`，如果项目只有 lint，可以这样写：\n\n```json\n{\n  \"scripts\": {\n    \"test\": \"elint lint 'src/**/*.js' 'src/**/*.css'\"\n  }\n}\n```\n\n如果除了 lint 还有其他测试，可以这样写：\n\n```json\n{\n  \"scripts\": {\n    \"test\": \"npm run test:lint && npm run test:other\",\n    \"test:lint\": \"elint lint 'src/**/*.js' 'src/**/*.css'\",\n    \"test:other\": \"...\"\n  }\n}\n```\n\n> 注意: glob 最好加上引号，详见 [ELint CLI](#31-lint)\n\n#### 2.4.2. npm beforecommit\n\n刚才编写 preset 的时候，定义了在 commit 前执行 `npm run beforecommit`，所以我们必须定义好 beforecommit，否则会**报错**：\n\n```json\n{\n  \"scripts\": {\n    \"beforecommit\": \"npm run test:lint && elint lint commit\",\n    \"test\": \"npm run test:lint && npm run test:other\",\n    \"test:lint\": \"elint lint 'src/**/*.js' 'src/**/*.css'\",\n    \"test:other\": \"...\"\n  }\n}\n```\n\n按照上面的写法，commit 之前会执行校验代码和 commit message。至此，elint 已经成功添加到项目中，执行 `npm test` 会校验代码，在 commit 前会校验代码和 commit message\n\n> 万一（虽然不建议）你在 commit 之前什么都不想执行，为了不报错，也要写 `exit 0`。\n\n> 当 lint 运行在 git hooks 中时，文件的范围限定在 **git 暂存区**，也就是你将要提交的文件（详见 [ELint CLI](#31-lint)）。\n\n## 3. ELint CLI\n\n因为我们不推荐全局安装，除了在 npm scripts 和 `.huskyrc.js` 中使用，下面的 `elint` 均代指 `./node_modules/.bin/elint`（或者也可以使用 npm 5.2.0 起内置的 [npx](https://github.com/zkat/npx) 命令）：\n\n### 3.1. lint\n\n`lint` 命令用来执行代码校验和 git commit message 校验。当 lint 运行在 git hooks 中时，文件的搜索范围限定在 **git 暂存区**，也就是只从你将要 commit 的文件中，找到需要校验的文件，执行校验。\n\n```shell\nelint lint [options] [type] [files...]\n```\n\ntype 可选的值：\n\n- es: 执行 eslint\n- style: 执行 stylelint\n- commit: 执行 commitlint\n\n如果不指定 type，默认执行 eslint 和 stylelint\n\noptions 可选的值：\n\n- -f, --fix: 自动修复，git hooks 中无效，[为什么这么做？](#511-fix-和-force-fix-的区别)\n- -ff, --force-fix: 强制自动修复，git hooks 中依然有效\n- --no-ignore: 忽略 elint 遍历文件时的默认忽略规则\n\n当添加 `--fix` 或者 `--force-fix` 时，会尝试自动修复问题，无法自动修复的问题依旧会输出出来。\n\n例子：\n\n```shell\n# 校验 js 和 scss\n$ elint lint \"**/*.js\" \"**/*.scss\"\n\n# 校验 js 和 scss，执行自动修复\n$ elint lint \"**/*.js\" \"**/*.scss\" --fix\n\n# 校验 js\n$ elint lint \"**/*.js\"\n$ elint lint es \"**/*.js\"\n\n# 校验 less\n$ elint lint \"**/*.less\"\n$ elint lint style \"**/*.js\"\n\n# 校验 commit message\n$ elint lint commit\n```\n\n**注意**:\n\n当你在 Terminal（或者 npm scripts） 中运行 `elint lint **/*.js` 的时候，glob 会被 Terminal 解析，然后输入给 elint。glob 语法解析的差异可能会导致文件匹配的差异。所以建议，glob 使用引号包裹，防止在输入到 elint 前，被意外解析。\n\n### 3.2. hooks\n\n`hooks` 命令用来安装 & 卸载 git hooks（一般不会用到）：\n\n```shell\nelint hooks [action]\n```\n\n支持的 action：\n\n- install: 安装\n- uninstall: 卸载\n\n例子：\n\n```shell\n$ elint hooks install\n$ elint hooks uninstall\n```\n\n### 3.3. version\n\n输出版本信息\n\n```shell\n$ elint -v\n> elint version\n\n  elint             : 1.2.0-rc.1\n  elint-preset-test : 1.0.15\n\n  Dependencies:\n    eslint     : 4.19.1\n    stylelint  : 9.2.1\n    commitlint : 7.0.0\n    husky      : 1.0.0-rc.8\n```\n\n### 3.4. install\n\n前面讲到的 preset 安装，都是直接执行 `npm install`。其实除了这种方式，还可以直接使用 `elint install` 命令安装：\n\n```shell\nelint install [presetName] [options]\n```\n\n`presetName` 可以忽略 `elint-preset-` 前缀。\n\n支持的 options:\n\n- --registry: 指定 npm 仓库地址，可以输入 url 或者 alias。支持如下的 alias：\n  - npm: [https://registry.npmjs.org/](https://registry.npmjs.org/)\n  - cnpm: [http://r.cnpmjs.org/](http://r.cnpmjs.org/)\n  - taobao: [https://registry.npm.taobao.org/](https://registry.npm.taobao.org/)\n  - nj: [https://registry.nodejitsu.com/](https://registry.nodejitsu.com/)\n  - rednpm: [http://registry.mirror.cqupt.edu.cn](http://registry.mirror.cqupt.edu.cn)\n  - skimdb: [https://skimdb.npmjs.com/registry](https://skimdb.npmjs.com/registry)\n- --keep: 不覆盖旧的配置文件（文件完全一样肯定是不会覆盖的，keep 选项只在有文件有差异时生效）\n\n例子：\n\n```shell\n# 安装 elint-preset-test\n$ elint install test\n\n# 从 cnpm 安装 elint-preset-test\n$ elint install test --registry=https://registry.npm.taobao.org/\n\n# 从 cnpm 安装 elint-preset-test, 使用 alias\n$ elint install test --registry=cnpm\n```\n\n这两种安装方式的最大区别就是：\"否将 preset 视为项目的依赖\"：\n\n|安装方式|区别|\n|:--|:--|\n|`npm install`|把 preset 当成依赖，执行 `npm install` 时，项目根目录的配置文件都可能被更新|\n|`elint install`|把 preset 当成配置源，更新时需要再次执行 `elint install`|\n\n除了上面列举的区别外，`elint install` 无视 cnpm，yarn 的限制，如果你十分依赖 cnpm，yarn 时，可以考虑使用 `elint install` 来安装，但要留意保持 preset 的最新。\n\n没有主推这种方式的原因在于，**elint 的设计初衷就是统一团队规范，规范一旦制定，需要严格执行**。`npm install` 会自动更新并覆盖项目根目录的配置文件，一定程度上避免了随意修改配置文件带来的（不同项目之间）校验规则不统一。另外一点就是由于不推荐全局安装 elint，所以 elint 命令需要用 `./node_modules/.bin/elint` 执行，略显麻烦。\n\n### 3.5. diff\n\n万一你使用了 `elint install`，万一你加了 `keep`，万一你没有趁手的 diff 工具，可以尝试：\n\n```shell\n$ elint diff\n```\n\n输出类似：\n\n```diff\n -------------------------------------------------\n diff .eslintrc.js .eslintrc.old.js\n -------------------------------------------------\n  2 |   'extends': [\n  3 |     'plugin:react/recommended'\n  4 |   ],\n  5 |   'rules': {\n-   |     'no-console': 0\n+ 6 |     'no-console': 2\n  7 |   }\n  8 | };\n```\n\n## 4. 细节 & 原理\n\n作为一个项目的维护者，当你将 elint 集成到你的项目中时，了解一些细节会非常有帮助。\n\n### 4.1. 安装 & 初始化过程\n\n如果你编写好了用于自己团队的 preset，并且按照前面介绍的安装方式安装完成，你会发现，elint 将所有的配置文件从 preset 复制到了项目的根目录，这么做的目的是为了兼容在 IDE、build 工具中使用 lint。所以使用 elint 的同时，你仍然可以按照原来的方式，配置你的 IDE，webpack 等，他们与 elint 完全不冲突。\n\n具体的 preset 初始化过程（install 后自动执行），分为如下两步：\n\n1. 将配置文件 (`.eslintrc.js` 等) 复制到项目的根目录。\n2. 安装 preset 的 `dependencies`，并保存到项目的 `devDependencies` 中。\n\n安装（并初始化）完成后，可以根据你的项目的实际情况，添加 npm scripts，例如 test 时执行 `elint lint '**/*.js' '**/*.less'`\n\n无论是先安装 elint，还是先安装 preset，亦或者同时安装，elint 都能准确的感知到 preset 的存在，并完成所有初始化操作。这项功能主要借助于 [npm hook scripts](https://docs.npmjs.com/misc/scripts#hook-scripts)，这也是当你使用 cnpm 时需要格外注意的原因（解决办法参考下面的[常见问题](#51-cnpm-yarn)）。\n\n### 4.2. 执行过程\n\n执行过程比较简单，对代码的 lint 的过程可以概括为一句话：“elint 根据你输入的 glob，收集并整理文件，交由 eslint、stylelint 执行，然后将结果输出至命令行展示”。\n\n对 git commit 信息的 lint，主要借助于 husky 和 commitlint。安装过程中，会自动添加 git hooks，当 hooks 触发时，执行配置在 `.huskyrc.js` 中的相应命令，就这么简单。\n\n> 执行 commit lint 时，git hook 可以选择 `commit-msg`。\n\n> 因为 git hooks 的注册是在 npm install 后自动执行的，所以，如果万一你的项目还未 git init，hooks 注册必然是失败的。解决办法是在 git init 之后，手动执行 `./node_modules/.bin/elint hooks install`。\n\n## 5. 常见问题\n\n### 5.1. cnpm, yarn\n\n使用 cnpm 的目的无外乎两点：解决网络问题、私有仓库。但问题是 cnpm 的私有实现不支持给 elint 带来极大便利的 [npm hook scripts](https://docs.npmjs.com/misc/scripts#hook-scripts)。所以我们只能放弃 `cnpm` 命令，仅使用它的仓库。\n\n如果你只是单纯想从 cnpm 的仓库安装 npm package，提高安装速度。可以删除 `cnpm`，然后定义 alias:\n\n```shell\n$ alias cnpm='npm --registry=https://registry.npm.taobao.org/ \\\n  --registryweb=https://npm.taobao.org/ \\\n  --userconfig=$HOME/.cnpmrc'\n```\n\n如果你需要使用私有仓库，同样可以删除 `cnpm`，然后定义自己的命令:\n\n```shell\n$ alias mynpm='npm --registry=http://registry.npm.example.com \\\n  --registryweb=http://npm.example.com \\\n  --userconfig=$HOME/.mynpmrc'\n```\n\n关于 yarn，很可惜，目前不支持\n\n> 上面的 `alias` 命令只是临时修改，终端关闭即实现，永久添加请修改 `.bashrc` 或 `.zshrc`。\n\n### 5.2. 为什么不建议全局安装\n\nelint 强依赖 stylelint, eslint 等工具。而对于 eslint，其文档中写到:\n\n> Any plugins or shareable configs that you use must also be installed globally to work with a globally-installed ESLint.\n\n全局安装 lint 工具和所有的 plugin，项目数量较多时容易引起混乱，且可能对 ci、部署等带来麻烦。\n\n### 5.3. 安装失败\n\n可能是 npm 的 [bug](https://github.com/npm/npm-lifecycle/pull/13) 引起的。如果你的 npm 版本在 5.1.0 ～ 6.1.0 之间，请升级至最新版本的 npm。\n\nelint 安装过程中会检测 npm 版本，具体以检测结果为准。\n\n> windows 升级 npm 请参考：[How can I update npm on Windows?](https://stackoverflow.com/questions/18412129/how-can-i-update-npm-on-windows)\n\n### 5.4. git hooks 不执行或报错\n\n如果 git hooks 不执行或者报错，尝试下面的方法:\n\n- 项目处于 git 管理的前提下，执行 `npm install` 安装依赖。\n- 如果你在新建项目，先执行 `npm install`，然后执行 `git init` 的话，手动注册 git hooks（上文的 hooks 命令）。\n- 检查 `.git/hooks` 目录，是否存在非 `.sample` 结尾的文件，如果不存在，手动注册 git hooks。\n- 还是有问题？报 bug。\n\n### 5.5. 配置文件是不是可以 git ignore\n\n如果你能想到这个问题，那么说明你真的理解了 elint 的运作方式。忽略配置文件，防止意外被修改，所有团队成员使用 preset 定义的配置，听起来非常不错。那么从 preset 复制到项目中的各种配置文件，是否可以添加到 `.gitignore` 呢？这要看你的使用场景：\n\n- 如果代码提交到 git 仓库，执行 ci 的过程中会安装依赖。\n- 如果部署项目时，build 过程中不再执行 lint，或者先安装依赖，然后再执行 build。\n\n总之，只要执行 `npm install` 安装依赖，配置文件就会自动添加到项目里；只要你能保证需要用到配置文件的时候它存在（例如你在 webpack 里用了 eslint-loader），就可以忽略它。\n\n再次强调，elint 的设计原则是保证团队规范的严格执行，如果你觉得规则有问题，那么应该提出并推动修改 preset，而不是直接改项目里的配置。\n\n### 5.6. 是否可以安装多个 preset\n\n不可以。安装过程中，如果两个 preset 存在相同的配置文件，后安装会覆盖之前的。如果 package.json 中的依赖包含多个 preset，先后顺序由 npm 决定。\n\n### 5.7. 某些文件没有被校验到\n\n1. 检查你的 glob 写法是否有问题。\n2. 可能是 glob 被传入 elint 之前就被意外解析了，参考 [lint 命令](#31-lint)。\n3. windows 7 + git bash 下测试时发现，npm scripts 里，glob 必须使用双引号包裹\n\n```json\n{\n  \"scripts\": {\n    \"test:lint\": \"elint lint \\\"src/**/*.js\\\"\"\n  }\n}\n```\n\n4. elint 在遍历文件时，会应用一些默认的忽略规则，如果你的文件刚好命中这些规则，可以使用 `--no-ignore` 选项。\n\n```js\nconst defaultIgnore = [\n  '**/node_modules/**',\n  '**/bower_components/**',\n  '**/flow-typed/**',\n  '**/.nyc_output/**',\n  '**/coverage/**',\n  '**/.git',\n  '**/*.min.js',\n  '**/*.min.css'\n];\n\n// 除此之外还有 .gitignore 定义的忽略规则\n```\n\n### 5.8. 为什么添加了 fix 选项还是有问题输出\n\n并不是所有规则都支持自动修复，具体可以查看 [eslint rules](https://eslint.org/docs/rules/) 和 [stylelint rules](https://stylelint.io/user-guide/rules/)，可以自动修复的规则都有标识。\n\n### 5.9. 如何禁用颜色输出\n\n设置环境变量 `FORCE_COLOR` 为 `0` 即可，例如：\n\n```shell\n$ FORCE_COLOR=0 elint lint \"src/**/*.js\"\n```\n\n### 5.10. lint 执行失败，提示包缺失\n\n如果遇到如下错误，特别在 CI 环境下。可能是 `package-lock.json` 引起的。\n\n```shell\nError: Cannot find module 'eslint-config-xxx'\n```\n\n请按照如下步骤尝试修复：\n\n1. 删除 `node_modules` 和 `package-lock.json`。\n2. 查看 `package.json` 文件，使用 elint 时只需安装 elint 和 preset，清理掉遗留的 eslint 等依赖。\n3. 重新执行 `npm install`\n\n### 5.11. fix 和 force-fix 的区别\n\n`--fix` 非常好用，可以自动修改大量问题。但是，当在 git hooks 中使用时会有点小问题：git commit 时执行 fix，某些文件被修改，因此文件状态变为 modified，并且未被提交。此时不得不再次提交被 fix 过的文件，这通常与我们的预期不符。\n\n为了降低上述情景带来的意外影响，`--fix` 在 git hooks 模式下不生效，同时新增了任何时候都会生效的 `--force-fix`。\n\n建议使用 `--fix`，提交时如果代码有问题，直接报错打断，修复后再重新提交。\n\n## 6. 参考\n\n- eslint: [Github](https://github.com/eslint/eslint) | [文档](http://eslint.org)\n- stylelint: [Github](https://github.com/stylelint/stylelint) | [文档](https://stylelint.io)\n- commitlint: [Github](https://github.com/marionebl/commitlint) | [文档](http://marionebl.github.io/commitlint/#/)\n- husky: [Github](https://github.com/typicode/husky)\n- git hooks: [文档](https://git-scm.com/docs/githooks)\n- glob primer: [文档](https://github.com/isaacs/node-glob#glob-primer)\n\n[node-image]: https://img.shields.io/node/v/elint.svg?maxAge=3600\n[node-url]: https://nodejs.org\n[npm-image]: https://badge.fury.io/js/elint.svg\n[npm-url]: https://www.npmjs.com/package/elint\n[license-image]: https://img.shields.io/github/license/keenwon/elint.svg?maxAge=3600\n[license-url]: https://github.com/keenwon/elint/blob/master/LICENSE\n[circleci-image]: https://circleci.com/gh/keenwon/elint.svg?style=svg\n[circleci-url]: https://circleci.com/gh/keenwon/elint\n[travis-image]: https://api.travis-ci.org/keenwon/elint.svg?branch=master\n[travis-url]: https://travis-ci.org/keenwon/elint\n[azure-image]: https://dev.azure.com/keenwon/github/_apis/build/status/elint?branchName=master\n[azure-url]: https://dev.azure.com/keenwon/github/_build/latest?definitionId=1\n[coveralls-image]: https://coveralls.io/repos/github/keenwon/elint/badge.svg?branch=master\n[coveralls-url]: https://coveralls.io/github/keenwon/elint?branch=master\n[dependencies-image]: https://david-dm.org/keenwon/elint.svg\n[dependencies-url]: https://david-dm.org/keenwon/elint\n[devdependencies-image]: https://david-dm.org/keenwon/elint/dev-status.svg\n[devdependencies-url]: https://david-dm.org/keenwon/elint?type=dev\n[lgtm-alerts-image]: https://img.shields.io/lgtm/alerts/g/keenwon/elint.svg?logo=lgtm&logoWidth=18&maxAge=3600\n[lgtm-alerts-url]: https://lgtm.com/projects/g/keenwon/elint/alerts/\n[lgtm-grade-image]: https://img.shields.io/lgtm/grade/javascript/g/keenwon/elint.svg?logo=lgtm&logoWidth=18&maxAge=3600\n[lgtm-grade-url]: https://lgtm.com/projects/g/keenwon/elint/context:javascript\n","readmeFilename":"README.md","_id":"elint@1.10.0-alpha.0","_npmVersion":"6.4.1","_nodeVersion":"10.10.0","_npmUser":{"name":"keenwon","email":"semanwmj@gmail.com"},"dist":{"integrity":"sha512-A2tD6fQoyfU2TF+L9kJhvwqCbuSmHDx4iaBw+gNrpxlJBbV0EZjWsalTOv+Sz6WT+uE/+ctKiLdlmuCZJ2zODg==","shasum":"527aa2338322b688b4d42f942168f332333a0709","tarball":"https://registry.npmjs.org/elint/-/elint-1.10.0-alpha.0.tgz","fileCount":50,"unpackedSize":90964,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcNFqYCRA9TVsSAnZWagAAbYwP/2MpjUvErrvx7fVgYhYc\nLl2aprx/Yjdk2y9zUIL3BF+zCjGVCo/G3xPYNn4cFSi6AeOelPgVpvn3/obA\n5cSTX8K7FCXrbrCv+7Rmsmy3DBdRkOi0uKYAoyQ7hVGAuNPqpOMcH+VJ1mT9\nzmk6GMC6DWfsyzOiVBh8r2+lciPKZNd/bW8EcuDYXBfz/toEqfU1m3U386uQ\nP8sthtnwfCArJI04ljkFseXEvG0iH9P23ae3ofHgmIU+6DpzDO+ZW+U2EjjO\nLAeQY7piOjRctOf2hJaU5nCeADq5RRAIhxH8oSnLgnYeB9cGOg6wcdb+4Czc\nvNzC0Tmqmr7Z6yPlBzZQTVVMXE25o69T4AYeqnMzffhM680omjAod/EUCNVP\nYPJaV/Vl4F0pvtXE+kQYOHGfVpx1LbwoCish5y5TmtLzltF06G2TDPbQM8+d\nK20ST+tUo8qODM1q1RHVk8uB6fF4mmu21IIYjL8l3KiXAvMebqL1fxLAGnCU\nAdwm4iilKepFWFvzXiqUJXn1LY6AS6CvMWvOC42L0zyu3YcbMyVs1J13yhx5\nhFQlAFuyfs3Of622UmK6QgePOXMR6oVDZzXfXoMW/v9DJz0j/J+5nNYH/3U6\n5rt+J+FRBQZIKSbnALvwI+ok1eHZ6q+rs1jAHguIJ/gSCO33M4nsXsjewkia\n9u+B\r\n=Itpg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG2KhP/RdQ+Rd1li7WgZETsJIw5/zWfN+c+ezF+yCXZlAiBu186Xsb/Flk989Z6m2K2y2T11WYRg5j/C/D6v6ddu/Q=="}]},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_1.10.0-alpha.0_1546934935671_0.8247390827057477"},"_hasShrinkwrap":false},"1.10.0-alpha.1":{"name":"elint","version":"1.10.0-alpha.1","description":"A easy way to lint your code.","main":"src/index.js","bin":{"elint":"./bin/cli.js"},"scripts":{"test":"npm run test:lint && npm run test:unit:coverage && npm run test:system","test:lint":"eslint --format codeframe \"+(bin|src|test)/**/*.js\" \"scripts/postinstall\" --fix","test:unit":"mocha \"test/unit/**/*.spec.js\" --timeout 15000","test:unit:coverage":"nyc --reporter=html --reporter=text npm run test:unit && nyc report --reporter=text-lcov | coveralls","test:system":"node test/system/utils/init.js && ava \"test/system/**/*.spec.js\" --verbose --fail-fast && node test/system/utils/clean.js","postinstall":"node ./src/postinstall.js"},"repository":{"type":"git","url":"git+https://github.com/keenwon/elint.git"},"keywords":["eslint","eslintplugin","eslintconfig","stylelint","commitlint","standard","jshint","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","bugs":{"url":"https://github.com/keenwon/elint/issues"},"homepage":"https://github.com/keenwon/elint#readme","engines":{"node":">=6.0.0"},"dependencies":{"@commitlint/core":"^7.2.1","boxen":"^2.1.0","chalk":"^2.4.1","co":"^4.6.0","commander":"^2.19.0","configstore":"^4.0.0","debug":"^4.1.0","diff":"^3.5.0","eslint":"^5.10.0","execa":"^1.0.0","figures":"^2.0.0","find-process":"^1.2.1","fs-extra":"^7.0.1","globby":"^8.0.1","husky":"^1.3.0","is-npm":"^2.0.0","left-pad":"^1.3.0","lodash":"^4.17.11","md5":"^2.2.1","micromatch":"^3.1.10","ms":"^2.1.1","node-fetch":"^2.3.0","semver":"^5.6.0","semver-utils":"^1.1.4","staged-git-files":"^1.1.2","stylelint":"~9.6.0","supports-color":"^6.0.0","which":"^1.3.1","write-json-file":"^3.0.2"},"devDependencies":{"@commitlint/cli":"^7.2.1","ava":"^1.0.1","chai":"^4.2.0","chai-as-promised":"^7.1.1","coveralls":"^3.0.2","deep-equal-in-any-order":"^1.0.10","eslint-config-standard":"^12.0.0","eslint-plugin-import":"^2.14.0","eslint-plugin-node":"^8.0.0","eslint-plugin-promise":"^4.0.1","eslint-plugin-standard":"^4.0.0","mocha":"^5.2.0","nyc":"^13.1.0","sinon":"^7.2.2"},"readme":"# ELint\n\n[![Node engine][node-image]][node-url]\n[![NPM version][npm-image]][npm-url]\n[![License][license-image]][license-url]\n[![Coverage Status][coveralls-image]][coveralls-url]\n[![Dependencies Status][dependencies-image]][dependencies-url]\n[![Lgtm Alerts][lgtm-alerts-image]][lgtm-alerts-url]\n[![Lgtm Grade][lgtm-grade-image]][lgtm-grade-url]\n\n|Linux|macOS|Windows|\n|:--:|:--:|:--:|\n|[![Linux build status][circleci-image]][circleci-url]|[![macOS build status][travis-image]][travis-url]|[![Windows build status][azure-image]][azure-url]|\n\n专为团队设计的 lint 工具\n\n**目录**：\n\n<!-- TOC -->\n\n- [1. 核心概念](#1-核心概念)\n  - [1.1. ELint](#11-elint)\n  - [1.2. Preset](#12-preset)\n- [2. 使用指南](#2-使用指南)\n  - [2.1. 安装 elint](#21-安装-elint)\n  - [2.2. 编写 preset](#22-编写-preset)\n    - [2.2.1. 新建一个 npm package](#221-新建一个-npm-package)\n    - [2.2.2. 添加 eslint 配置文件（可选）](#222-添加-eslint-配置文件可选)\n    - [2.2.3. 添加 stylelint 配置文件（可选）](#223-添加-stylelint-配置文件可选)\n    - [2.2.4. 添加 commitlint 配置文件（可选）](#224-添加-commitlint-配置文件可选)\n    - [2.2.5. 添加 git hooks（可选）](#225-添加-git-hooks可选)\n    - [2.2.6. 发布 npm package](#226-发布-npm-package)\n  - [2.3. 安装 preset](#23-安装-preset)\n  - [2.4. 定义 npm scripts](#24-定义-npm-scripts)\n    - [2.4.1. npm test](#241-npm-test)\n    - [2.4.2. npm beforecommit](#242-npm-beforecommit)\n- [3. ELint CLI](#3-elint-cli)\n  - [3.1. lint](#31-lint)\n  - [3.2. hooks](#32-hooks)\n  - [3.3. version](#33-version)\n  - [3.4. install](#34-install)\n  - [3.5. diff](#35-diff)\n- [4. 细节 & 原理](#4-细节--原理)\n  - [4.1. 安装 & 初始化过程](#41-安装--初始化过程)\n  - [4.2. 执行过程](#42-执行过程)\n- [5. 常见问题](#5-常见问题)\n  - [5.1. cnpm, yarn](#51-cnpm-yarn)\n  - [5.2. 为什么不建议全局安装](#52-为什么不建议全局安装)\n  - [5.3. 安装失败](#53-安装失败)\n  - [5.4. git hooks 不执行或报错](#54-git-hooks-不执行或报错)\n  - [5.5. 配置文件是不是可以 git ignore](#55-配置文件是不是可以-git-ignore)\n  - [5.6. 是否可以安装多个 preset](#56-是否可以安装多个-preset)\n  - [5.7. 某些文件没有被校验到](#57-某些文件没有被校验到)\n  - [5.8. 为什么添加了 fix 选项还是有问题输出](#58-为什么添加了-fix-选项还是有问题输出)\n  - [5.9. 如何禁用颜色输出](#59-如何禁用颜色输出)\n  - [5.10. lint 执行失败，提示包缺失](#510-lint-执行失败提示包缺失)\n  - [5.11. fix 和 force-fix 的区别](#511-fix-和-force-fix-的区别)\n- [6. 参考](#6-参考)\n\n<!-- /TOC -->\n\n## 1. 核心概念\n\n在使用 elint 之前，需要先了解几个核心概念。\n\n### 1.1. ELint\n\nelint 是一款代码校验工具，基于 eslint、stylelint、commitlint 等工具封装而成。elint 本身不包含任何校验规则，校验规则通过 preset 定义。elint 的主要功能包括：\n\n- 支持对 js，css 的校验 (eslint, stylelint)。\n- 支持对 git commit message 的校验 (husky, commitlint)。\n- **编写**定制化、场景化的 preset，preset 包含所有验证规则，**保证团队内部校验规则的一致性和可复用**。\n\n### 1.2. Preset\n\n简单来说，preset 就是一个 npm package，可以理解为”规则集“。\n\n只有 elint 是不够的，因为它不知道具体的校验规则，而 preset 就是用来定义规则的。preset 大概长这样：\n\n```shell\nelint-preset-<name>\n├── .commitlintrc.js    # 定义 commitlint 规则，用于 git commit message 的校验\n├── .eslintignore       # 定义 eslint 忽略规则\n├── .eslintrc.js        # 定义 eslint 规则，用于 js 的校验\n├── .huskyrc.js         # 定义 git hooks, 可在 commit 前执行 commitlint 等操作\n├── node_modules\n├── package.json\n├── package-lock.json\n├── .stylelintignore    # 定义 stylelint 忽略规则\n└── .stylelintrc.js     # 定义 stylelint 的规则，用于 css 的校验\n```\n\n要求：\n\n1. npm package name 必须以 `elint-preset-` 开头，如： `elint-preset-<name>` 或 `@team/elint-preset-<name>`。\n2. linter 的配置文件名必须是 `.commitlintrc.js`, `.eslintrc.js`, `.stylelintrc.js`。\n3. 对于 eslint 和 stylelint，支持使用 `.eslintignore`, `.stylelintignore` 定义需要忽略校验的文件和文件夹。\n4. git hooks (使用 husky) 的配置文件名必须是 `.huskyrc.js`。\n5. 所有配置文件必须放在 preset 的根目录。\n6. 依赖的 linter plugin（例如 eslint-plugin-react），必须明确定义在 `package.json` 的 `dependencies` 中。\n\n满足以上要求的 npm package 就是一个合法的 elint preset。\n\n> 一般来说，不建议把 `.eslintignore`，`.stylelintignore` 添加到 preset 中，因为 preset 应该对所有项目都是适用的（除非你的 preset 限定在一个很小的范围内使用，各个项目的目录结构都是一致的，此时可以使用它们来定义需要忽略校验的文件和文件夹）。\n\n> 在 `package.json` 中添加关键字 `elint-preset` 会方便大家找到。[这里](https://npms.io/search?q=keywords%3Aelint-preset)可以查找现有的 preset。\n\n> eslint, stylelint, commitlint, husky 等配置文件的语法规则，请阅读[参考](#6-参考)一节提供的文档。\n\n## 2. 使用指南\n\n开始使用 elint 之前，请先检查下你使用 node 和 npm 版本。运行 elint 需要：\n\n- node：>= 6.0.0，建议尽量使用新版本。\n- npm：>= 3.8.6，同样建议使用新版本。另外部分版本有 bug，可能会导致安装失败，详情查看[常见问题](#53-安装失败)。\n\n下面我们一起从零开始，一步一步的看看如何将 elint 集成到项目中。\n\n### 2.1. 安装 elint\n\n首先要安装 elint：\n\n```shell\n# 假设项目是 test-project\ncd test-project\n\n# 安装 elint\nnpm install elint --save-dev\n```\n\n> 如果你使用 yarn，cnpm（包括基于 cnpm 创建的私有仓库） 等包管理工具，请参考\"[内部细节](#4-细节--原理)\"和\"[常见问题](#51-cnpm-yarn)\"章节，我们的示例中统一使用 npm。\n\n> 强烈**不建议**全局安装（具体原因，请阅读[常见问题](#52-为什么不建议全局安装)）。\n\n### 2.2. 编写 preset\n\n安装完 elint 后，我们需要安装 preset，因为所有的校验规则（rules）都定义在 preset 中。一般来说，一个团队应该有一套编码规范，根据编码规范编写好 preset 后，团队中的各个项目直接安装使用即可，不必为每个项目都新建一个 preset。\n\n> 在一个团队里，可能一个 preset 并不能适应全部场景，那么我们可以根据不同的场景定义多个 preset。例如 `@team/elint-preset-h5`, `@team/elint-preset-node` 等。要覆盖所有项目，并不需要多少 preset。\n\n这里我们假设团队还没有任何 preset，一起看下如何新建它：\n\n#### 2.2.1. 新建一个 npm package\n\n上文已经讲过了，preset 本质上还是一个 npm package，所以新建 preset 的第一步就是新建 npm package：\n\n```shell\n# 假设叫 elint-preset-test\nmkdir elint-preset-test\n\ncd elint-preset-test\n\n# 为了方便演示，全部使用默认值，实际项目中酌情修改\nnpm init -y\n```\n\n#### 2.2.2. 添加 eslint 配置文件（可选）\n\n> 这步是可选的，如果你不需要校验 js 文件，可以直接跳过（下同）\n\n首先新建配置文件，名称必须是 `.eslintrc.js`, 参考上文的 [preset 约定](#12-preset)：\n\n```shell\ntouch .eslintrc.js\n```\n\n`.eslintrc.js` 写入如下内容：\n\n```js\nmodule.exports = {\n  'extends': [\n    // 使用 plugin eslint-plugin-react\n    'plugin:react/recommended'\n  ],\n  'rules': {\n    // 禁止 console\n    'no-console': 2\n  }\n};\n```\n\n因为使用了 plugin `eslint-plugin-react`，所以必须使用 npm 安装，且保存到 `package.json` 的 `dependencies` 中（无论是从语义方面考虑，还是上文关于 preset 的约定，都应该保存到 `dependencies` 中）：\n\n```shell\nnpm install eslint-plugin-react --save\n```\n\n> 因为我们使用 elint 执行校验，而 elint 已经集成了 eslint，stylelint 等工具，所以这里不需要再安装了，只需安装额外的 plugin。\n\n#### 2.2.3. 添加 stylelint 配置文件（可选）\n\n此处省略，和 eslint 一样的做法。\n\n#### 2.2.4. 添加 commitlint 配置文件（可选）\n\n新建配置文件 `.commitlintrc.js`：\n\n```shell\ntouch .commitlintrc.js\n```\n\n`.commitlintrc.js` 写入如下内容：\n\n```js\nmodule.exports = {\n  rules: {\n    // type 不能为空\n    'type-empty': [2, 'never'],\n    // type 必须是 build 或 ci\n    'type-enum': [2, 'always', [\n      'build',\n      'ci'\n    ]]\n  }\n};\n```\n\n#### 2.2.5. 添加 git hooks（可选）\n\n新建配置文件 `.huskyrc.js`：\n\n```shell\ntouch .huskyrc.js\n```\n\n`.huskyrc.js` 写入如下内容\n\n```js\nmodule.exports = {\n  'hooks': {\n    /**\n     * beforecommit 可以在项目的 package.json 中自由定义\n     * 例如可以执行代码校验和 commitlint，或者都执行\n     */\n    'commit-msg': 'npm run beforecommit'\n  }\n}\n```\n\n> 这里配置 git hooks 执行 `npm run beforecommit`，所以你可以在项目中自由定义要执行的操作（下面会详细解释）。\n\n> **注意**：\n>\n> 可能你会觉得，命名为 `precommit` 比 `beforecommit` 更合适。没错，单纯从命名的角度讲，`precommit` 确实更好。但这会与 husky 的规则产生冲突。旧版本的 husky 支持在 package.json 的 scripts 中定义 git hooks。\n\n#### 2.2.6. 发布 npm package\n\n此时项目的目录结构应该是：\n\n```shell\nelint-preset-test\n├── .commitlintrc.js\n├── .eslintrc.js\n├── .huskyrc.js\n├── node_modules\n├── package.json\n└── package-lock.json\n\n1 directory, 5 files\n```\n\n发布 npm package，执行：\n\n```shell\nnpm publish\n```\n> 如果希望更多人发现你的 preset，可以添加关键字 `elint-preset`，[点击此处](https://npms.io/search?q=keywords%3Aelint-preset)可以查看现有可用的 preset。\n\n### 2.3. 安装 preset\n\n刚刚我们已经编写并发布了 preset，现在安装到项目中就好了：\n\n```shell\ncd test-project\n\n# 安装我们刚才新建的 elint-preset-test\nnpm install elint-preset-test --save-dev\n```\n\n安装完成后，你会发现刚才定义在 preset 中的各种配置文件（`.eslintrc.js` 等），都拷贝到了项目的根目录，这是为了兼容各种 IDE 和 build 工具（如 webpack），elint 与他们是可以共存的。\n\n### 2.4. 定义 npm scripts\n\n#### 2.4.1. npm test\n\n按照常规套路，需要在 `package.json` 中定义 `npm test`，如果项目只有 lint，可以这样写：\n\n```json\n{\n  \"scripts\": {\n    \"test\": \"elint lint 'src/**/*.js' 'src/**/*.css'\"\n  }\n}\n```\n\n如果除了 lint 还有其他测试，可以这样写：\n\n```json\n{\n  \"scripts\": {\n    \"test\": \"npm run test:lint && npm run test:other\",\n    \"test:lint\": \"elint lint 'src/**/*.js' 'src/**/*.css'\",\n    \"test:other\": \"...\"\n  }\n}\n```\n\n> 注意: glob 最好加上引号，详见 [ELint CLI](#31-lint)\n\n#### 2.4.2. npm beforecommit\n\n刚才编写 preset 的时候，定义了在 commit 前执行 `npm run beforecommit`，所以我们必须定义好 beforecommit，否则会**报错**：\n\n```json\n{\n  \"scripts\": {\n    \"beforecommit\": \"npm run test:lint && elint lint commit\",\n    \"test\": \"npm run test:lint && npm run test:other\",\n    \"test:lint\": \"elint lint 'src/**/*.js' 'src/**/*.css'\",\n    \"test:other\": \"...\"\n  }\n}\n```\n\n按照上面的写法，commit 之前会执行校验代码和 commit message。至此，elint 已经成功添加到项目中，执行 `npm test` 会校验代码，在 commit 前会校验代码和 commit message\n\n> 万一（虽然不建议）你在 commit 之前什么都不想执行，为了不报错，也要写 `exit 0`。\n\n> 当 lint 运行在 git hooks 中时，文件的范围限定在 **git 暂存区**，也就是你将要提交的文件（详见 [ELint CLI](#31-lint)）。\n\n## 3. ELint CLI\n\n因为我们不推荐全局安装，除了在 npm scripts 和 `.huskyrc.js` 中使用，下面的 `elint` 均代指 `./node_modules/.bin/elint`（或者也可以使用 npm 5.2.0 起内置的 [npx](https://github.com/zkat/npx) 命令）：\n\n### 3.1. lint\n\n`lint` 命令用来执行代码校验和 git commit message 校验。当 lint 运行在 git hooks 中时，文件的搜索范围限定在 **git 暂存区**，也就是只从你将要 commit 的文件中，找到需要校验的文件，执行校验。\n\n```shell\nelint lint [options] [type] [files...]\n```\n\ntype 可选的值：\n\n- es: 执行 eslint\n- style: 执行 stylelint\n- commit: 执行 commitlint\n\n如果不指定 type，默认执行 eslint 和 stylelint\n\noptions 可选的值：\n\n- -f, --fix: 自动修复，git hooks 中无效，[为什么这么做？](#511-fix-和-force-fix-的区别)\n- -ff, --force-fix: 强制自动修复，git hooks 中依然有效\n- --no-ignore: 忽略 elint 遍历文件时的默认忽略规则\n\n当添加 `--fix` 或者 `--force-fix` 时，会尝试自动修复问题，无法自动修复的问题依旧会输出出来。\n\n例子：\n\n```shell\n# 校验 js 和 scss\n$ elint lint \"**/*.js\" \"**/*.scss\"\n\n# 校验 js 和 scss，执行自动修复\n$ elint lint \"**/*.js\" \"**/*.scss\" --fix\n\n# 校验 js\n$ elint lint \"**/*.js\"\n$ elint lint es \"**/*.js\"\n\n# 校验 less\n$ elint lint \"**/*.less\"\n$ elint lint style \"**/*.js\"\n\n# 校验 commit message\n$ elint lint commit\n```\n\n**注意**:\n\n当你在 Terminal（或者 npm scripts） 中运行 `elint lint **/*.js` 的时候，glob 会被 Terminal 解析，然后输入给 elint。glob 语法解析的差异可能会导致文件匹配的差异。所以建议，glob 使用引号包裹，防止在输入到 elint 前，被意外解析。\n\n### 3.2. hooks\n\n`hooks` 命令用来安装 & 卸载 git hooks（一般不会用到）：\n\n```shell\nelint hooks [action]\n```\n\n支持的 action：\n\n- install: 安装\n- uninstall: 卸载\n\n例子：\n\n```shell\n$ elint hooks install\n$ elint hooks uninstall\n```\n\n### 3.3. version\n\n输出版本信息\n\n```shell\n$ elint -v\n> elint version\n\n  elint             : 1.2.0-rc.1\n  elint-preset-test : 1.0.15\n\n  Dependencies:\n    eslint     : 4.19.1\n    stylelint  : 9.2.1\n    commitlint : 7.0.0\n    husky      : 1.0.0-rc.8\n```\n\n### 3.4. install\n\n前面讲到的 preset 安装，都是直接执行 `npm install`。其实除了这种方式，还可以直接使用 `elint install` 命令安装：\n\n```shell\nelint install [presetName] [options]\n```\n\n`presetName` 可以忽略 `elint-preset-` 前缀。\n\n支持的 options:\n\n- --registry: 指定 npm 仓库地址，可以输入 url 或者 alias。支持如下的 alias：\n  - npm: [https://registry.npmjs.org/](https://registry.npmjs.org/)\n  - cnpm: [http://r.cnpmjs.org/](http://r.cnpmjs.org/)\n  - taobao: [https://registry.npm.taobao.org/](https://registry.npm.taobao.org/)\n  - nj: [https://registry.nodejitsu.com/](https://registry.nodejitsu.com/)\n  - rednpm: [http://registry.mirror.cqupt.edu.cn](http://registry.mirror.cqupt.edu.cn)\n  - skimdb: [https://skimdb.npmjs.com/registry](https://skimdb.npmjs.com/registry)\n- --keep: 不覆盖旧的配置文件（文件完全一样肯定是不会覆盖的，keep 选项只在有文件有差异时生效）\n\n例子：\n\n```shell\n# 安装 elint-preset-test\n$ elint install test\n\n# 从 cnpm 安装 elint-preset-test\n$ elint install test --registry=https://registry.npm.taobao.org/\n\n# 从 cnpm 安装 elint-preset-test, 使用 alias\n$ elint install test --registry=cnpm\n```\n\n这两种安装方式的最大区别就是：\"否将 preset 视为项目的依赖\"：\n\n|安装方式|区别|\n|:--|:--|\n|`npm install`|把 preset 当成依赖，执行 `npm install` 时，项目根目录的配置文件都可能被更新|\n|`elint install`|把 preset 当成配置源，更新时需要再次执行 `elint install`|\n\n除了上面列举的区别外，`elint install` 无视 cnpm，yarn 的限制，如果你十分依赖 cnpm，yarn 时，可以考虑使用 `elint install` 来安装，但要留意保持 preset 的最新。\n\n没有主推这种方式的原因在于，**elint 的设计初衷就是统一团队规范，规范一旦制定，需要严格执行**。`npm install` 会自动更新并覆盖项目根目录的配置文件，一定程度上避免了随意修改配置文件带来的（不同项目之间）校验规则不统一。另外一点就是由于不推荐全局安装 elint，所以 elint 命令需要用 `./node_modules/.bin/elint` 执行，略显麻烦。\n\n### 3.5. diff\n\n万一你使用了 `elint install`，万一你加了 `keep`，万一你没有趁手的 diff 工具，可以尝试：\n\n```shell\n$ elint diff\n```\n\n输出类似：\n\n```diff\n -------------------------------------------------\n diff .eslintrc.js .eslintrc.old.js\n -------------------------------------------------\n  2 |   'extends': [\n  3 |     'plugin:react/recommended'\n  4 |   ],\n  5 |   'rules': {\n-   |     'no-console': 0\n+ 6 |     'no-console': 2\n  7 |   }\n  8 | };\n```\n\n## 4. 细节 & 原理\n\n作为一个项目的维护者，当你将 elint 集成到你的项目中时，了解一些细节会非常有帮助。\n\n### 4.1. 安装 & 初始化过程\n\n如果你编写好了用于自己团队的 preset，并且按照前面介绍的安装方式安装完成，你会发现，elint 将所有的配置文件从 preset 复制到了项目的根目录，这么做的目的是为了兼容在 IDE、build 工具中使用 lint。所以使用 elint 的同时，你仍然可以按照原来的方式，配置你的 IDE，webpack 等，他们与 elint 完全不冲突。\n\n具体的 preset 初始化过程（install 后自动执行），分为如下两步：\n\n1. 将配置文件 (`.eslintrc.js` 等) 复制到项目的根目录。\n2. 安装 preset 的 `dependencies`，并保存到项目的 `devDependencies` 中。\n\n安装（并初始化）完成后，可以根据你的项目的实际情况，添加 npm scripts，例如 test 时执行 `elint lint '**/*.js' '**/*.less'`\n\n无论是先安装 elint，还是先安装 preset，亦或者同时安装，elint 都能准确的感知到 preset 的存在，并完成所有初始化操作。这项功能主要借助于 [npm hook scripts](https://docs.npmjs.com/misc/scripts#hook-scripts)，这也是当你使用 cnpm 时需要格外注意的原因（解决办法参考下面的[常见问题](#51-cnpm-yarn)）。\n\n### 4.2. 执行过程\n\n执行过程比较简单，对代码的 lint 的过程可以概括为一句话：“elint 根据你输入的 glob，收集并整理文件，交由 eslint、stylelint 执行，然后将结果输出至命令行展示”。\n\n对 git commit 信息的 lint，主要借助于 husky 和 commitlint。安装过程中，会自动添加 git hooks，当 hooks 触发时，执行配置在 `.huskyrc.js` 中的相应命令，就这么简单。\n\n> 执行 commit lint 时，git hook 可以选择 `commit-msg`。\n\n> 因为 git hooks 的注册是在 npm install 后自动执行的，所以，如果万一你的项目还未 git init，hooks 注册必然是失败的。解决办法是在 git init 之后，手动执行 `./node_modules/.bin/elint hooks install`。\n\n## 5. 常见问题\n\n### 5.1. cnpm, yarn\n\n使用 cnpm 的目的无外乎两点：解决网络问题、私有仓库。但问题是 cnpm 的私有实现不支持给 elint 带来极大便利的 [npm hook scripts](https://docs.npmjs.com/misc/scripts#hook-scripts)。所以我们只能放弃 `cnpm` 命令，仅使用它的仓库。\n\n如果你只是单纯想从 cnpm 的仓库安装 npm package，提高安装速度。可以删除 `cnpm`，然后定义 alias:\n\n```shell\n$ alias cnpm='npm --registry=https://registry.npm.taobao.org/ \\\n  --registryweb=https://npm.taobao.org/ \\\n  --userconfig=$HOME/.cnpmrc'\n```\n\n如果你需要使用私有仓库，同样可以删除 `cnpm`，然后定义自己的命令:\n\n```shell\n$ alias mynpm='npm --registry=http://registry.npm.example.com \\\n  --registryweb=http://npm.example.com \\\n  --userconfig=$HOME/.mynpmrc'\n```\n\n关于 yarn，很可惜，目前不支持\n\n> 上面的 `alias` 命令只是临时修改，终端关闭即实现，永久添加请修改 `.bashrc` 或 `.zshrc`。\n\n### 5.2. 为什么不建议全局安装\n\nelint 强依赖 stylelint, eslint 等工具。而对于 eslint，其文档中写到:\n\n> Any plugins or shareable configs that you use must also be installed globally to work with a globally-installed ESLint.\n\n全局安装 lint 工具和所有的 plugin，项目数量较多时容易引起混乱，且可能对 ci、部署等带来麻烦。\n\n### 5.3. 安装失败\n\n可能是 npm 的 [bug](https://github.com/npm/npm-lifecycle/pull/13) 引起的。如果你的 npm 版本在 5.1.0 ～ 6.1.0 之间，请升级至最新版本的 npm。\n\nelint 安装过程中会检测 npm 版本，具体以检测结果为准。\n\n> windows 升级 npm 请参考：[How can I update npm on Windows?](https://stackoverflow.com/questions/18412129/how-can-i-update-npm-on-windows)\n\n### 5.4. git hooks 不执行或报错\n\n如果 git hooks 不执行或者报错，尝试下面的方法:\n\n- 项目处于 git 管理的前提下，执行 `npm install` 安装依赖。\n- 如果你在新建项目，先执行 `npm install`，然后执行 `git init` 的话，手动注册 git hooks（上文的 hooks 命令）。\n- 检查 `.git/hooks` 目录，是否存在非 `.sample` 结尾的文件，如果不存在，手动注册 git hooks。\n- 还是有问题？报 bug。\n\n### 5.5. 配置文件是不是可以 git ignore\n\n如果你能想到这个问题，那么说明你真的理解了 elint 的运作方式。忽略配置文件，防止意外被修改，所有团队成员使用 preset 定义的配置，听起来非常不错。那么从 preset 复制到项目中的各种配置文件，是否可以添加到 `.gitignore` 呢？这要看你的使用场景：\n\n- 如果代码提交到 git 仓库，执行 ci 的过程中会安装依赖。\n- 如果部署项目时，build 过程中不再执行 lint，或者先安装依赖，然后再执行 build。\n\n总之，只要执行 `npm install` 安装依赖，配置文件就会自动添加到项目里；只要你能保证需要用到配置文件的时候它存在（例如你在 webpack 里用了 eslint-loader），就可以忽略它。\n\n再次强调，elint 的设计原则是保证团队规范的严格执行，如果你觉得规则有问题，那么应该提出并推动修改 preset，而不是直接改项目里的配置。\n\n### 5.6. 是否可以安装多个 preset\n\n不可以。安装过程中，如果两个 preset 存在相同的配置文件，后安装会覆盖之前的。如果 package.json 中的依赖包含多个 preset，先后顺序由 npm 决定。\n\n### 5.7. 某些文件没有被校验到\n\n1. 检查你的 glob 写法是否有问题。\n2. 可能是 glob 被传入 elint 之前就被意外解析了，参考 [lint 命令](#31-lint)。\n3. windows 7 + git bash 下测试时发现，npm scripts 里，glob 必须使用双引号包裹\n\n```json\n{\n  \"scripts\": {\n    \"test:lint\": \"elint lint \\\"src/**/*.js\\\"\"\n  }\n}\n```\n\n4. elint 在遍历文件时，会应用一些默认的忽略规则，如果你的文件刚好命中这些规则，可以使用 `--no-ignore` 选项。\n\n```js\nconst defaultIgnore = [\n  '**/node_modules/**',\n  '**/bower_components/**',\n  '**/flow-typed/**',\n  '**/.nyc_output/**',\n  '**/coverage/**',\n  '**/.git',\n  '**/*.min.js',\n  '**/*.min.css'\n];\n\n// 除此之外还有 .gitignore 定义的忽略规则\n```\n\n### 5.8. 为什么添加了 fix 选项还是有问题输出\n\n并不是所有规则都支持自动修复，具体可以查看 [eslint rules](https://eslint.org/docs/rules/) 和 [stylelint rules](https://stylelint.io/user-guide/rules/)，可以自动修复的规则都有标识。\n\n### 5.9. 如何禁用颜色输出\n\n设置环境变量 `FORCE_COLOR` 为 `0` 即可，例如：\n\n```shell\n$ FORCE_COLOR=0 elint lint \"src/**/*.js\"\n```\n\n### 5.10. lint 执行失败，提示包缺失\n\n如果遇到如下错误，特别在 CI 环境下。可能是 `package-lock.json` 引起的。\n\n```shell\nError: Cannot find module 'eslint-config-xxx'\n```\n\n请按照如下步骤尝试修复：\n\n1. 删除 `node_modules` 和 `package-lock.json`。\n2. 查看 `package.json` 文件，使用 elint 时只需安装 elint 和 preset，清理掉遗留的 eslint 等依赖。\n3. 重新执行 `npm install`\n\n### 5.11. fix 和 force-fix 的区别\n\n`--fix` 非常好用，可以自动修改大量问题。但是，当在 git hooks 中使用时会有点小问题：git commit 时执行 fix，某些文件被修改，因此文件状态变为 modified，并且未被提交。此时不得不再次提交被 fix 过的文件，这通常与我们的预期不符。\n\n为了降低上述情景带来的意外影响，`--fix` 在 git hooks 模式下不生效，同时新增了任何时候都会生效的 `--force-fix`。\n\n建议使用 `--fix`，提交时如果代码有问题，直接报错打断，修复后再重新提交。\n\n## 6. 参考\n\n- eslint: [Github](https://github.com/eslint/eslint) | [文档](http://eslint.org)\n- stylelint: [Github](https://github.com/stylelint/stylelint) | [文档](https://stylelint.io)\n- commitlint: [Github](https://github.com/marionebl/commitlint) | [文档](http://marionebl.github.io/commitlint/#/)\n- husky: [Github](https://github.com/typicode/husky)\n- git hooks: [文档](https://git-scm.com/docs/githooks)\n- glob primer: [文档](https://github.com/isaacs/node-glob#glob-primer)\n\n[node-image]: https://img.shields.io/node/v/elint.svg?maxAge=3600\n[node-url]: https://nodejs.org\n[npm-image]: https://badge.fury.io/js/elint.svg\n[npm-url]: https://www.npmjs.com/package/elint\n[license-image]: https://img.shields.io/github/license/keenwon/elint.svg?maxAge=3600\n[license-url]: https://github.com/keenwon/elint/blob/master/LICENSE\n[circleci-image]: https://circleci.com/gh/keenwon/elint.svg?style=svg\n[circleci-url]: https://circleci.com/gh/keenwon/elint\n[travis-image]: https://api.travis-ci.org/keenwon/elint.svg?branch=master\n[travis-url]: https://travis-ci.org/keenwon/elint\n[azure-image]: https://dev.azure.com/keenwon/github/_apis/build/status/elint?branchName=master\n[azure-url]: https://dev.azure.com/keenwon/github/_build/latest?definitionId=1\n[coveralls-image]: https://coveralls.io/repos/github/keenwon/elint/badge.svg?branch=master\n[coveralls-url]: https://coveralls.io/github/keenwon/elint?branch=master\n[dependencies-image]: https://david-dm.org/keenwon/elint.svg\n[dependencies-url]: https://david-dm.org/keenwon/elint\n[devdependencies-image]: https://david-dm.org/keenwon/elint/dev-status.svg\n[devdependencies-url]: https://david-dm.org/keenwon/elint?type=dev\n[lgtm-alerts-image]: https://img.shields.io/lgtm/alerts/g/keenwon/elint.svg?logo=lgtm&logoWidth=18&maxAge=3600\n[lgtm-alerts-url]: https://lgtm.com/projects/g/keenwon/elint/alerts/\n[lgtm-grade-image]: https://img.shields.io/lgtm/grade/javascript/g/keenwon/elint.svg?logo=lgtm&logoWidth=18&maxAge=3600\n[lgtm-grade-url]: https://lgtm.com/projects/g/keenwon/elint/context:javascript\n","readmeFilename":"README.md","gitHead":"f573094700cdf76b7382a8267be61ce0546ce4e6","_id":"elint@1.10.0-alpha.1","_npmVersion":"6.4.1","_nodeVersion":"10.10.0","_npmUser":{"name":"keenwon","email":"semanwmj@gmail.com"},"dist":{"integrity":"sha512-R7aqahaxlKj7rqPIvBKwRw1xQ0q+oKgy1OVtUVZDqwHIwgycbJFqsQkejKZS6R/nlRzZ/MFiMEH8xItgoOW38Q==","shasum":"8dfd05d8d31041aea3e2e11af178ebab6d095b17","tarball":"https://registry.npmjs.org/elint/-/elint-1.10.0-alpha.1.tgz","fileCount":51,"unpackedSize":91391,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcNKBkCRA9TVsSAnZWagAAP0gP/1guEff4dDu4V4QmrodM\nXCpzYlrRWQXVIhTfUJXYHYRiXnB/pW/nJEpD3JGnNGWGxroruno//4d6L4+T\nNOiAdBW+aJuvnDRiv9iBeWPut2TxBnOynWZklaPEy0b/jBYHQyPFtCmuLG0d\n+BTYnl3pNGmA/gFpOm0ELFnG0DlzjJ9aYBYWbRteM6MpD/oVuT5WCA/zmNbV\nM1y+8M45WKHJxjSgrMXi7Py/oiCXnUBUHgJty7aEPrYkFnAx04ZeNcBLFTp1\nOxqL3W1YYPqZbXfx3TE9PE3WR1S8tm2WcmNbSMb2U3qF6nCz8lGfAM5Gt5kF\nGcav062kRog+7+WwZjsLZIhTaRnzUd7ZfZ0aauc3ZdicWGV7nn3wZxMy6uNz\nnreFyAoXN4DC6QF9BbnOXt632lFfJoUr2ttBer7WmX/JBWfQqMBc5zyBjE9b\nu9TiEG0xWSS9TASVoTXuZstG+yQzPTVvxCp67QilBCU/VoG3dPgqfK934tq0\nqLMBX03JsCSC71JUd6QGo+A9niuUYKcvdXgWR3ZavkBBRaMmfzRAfdRwl/9r\nzUE9CMCe3+BpjFybtz9/gc4W75s2ph/maE/haC53vKkBpGHgpcgdj6HSQ/5P\npr3dT7K78/CCwgVtGCuakoiQ6PHp+nFR0jwFVlpjmp0AGwrl8cw4pEyXsKlM\niQs2\r\n=Oik+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIALXIF53DscxThOpT2XKAGjAZExOIM6G9E2D+70gxLP3AiAH3r0PEzNZTCxcD8rfn69jnJn5O1LZBc8YZk4iXMsOtQ=="}]},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_1.10.0-alpha.1_1546952804062_0.2551956632716159"},"_hasShrinkwrap":false},"1.10.0":{"name":"elint","version":"1.10.0","description":"A easy way to lint your code.","main":"src/index.js","bin":{"elint":"./bin/cli.js"},"scripts":{"test":"npm run test:lint && npm run test:unit:coverage && npm run test:system","test:lint":"eslint --format codeframe \"+(bin|src|test)/**/*.js\" \"scripts/postinstall\" --fix","test:unit":"mocha \"test/unit/**/*.spec.js\" --timeout 15000","test:unit:coverage":"nyc --reporter=html --reporter=text npm run test:unit && nyc report --reporter=text-lcov | coveralls","test:system":"node test/system/utils/init.js && ava \"test/system/**/*.spec.js\" --verbose --fail-fast && node test/system/utils/clean.js","postinstall":"node ./src/postinstall.js"},"repository":{"type":"git","url":"git+https://github.com/keenwon/elint.git"},"keywords":["eslint","eslintplugin","eslintconfig","stylelint","commitlint","standard","jshint","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","bugs":{"url":"https://github.com/keenwon/elint/issues"},"homepage":"https://github.com/keenwon/elint#readme","engines":{"node":">=6.0.0"},"dependencies":{"@commitlint/core":"^7.3.2","boxen":"^2.1.0","chalk":"^2.4.2","co":"^4.6.0","commander":"^2.19.0","configstore":"^4.0.0","debug":"^4.1.1","diff":"^4.0.1","eslint":"^5.12.1","execa":"^1.0.0","figures":"^2.0.0","find-process":"^1.2.1","fs-extra":"^7.0.1","globby":"^9.0.0","husky":"^1.3.0","is-npm":"^2.0.0","left-pad":"^1.3.0","lodash":"^4.17.11","md5":"^2.2.1","micromatch":"^3.1.10","ms":"^2.1.1","node-fetch":"^2.3.0","semver":"^5.6.0","semver-utils":"^1.1.4","staged-git-files":"^1.1.2","stylelint":"~9.6.0","which":"^1.3.1","write-json-file":"^3.0.2"},"devDependencies":{"@commitlint/cli":"^7.3.2","ava":"^1.2.0","chai":"^4.2.0","chai-as-promised":"^7.1.1","coveralls":"^3.0.2","deep-equal-in-any-order":"^1.0.10","eslint-config-standard":"^12.0.0","eslint-plugin-import":"^2.15.0","eslint-plugin-node":"^8.0.1","eslint-plugin-promise":"^4.0.1","eslint-plugin-standard":"^4.0.0","mocha":"^5.2.0","nyc":"^13.1.0","sinon":"^7.2.3"},"gitHead":"65f1e6aecf023161781a8c3f78693b1b55d1cdd3","_id":"elint@1.10.0","_npmVersion":"6.5.0","_nodeVersion":"11.8.0","_npmUser":{"name":"keenwon","email":"semanwmj@gmail.com"},"dist":{"integrity":"sha512-2tw/po8l3IMwrVOrvVelPGc+XREwTawd2RE4FD71XK156J7gxXF2Yt/lkt9wecqdy5yG0nVskVGeI8AnD7ErIQ==","shasum":"5216261f9fa6433ca98d1ba675b211751b2f4698","tarball":"https://registry.npmjs.org/elint/-/elint-1.10.0.tgz","fileCount":51,"unpackedSize":92134,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcTru8CRA9TVsSAnZWagAAt4MP+wSCNTr8PhQBfxRucNhL\n9MwkhVXWESaHpyS5f6SQdVKTTBdqJ2MUeuaiyFDMZQn1Afaex9jt4bccQCTi\ngC/4ljhXOac4L78eqSIXyEqck5BNbiTnip2utQqZMwNCTpzt04n3T5EGRnr9\nwFMtvpJP/pSAsykzI19dRsvw13apBzymc3UTzkUAgw0ZZht/pDql059jBDvj\nN3p3iRZ8otb1quRRwvuF6pTtXuWxopxv39LP5O4Zb8lLmI98trG8NMPUqY/S\no4u+Hk2FpWVCiyCd2du75Vl9bYFIE3MLGT9GnouMkIPDFPgiLyAyr8b3xHGL\nx79JixLO93F8F4Y6nO7Sga97vIvJWVZBQl7LPQJF/v4KDRwEcVt6jJkKeLyT\nc3JP4ak9C3HHDvBk0FjC5Tg2XBwFFXH+NGRVI2dkEX2ur0IkXMW96OFK3NcJ\noMJAgH2jNRoUpjjRqsB6jTfd1wm7uClKdn5OTiBrUyx9OD1tBGjn6GExOqRd\nDHzXWImrxvWUkjGPMEI9yrhEiJ5JMXv/cyxe21SRkV3f/GRWlfa95dVOo537\njCAdQIQhAf89BuNzb7NGUaSZyKmREtytR/OZyFqEqKJOO4tTPjIYjE7uViH7\ngdjty+Ny5Ql+1OcKUa9p7sWMzZmYvbU+A7oHuJeNWuyBlE52gyNhWuy/kxTM\nQNiC\r\n=SxwO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCeJvIavyO01KILoN5+begAUdG7sJF5ltLJu5J+Vv81QgIgfCnttVBruVBFC5ZlyCFWyhcw1GbIemL3aLhd0ORjuBM="}]},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_1.10.0_1548663739605_0.41496883459213585"},"_hasShrinkwrap":false},"1.11.0":{"name":"elint","version":"1.11.0","description":"A easy way to lint your code.","main":"src/index.js","bin":{"elint":"./bin/cli.js"},"scripts":{"test":"npm run test:lint && npm run test:unit:coverage && npm run test:system","test:lint":"eslint --format codeframe \"+(bin|src|test)/**/*.js\" \"scripts/postinstall\" --fix","test:unit":"mocha \"test/unit/**/*.spec.js\" --timeout 15000","test:unit:coverage":"nyc --reporter=html --reporter=text npm run test:unit && nyc report --reporter=text-lcov | coveralls","test:system":"node test/system/utils/init.js && ava \"test/system/**/*.spec.js\" --verbose --fail-fast && node test/system/utils/clean.js","postinstall":"node ./src/postinstall.js"},"repository":{"type":"git","url":"git+https://github.com/keenwon/elint.git"},"keywords":["eslint","eslintplugin","eslintconfig","stylelint","commitlint","standard","jshint","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","bugs":{"url":"https://github.com/keenwon/elint/issues"},"homepage":"https://github.com/keenwon/elint#readme","engines":{"node":">=6.0.0"},"dependencies":{"@commitlint/core":"^7.3.2","boxen":"^3.0.0","chalk":"^2.4.2","co":"^4.6.0","commander":"^2.19.0","configstore":"^4.0.0","debug":"^4.1.1","diff":"^4.0.1","eslint":"^5.14.1","execa":"^1.0.0","figures":"^2.0.0","find-process":"^1.2.1","fs-extra":"^7.0.1","globby":"^9.0.0","husky":"^1.3.0","is-npm":"^2.0.0","left-pad":"^1.3.0","lodash":"^4.17.11","md5":"^2.2.1","micromatch":"^3.1.10","ms":"^2.1.1","node-fetch":"^2.3.0","semver":"^5.6.0","semver-utils":"^1.1.4","staged-git-files":"^1.1.2","stylelint":"~9.6.0","which":"^1.3.1","write-json-file":"^3.0.2"},"devDependencies":{"@commitlint/cli":"^7.3.2","ava":"^1.2.0","chai":"^4.2.0","chai-as-promised":"^7.1.1","coveralls":"^3.0.2","deep-equal-in-any-order":"^1.0.10","eslint-config-standard":"^12.0.0","eslint-plugin-import":"^2.15.0","eslint-plugin-node":"^8.0.1","eslint-plugin-promise":"^4.0.1","eslint-plugin-standard":"^4.0.0","mocha":"^6.0.1","nyc":"^13.1.0","sinon":"^7.2.3"},"gitHead":"01991bea026ef8f5fad09eea73807d0ace4a94c5","_id":"elint@1.11.0","_npmVersion":"6.5.0","_nodeVersion":"11.8.0","_npmUser":{"name":"keenwon","email":"semanwmj@gmail.com"},"dist":{"integrity":"sha512-Nt3rT+ZluBLS1bd7e5QOGkl4m+2LLxOs6KRO3cIU7I7slENiaaI+R3ZA9tjBhqPlvCcBx9f2MYdmHVEvULfNAg==","shasum":"10997d48b7c5ddc6817dd4e2ff0f540bd926d861","tarball":"https://registry.npmjs.org/elint/-/elint-1.11.0.tgz","fileCount":51,"unpackedSize":92373,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcb+2ECRA9TVsSAnZWagAAlI8P/1tXDpxwSaVNKNv0lGo5\nobBJvAv6/vj4g/RFHo8susr4PjCx9gz0bqguN9C+vm3JtlTEV36UtXIp72vM\nkSSiLLoPbaZ2KtCHj2HOBKHmZj3TKNJN9yhvCE2iPvzKBLP3lw5Nfy+G0bBC\nctSjkvvf8rs+Fk1mC3gSb8n4W/LKvFXMlLu7zWzfdYMWcblnsd34WeD1BpIo\n2XUIDEhn/WJJ0YeXMBZS6Wj4+zZ7m1s3bgMmLjRfStMIsbGN8uupmrefpyed\nfkgpy6G2CcOBtqwi1E4kdWK6YkJbV3WgFWuJUTQylhZd0rXKTWLpYmhvPy5D\n0BZZeDlnz53Fc2ISt38/H1ZA1Z6+5xOxTKcxeAL2qlR64NONCKDqZBXMXrJi\nOJAzfUtz/JoVhewblcXcnO25lt2ShsBCpMQzLYQS3/N31OVSeFqjFDJE2240\nkgIR/sOmkv4zeXjeVhwcbkeZdYJyRBI6pFW0h6fLd7u4/pYtIRe+PYmWTJZm\n+63TS/B80w/vt2kKeQLiQEVU/HOdk6vxTSO224//wG5gaA+nCNI8rulkb9CZ\n0aw7x3e9gvWgChZ5Rwl+C6Pnej8gpppPQx1kfrSg/cTCWUFZhnpFwfZ4FnBc\n55e94jFKFCerm2rmaZxjx6XhshxVT6KLsTvnxsRq6kBgGeaVwOnjeZv9odht\nl/az\r\n=jVU6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC4Fufpk/L0O0VSntSTjHJ/5g5RBODa7gF43OZVY2XVlAIgDdAkjWqS2QC9F52XE++I3DxfLpLDfgFZx6O1/34DSPc="}]},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_1.11.0_1550839171666_0.4554748262378052"},"_hasShrinkwrap":false},"1.11.1":{"name":"elint","version":"1.11.1","description":"A easy way to lint your code.","main":"src/index.js","bin":{"elint":"./bin/cli.js"},"scripts":{"test":"npm run test:lint && npm run test:unit:coverage && npm run test:system","test:lint":"eslint --format codeframe \"+(bin|src|test)/**/*.js\" \"scripts/postinstall\" --fix","test:unit":"mocha \"test/unit/**/*.spec.js\" --timeout 15000","test:unit:coverage":"nyc --reporter=html --reporter=text npm run test:unit && nyc report --reporter=text-lcov | coveralls","test:system":"node test/system/utils/init.js && ava \"test/system/**/*.spec.js\" --verbose --fail-fast && node test/system/utils/clean.js","postinstall":"node ./src/postinstall.js"},"repository":{"type":"git","url":"git+https://github.com/keenwon/elint.git"},"keywords":["eslint","eslintplugin","eslintconfig","stylelint","commitlint","standard","jshint","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","bugs":{"url":"https://github.com/keenwon/elint/issues"},"homepage":"https://github.com/keenwon/elint#readme","engines":{"node":">=6.0.0"},"dependencies":{"@commitlint/core":"^7.5.2","boxen":"^3.2.0","chalk":"^2.4.2","co":"^4.6.0","commander":"^2.20.0","configstore":"^4.0.0","debug":"^4.1.1","diff":"^4.0.1","eslint":"^5.16.0","execa":"^1.0.0","figures":"^2.0.0","find-process":"^1.4.1","fs-extra":"^7.0.1","globby":"^9.2.0","husky":"^1.3.1","left-pad":"^1.3.0","lodash":"^4.17.11","md5":"^2.2.1","micromatch":"^3.1.10","ms":"^2.1.1","node-fetch":"^2.5.0","semver":"^6.0.0","semver-utils":"^1.1.4","staged-git-files":"^1.1.2","stylelint":"~9.6.0","which":"^1.3.1","write-json-file":"^3.2.0"},"devDependencies":{"@commitlint/cli":"^7.5.2","ava":"^1.4.1","chai":"^4.2.0","chai-as-promised":"^7.1.1","coveralls":"^3.0.3","deep-equal-in-any-order":"^1.0.13","eslint-config-standard":"^12.0.0","eslint-plugin-import":"^2.17.2","eslint-plugin-node":"^8.0.1","eslint-plugin-promise":"^4.1.1","eslint-plugin-standard":"^4.0.0","mocha":"^6.1.4","nyc":"^14.1.0","sinon":"^7.3.2"},"gitHead":"7bdb0c1a023dcbf305b2752e21f5cadec1fdd64d","_id":"elint@1.11.1","_nodeVersion":"11.12.0","_npmVersion":"6.7.0","dist":{"integrity":"sha512-v4BiFMbnAxhuCrC52JHmdVwjodGXj4EFF8Dercv88B6abTTbSnOQDU71PNk8ckbLjAb7T78rey4zR8NlbCadJw==","shasum":"d7497ccb761d91bfd7fa1107d9c61dd7237c4362","tarball":"https://registry.npmjs.org/elint/-/elint-1.11.1.tgz","fileCount":53,"unpackedSize":93162,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc04WfCRA9TVsSAnZWagAAnLwP/ipXUrTzYENZ1qX27+sm\n5vOXzURQN4Tro4Q68TaEd0R/xOzXUT3Q+wDQB7m3Aa4saTA2yz/G97w0rehC\nic46BbbsBlG40SG3e8NwTLFefrmXiVBRxP9fCqHimdwMR/ejShLc+IbzQ71+\nlMdd9d7boCpR90nBfpk/1TcQqFkwY33oMGtesgmLwKzevBdE2KbaNbNi9XyQ\nj+/lHTiW+JkU1VLATR0TixcwFERTmB0jiRj/3J2ks8RNVY4jmwZiI+UjPASO\nfzKCUhtxREDFVUg5QJ8VTZzvN1djoBWIiiDqdjB6IzdfzkX69ItynSO++tBo\nSin2K0kHzJ5mcAcr3m/kT+KiBCO2T3VSVN8Ps6GTk/VuB4WDwmIAeISt1K/4\nOoaZ/tblPu9+EYv4Q55lzloJ+Naewn/7fJhUczEVuDCydrxvHeNxGO9UidTN\nVb4GEYDfrwObnZxWbRZqHjTHGZftztIaceabXhua1g/yrDDyliSwaxM47G0K\noTn6XOSz+ZX7FKCU5HuPtBVYmimY7eA5/AZgMVFpsQ7Nz3r1o6tXfsDaW8fp\nIQQhValRDPYfPRCuKtjS7suAMYTmTx7UfCKv6XS2JOURZj/ElEviyEwEXhBC\nxyZYiUviBB15ACD07e74yc7YKXsIj7kqbGFUtbl1IfADX62ehsENxPWDI7UQ\nkwlF\r\n=9+IA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCTxLe8A6X9ttgwLquhYdbOTTHUydu3h3FKIJYdFymOIQIgRH72MHhBMJXRH3pzZE1smISubCuw3vIUFqsC3gOwMKE="}]},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"}],"_npmUser":{"name":"keenwon","email":"semanwmj@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_1.11.1_1557366174802_0.5779625821194005"},"_hasShrinkwrap":false},"2.0.0-alpha.1":{"name":"elint","version":"2.0.0-alpha.1","description":"A easy way to lint your code.","main":"src/index.js","bin":{"elint":"./bin/cli.js"},"scripts":{"test":"npm run test:lint && npm run test:unit:coverage && npm run test:system","test:lint":"eslint --format codeframe \"+(bin|src|test)/**/*.js\" \"scripts/postinstall\" --fix","test:unit":"mocha \"test/unit/**/*.spec.js\" --timeout 15000","test:unit:coverage":"nyc --reporter=html --reporter=text npm run test:unit && nyc report --reporter=text-lcov | coveralls","test:system":"node test/system/utils/init.js && ava && node test/system/utils/clean.js","postinstall":"node ./src/postinstall.js"},"repository":{"type":"git","url":"git+https://github.com/keenwon/elint.git"},"keywords":["eslint","eslintplugin","eslintconfig","stylelint","commitlint","standard","jshint","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","bugs":{"url":"https://github.com/keenwon/elint/issues"},"homepage":"https://github.com/keenwon/elint#readme","engines":{"node":">=8.9.0"},"dependencies":{"@commitlint/core":"^8.0.0","boxen":"^4.1.0","chalk":"^2.4.2","commander":"^2.20.0","configstore":"^5.0.0","debug":"^4.1.1","diff":"^4.0.1","eslint":"^6.0.1","execa":"^2.0.1","figures":"^3.0.0","find-process":"^1.4.2","fs-extra":"^8.0.1","globby":"^9.2.0","husky":"^2.4.1","left-pad":"^1.3.0","lodash":"^4.17.11","md5":"^2.2.1","micromatch":"^4.0.2","ms":"^2.1.2","node-fetch":"^2.6.0","semver":"^6.1.2","semver-utils":"^1.1.4","staged-git-files":"^1.2.0","stylelint":"~10.1.0","which":"^1.3.1","write-json-file":"^4.1.0"},"devDependencies":{"@commitlint/cli":"^8.0.0","ava":"^2.1.0","chai":"^4.2.0","chai-as-promised":"^7.1.1","coveralls":"^3.0.4","deep-equal-in-any-order":"^1.0.13","eslint-config-standard":"^12.0.0","eslint-plugin-import":"^2.18.0","eslint-plugin-node":"^9.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-standard":"^4.0.0","mocha":"^6.1.4","nyc":"^14.1.1","sinon":"^7.3.2"},"ava":{"files":["test/system/**/*.spec.js"],"failFast":true,"verbose":true},"readme":"# ELint\n\n[![Node engine][node-image]][node-url]\n[![NPM version][npm-image]][npm-url]\n[![License][license-image]][license-url]\n[![Coverage Status][coveralls-image]][coveralls-url]\n[![Dependencies Status][dependencies-image]][dependencies-url]\n[![Lgtm Alerts][lgtm-alerts-image]][lgtm-alerts-url]\n[![Lgtm Grade][lgtm-grade-image]][lgtm-grade-url]\n\n|Linux|macOS|Windows|\n|:--:|:--:|:--:|\n|[![Linux build status][circleci-image]][circleci-url]|[![macOS build status][travis-image]][travis-url]|[![Windows build status][azure-image]][azure-url]|\n\n专为团队设计的 lint 工具\n\n**目录**：\n\n<!-- TOC -->\n\n- [1. 核心概念](#1-核心概念)\n  - [1.1. ELint](#11-elint)\n  - [1.2. Preset](#12-preset)\n- [2. 使用指南](#2-使用指南)\n  - [2.1. 安装 elint](#21-安装-elint)\n  - [2.2. 编写 preset](#22-编写-preset)\n    - [2.2.1. 新建一个 npm package](#221-新建一个-npm-package)\n    - [2.2.2. 添加 eslint 配置文件（可选）](#222-添加-eslint-配置文件可选)\n    - [2.2.3. 添加 stylelint 配置文件（可选）](#223-添加-stylelint-配置文件可选)\n    - [2.2.4. 添加 commitlint 配置文件（可选）](#224-添加-commitlint-配置文件可选)\n    - [2.2.5. 添加 git hooks（可选）](#225-添加-git-hooks可选)\n    - [2.2.6. 设置更新检测周期（可选）](#226-设置更新检测周期可选)\n    - [2.2.7. 发布 npm package](#227-发布-npm-package)\n  - [2.3. 安装 preset](#23-安装-preset)\n  - [2.4. 定义 npm scripts](#24-定义-npm-scripts)\n    - [2.4.1. npm test](#241-npm-test)\n    - [2.4.2. npm beforecommit](#242-npm-beforecommit)\n- [3. ELint CLI](#3-elint-cli)\n  - [3.1. lint](#31-lint)\n  - [3.2. hooks](#32-hooks)\n  - [3.3. version](#33-version)\n  - [3.4. install](#34-install)\n  - [3.5. diff](#35-diff)\n- [4. 细节 & 原理](#4-细节--原理)\n  - [4.1. 安装 & 初始化过程](#41-安装--初始化过程)\n  - [4.2. 执行过程](#42-执行过程)\n- [5. 常见问题](#5-常见问题)\n  - [5.1. cnpm, yarn](#51-cnpm-yarn)\n  - [5.2. 为什么不建议全局安装](#52-为什么不建议全局安装)\n  - [5.3. 安装失败](#53-安装失败)\n  - [5.4. git hooks 不执行或报错](#54-git-hooks-不执行或报错)\n  - [5.5. 配置文件是不是可以 git ignore](#55-配置文件是不是可以-git-ignore)\n  - [5.6. 是否可以安装多个 preset](#56-是否可以安装多个-preset)\n  - [5.7. 某些文件没有被校验到](#57-某些文件没有被校验到)\n  - [5.8. 为什么添加了 fix 选项还是有问题输出](#58-为什么添加了-fix-选项还是有问题输出)\n  - [5.9. 如何禁用颜色输出](#59-如何禁用颜色输出)\n  - [5.10. lint 执行失败，提示包缺失](#510-lint-执行失败提示包缺失)\n  - [5.11. fix 和 force-fix 的区别](#511-fix-和-force-fix-的区别)\n  - [5.12. TypeScript](#512-typescript)\n- [6. 参考](#6-参考)\n\n<!-- /TOC -->\n\n## 1. 核心概念\n\n在使用 elint 之前，需要先了解几个核心概念。\n\n### 1.1. ELint\n\nelint 是一款代码校验工具，基于 eslint、stylelint、commitlint 等工具封装而成。elint 本身不包含任何校验规则，校验规则通过 preset 定义。elint 的主要功能包括：\n\n- 支持对 js，css 的校验 (eslint, stylelint)。\n- 支持对 git commit message 的校验 (husky, commitlint)。\n- **编写**定制化、场景化的 preset，preset 包含所有验证规则，**保证团队内部校验规则的一致性和可复用**。\n\n### 1.2. Preset\n\n简单来说，preset 就是一个 npm package，可以理解为”规则集“。\n\n只有 elint 是不够的，因为它不知道具体的校验规则，而 preset 就是用来定义规则的。preset 大概长这样：\n\n```shell\nelint-preset-<name>\n├── .commitlintrc.js    # 定义 commitlint 规则，用于 git commit message 的校验\n├── .eslintignore       # 定义 eslint 忽略规则\n├── .eslintrc.js        # 定义 eslint 规则，用于 js 的校验\n├── .huskyrc.js         # 定义 git hooks, 可在 commit 前执行 commitlint 等操作\n├── node_modules\n├── package.json\n├── package-lock.json\n├── .stylelintignore    # 定义 stylelint 忽略规则\n└── .stylelintrc.js     # 定义 stylelint 的规则，用于 css 的校验\n```\n\n要求：\n\n1. npm package name 必须以 `elint-preset-` 开头，如： `elint-preset-<name>` 或 `@team/elint-preset-<name>`。\n2. linter 的配置文件名必须是 `.commitlintrc.js`, `.eslintrc.js`, `.stylelintrc.js`。\n3. 对于 eslint 和 stylelint，支持使用 `.eslintignore`, `.stylelintignore` 定义需要忽略校验的文件和文件夹。\n4. git hooks (使用 husky) 的配置文件名必须是 `.huskyrc.js`。\n5. 所有配置文件必须放在 preset 的根目录。\n6. 依赖的 linter plugin（例如 eslint-plugin-react），必须明确定义在 `package.json` 的 `dependencies` 中。\n\n满足以上要求的 npm package 就是一个合法的 elint preset。\n\n> 一般来说，不建议把 `.eslintignore`，`.stylelintignore` 添加到 preset 中，因为 preset 应该对所有项目都是适用的（除非你的 preset 限定在一个很小的范围内使用，各个项目的目录结构都是一致的，此时可以使用它们来定义需要忽略校验的文件和文件夹）。\n\n> 在 `package.json` 中添加关键字 `elint-preset` 会方便大家找到。[这里](https://npms.io/search?q=keywords%3Aelint-preset)可以查找现有的 preset。\n\n> eslint, stylelint, commitlint, husky 等配置文件的语法规则，请阅读[参考](#6-参考)一节提供的文档。\n\n## 2. 使用指南\n\n开始使用 elint 之前，请先检查下你使用 node 和 npm 版本。运行 elint 需要：\n\n- node：>= 6.0.0，建议尽量使用新版本。\n- npm：>= 3.8.6，同样建议使用新版本。另外部分版本有 bug，可能会导致安装失败，详情查看[常见问题](#53-安装失败)。\n\n下面我们一起从零开始，一步一步的看看如何将 elint 集成到项目中。\n\n### 2.1. 安装 elint\n\n首先要安装 elint：\n\n```shell\n# 假设项目是 test-project\ncd test-project\n\n# 安装 elint\nnpm install elint --save-dev\n```\n\n> 如果你使用 yarn，cnpm（包括基于 cnpm 创建的私有仓库） 等包管理工具，请参考\"[内部细节](#4-细节--原理)\"和\"[常见问题](#51-cnpm-yarn)\"章节，我们的示例中统一使用 npm。\n\n> 强烈**不建议**全局安装（具体原因，请阅读[常见问题](#52-为什么不建议全局安装)）。\n\n### 2.2. 编写 preset\n\n安装完 elint 后，我们需要安装 preset，因为所有的校验规则（rules）都定义在 preset 中。一般来说，一个团队应该有一套编码规范，根据编码规范编写好 preset 后，团队中的各个项目直接安装使用即可，不必为每个项目都新建一个 preset。\n\n> 在一个团队里，可能一个 preset 并不能适应全部场景，那么我们可以根据不同的场景定义多个 preset。例如 `@team/elint-preset-h5`, `@team/elint-preset-node` 等。要覆盖所有项目，并不需要多少 preset。\n\n这里我们假设团队还没有任何 preset，一起看下如何新建它：\n\n#### 2.2.1. 新建一个 npm package\n\n上文已经讲过了，preset 本质上还是一个 npm package，所以新建 preset 的第一步就是新建 npm package：\n\n```shell\n# 假设叫 elint-preset-test\nmkdir elint-preset-test\n\ncd elint-preset-test\n\n# 为了方便演示，全部使用默认值，实际项目中酌情修改\nnpm init -y\n```\n\n#### 2.2.2. 添加 eslint 配置文件（可选）\n\n> 这步是可选的，如果你不需要校验 js 文件，可以直接跳过（下同）\n\n首先新建配置文件，名称必须是 `.eslintrc.js`, 参考上文的 [preset 约定](#12-preset)：\n\n```shell\ntouch .eslintrc.js\n```\n\n`.eslintrc.js` 写入如下内容：\n\n```js\nmodule.exports = {\n  'extends': [\n    // 使用 plugin eslint-plugin-react\n    'plugin:react/recommended'\n  ],\n  'rules': {\n    // 禁止 console\n    'no-console': 2\n  }\n};\n```\n\n因为使用了 plugin `eslint-plugin-react`，所以必须使用 npm 安装，且保存到 `package.json` 的 `dependencies` 中（无论是从语义方面考虑，还是上文关于 preset 的约定，都应该保存到 `dependencies` 中）：\n\n```shell\nnpm install eslint-plugin-react --save\n```\n\n> 因为我们使用 elint 执行校验，而 elint 已经集成了 eslint，stylelint 等工具，所以这里不需要再安装了，只需安装额外的 plugin。\n\n#### 2.2.3. 添加 stylelint 配置文件（可选）\n\n此处省略，和 eslint 一样的做法。\n\n#### 2.2.4. 添加 commitlint 配置文件（可选）\n\n新建配置文件 `.commitlintrc.js`：\n\n```shell\ntouch .commitlintrc.js\n```\n\n`.commitlintrc.js` 写入如下内容：\n\n```js\nmodule.exports = {\n  rules: {\n    // type 不能为空\n    'type-empty': [2, 'never'],\n    // type 必须是 build 或 ci\n    'type-enum': [2, 'always', [\n      'build',\n      'ci'\n    ]]\n  }\n};\n```\n\n#### 2.2.5. 添加 git hooks（可选）\n\n新建配置文件 `.huskyrc.js`：\n\n```shell\ntouch .huskyrc.js\n```\n\n`.huskyrc.js` 写入如下内容\n\n```js\nmodule.exports = {\n  'hooks': {\n    /**\n     * beforecommit 可以在项目的 package.json 中自由定义\n     * 例如可以执行代码校验和 commitlint，或者都执行\n     */\n    'commit-msg': 'npm run beforecommit'\n  }\n}\n```\n\n> 这里配置 git hooks 执行 `npm run beforecommit`，所以你可以在项目中自由定义要执行的操作（下面会详细解释）。\n\n> **注意**：\n>\n> 可能你会觉得，命名为 `precommit` 比 `beforecommit` 更合适。没错，单纯从命名的角度讲，`precommit` 确实更好。但这会与 husky 的规则产生冲突。旧版本的 husky 支持在 package.json 的 scripts 中定义 git hooks。\n\n#### 2.2.6. 设置更新检测周期（可选）\n\n从 1.10.0 版本开始，elint 支持更新检测功能，提示用户更新到新版本的 preset。\n\n要开启此功能，只需在 preset 的 package.json 文件中添加如下配置：\n\n```json\n{\n  \"elint\": {\n    \"updateCheckInterval\": \"3d\"\n  }\n}\n```\n\n上述配置会让 elint 每三天检测一次是否有新版本 preset。\n\n#### 2.2.7. 发布 npm package\n\n此时项目的目录结构应该是：\n\n```shell\nelint-preset-test\n├── .commitlintrc.js\n├── .eslintrc.js\n├── .huskyrc.js\n├── node_modules\n├── package.json\n└── package-lock.json\n\n1 directory, 5 files\n```\n\n发布 npm package，执行：\n\n```shell\nnpm publish\n```\n> 如果希望更多人发现你的 preset，可以添加关键字 `elint-preset`，[点击此处](https://npms.io/search?q=keywords%3Aelint-preset)可以查看现有可用的 preset。\n\n### 2.3. 安装 preset\n\n刚刚我们已经编写并发布了 preset，现在安装到项目中就好了：\n\n```shell\ncd test-project\n\n# 安装我们刚才新建的 elint-preset-test\nnpm install elint-preset-test --save-dev\n```\n\n安装完成后，你会发现刚才定义在 preset 中的各种配置文件（`.eslintrc.js` 等），都拷贝到了项目的根目录，这是为了兼容各种 IDE 和 build 工具（如 webpack），elint 与他们是可以共存的。\n\n### 2.4. 定义 npm scripts\n\n#### 2.4.1. npm test\n\n按照常规套路，需要在 `package.json` 中定义 `npm test`，如果项目只有 lint，可以这样写：\n\n```json\n{\n  \"scripts\": {\n    \"test\": \"elint lint 'src/**/*.js' 'src/**/*.css'\"\n  }\n}\n```\n\n如果除了 lint 还有其他测试，可以这样写：\n\n```json\n{\n  \"scripts\": {\n    \"test\": \"npm run test:lint && npm run test:other\",\n    \"test:lint\": \"elint lint 'src/**/*.js' 'src/**/*.css'\",\n    \"test:other\": \"...\"\n  }\n}\n```\n\n> 注意: glob 最好加上引号，详见 [ELint CLI](#31-lint)\n\n#### 2.4.2. npm beforecommit\n\n刚才编写 preset 的时候，定义了在 commit 前执行 `npm run beforecommit`，所以我们必须定义好 beforecommit，否则会**报错**：\n\n```json\n{\n  \"scripts\": {\n    \"beforecommit\": \"npm run test:lint && elint lint commit\",\n    \"test\": \"npm run test:lint && npm run test:other\",\n    \"test:lint\": \"elint lint 'src/**/*.js' 'src/**/*.css'\",\n    \"test:other\": \"...\"\n  }\n}\n```\n\n按照上面的写法，commit 之前会执行校验代码和 commit message。至此，elint 已经成功添加到项目中，执行 `npm test` 会校验代码，在 commit 前会校验代码和 commit message\n\n> 万一（虽然不建议）你在 commit 之前什么都不想执行，为了不报错，也要写 `exit 0`。\n\n> 当 lint 运行在 git hooks 中时，文件的范围限定在 **git 暂存区**，也就是你将要提交的文件（详见 [ELint CLI](#31-lint)）。\n\n## 3. ELint CLI\n\n因为我们不推荐全局安装，除了在 npm scripts 和 `.huskyrc.js` 中使用，下面的 `elint` 均代指 `./node_modules/.bin/elint`（或者也可以使用 npm 5.2.0 起内置的 [npx](https://github.com/zkat/npx) 命令）：\n\n### 3.1. lint\n\n`lint` 命令用来执行代码校验和 git commit message 校验。当 lint 运行在 git hooks 中时，文件的搜索范围限定在 **git 暂存区**，也就是只从你将要 commit 的文件中，找到需要校验的文件，执行校验。\n\n```shell\nelint lint [options] [type] [files...]\n```\n\ntype 可选的值：\n\n- es: 执行 eslint\n- style: 执行 stylelint\n- commit: 执行 commitlint\n\n如果不指定 type，默认执行 eslint 和 stylelint\n\noptions 可选的值：\n\n- -f, --fix: 自动修复，git hooks 中无效，[为什么这么做？](#511-fix-和-force-fix-的区别)\n- -ff, --force-fix: 强制自动修复，git hooks 中依然有效\n- --no-ignore: 忽略 elint 遍历文件时的默认忽略规则\n\n当添加 `--fix` 或者 `--force-fix` 时，会尝试自动修复问题，无法自动修复的问题依旧会输出出来。\n\n例子：\n\n```shell\n# 校验 js 和 scss\n$ elint lint \"**/*.js\" \"**/*.scss\"\n\n# 校验 js 和 scss，执行自动修复\n$ elint lint \"**/*.js\" \"**/*.scss\" --fix\n\n# 校验 js\n$ elint lint \"**/*.js\"\n$ elint lint es \"**/*.js\"\n\n# 校验 less\n$ elint lint \"**/*.less\"\n$ elint lint style \"**/*.js\"\n\n# 校验 commit message\n$ elint lint commit\n```\n\n**注意**:\n\n当你在 Terminal（或者 npm scripts） 中运行 `elint lint **/*.js` 的时候，glob 会被 Terminal 解析，然后输入给 elint。glob 语法解析的差异可能会导致文件匹配的差异。所以建议，glob 使用引号包裹，防止在输入到 elint 前，被意外解析。\n\n### 3.2. hooks\n\n`hooks` 命令用来安装 & 卸载 git hooks（一般不会用到）：\n\n```shell\nelint hooks [action]\n```\n\n支持的 action：\n\n- install: 安装\n- uninstall: 卸载\n\n例子：\n\n```shell\n$ elint hooks install\n$ elint hooks uninstall\n```\n\n### 3.3. version\n\n输出版本信息\n\n```shell\n$ elint -v\n> elint version\n\n  elint             : 1.2.0-rc.1\n  elint-preset-test : 1.0.15\n\n  Dependencies:\n    eslint     : 4.19.1\n    stylelint  : 9.2.1\n    commitlint : 7.0.0\n    husky      : 1.0.0-rc.8\n```\n\n### 3.4. install\n\n前面讲到的 preset 安装，都是直接执行 `npm install`。其实除了这种方式，还可以直接使用 `elint install` 命令安装：\n\n```shell\nelint install [presetName] [options]\n```\n\n`presetName` 可以忽略 `elint-preset-` 前缀。\n\n支持的 options:\n\n- --registry: 指定 npm 仓库地址，可以输入 url 或者 alias。支持如下的 alias：\n  - npm: [https://registry.npmjs.org/](https://registry.npmjs.org/)\n  - cnpm: [http://r.cnpmjs.org/](http://r.cnpmjs.org/)\n  - taobao: [https://registry.npm.taobao.org/](https://registry.npm.taobao.org/)\n  - nj: [https://registry.nodejitsu.com/](https://registry.nodejitsu.com/)\n  - rednpm: [http://registry.mirror.cqupt.edu.cn](http://registry.mirror.cqupt.edu.cn)\n  - skimdb: [https://skimdb.npmjs.com/registry](https://skimdb.npmjs.com/registry)\n- --keep: 不覆盖旧的配置文件（文件完全一样肯定是不会覆盖的，keep 选项只在有文件有差异时生效）\n\n例子：\n\n```shell\n# 安装 elint-preset-test\n$ elint install test\n\n# 从 cnpm 安装 elint-preset-test\n$ elint install test --registry=https://registry.npm.taobao.org/\n\n# 从 cnpm 安装 elint-preset-test, 使用 alias\n$ elint install test --registry=cnpm\n```\n\n这两种安装方式的最大区别就是：\"否将 preset 视为项目的依赖\"：\n\n|安装方式|区别|\n|:--|:--|\n|`npm install`|把 preset 当成依赖，执行 `npm install` 时，项目根目录的配置文件都可能被更新|\n|`elint install`|把 preset 当成配置源，更新时需要再次执行 `elint install`|\n\n除了上面列举的区别外，`elint install` 无视 cnpm，yarn 的限制，如果你十分依赖 cnpm，yarn 时，可以考虑使用 `elint install` 来安装，但要留意保持 preset 的最新。\n\n没有主推这种方式的原因在于，**elint 的设计初衷就是统一团队规范，规范一旦制定，需要严格执行**。`npm install` 会自动更新并覆盖项目根目录的配置文件，一定程度上避免了随意修改配置文件带来的（不同项目之间）校验规则不统一。另外一点就是由于不推荐全局安装 elint，所以 elint 命令需要用 `./node_modules/.bin/elint` 执行，略显麻烦。\n\n### 3.5. diff\n\n万一你使用了 `elint install`，万一你加了 `keep`，万一你没有趁手的 diff 工具，可以尝试：\n\n```shell\n$ elint diff\n```\n\n输出类似：\n\n```diff\n -------------------------------------------------\n diff .eslintrc.js .eslintrc.old.js\n -------------------------------------------------\n  2 |   'extends': [\n  3 |     'plugin:react/recommended'\n  4 |   ],\n  5 |   'rules': {\n-   |     'no-console': 0\n+ 6 |     'no-console': 2\n  7 |   }\n  8 | };\n```\n\n## 4. 细节 & 原理\n\n作为一个项目的维护者，当你将 elint 集成到你的项目中时，了解一些细节会非常有帮助。\n\n### 4.1. 安装 & 初始化过程\n\n如果你编写好了用于自己团队的 preset，并且按照前面介绍的安装方式安装完成，你会发现，elint 将所有的配置文件从 preset 复制到了项目的根目录，这么做的目的是为了兼容在 IDE、build 工具中使用 lint。所以使用 elint 的同时，你仍然可以按照原来的方式，配置你的 IDE，webpack 等，他们与 elint 完全不冲突。\n\n具体的 preset 初始化过程（install 后自动执行），分为如下两步：\n\n1. 将配置文件 (`.eslintrc.js` 等) 复制到项目的根目录。\n2. 安装 preset 的 `dependencies`，并保存到项目的 `devDependencies` 中。\n\n安装（并初始化）完成后，可以根据你的项目的实际情况，添加 npm scripts，例如 test 时执行 `elint lint '**/*.js' '**/*.less'`\n\n无论是先安装 elint，还是先安装 preset，亦或者同时安装，elint 都能准确的感知到 preset 的存在，并完成所有初始化操作。这项功能主要借助于 [npm hook scripts](https://docs.npmjs.com/misc/scripts#hook-scripts)，这也是当你使用 cnpm 时需要格外注意的原因（解决办法参考下面的[常见问题](#51-cnpm-yarn)）。\n\n### 4.2. 执行过程\n\n执行过程比较简单，对代码的 lint 的过程可以概括为一句话：“elint 根据你输入的 glob，收集并整理文件，交由 eslint、stylelint 执行，然后将结果输出至命令行展示”。\n\n对 git commit 信息的 lint，主要借助于 husky 和 commitlint。安装过程中，会自动添加 git hooks，当 hooks 触发时，执行配置在 `.huskyrc.js` 中的相应命令，就这么简单。\n\n> 执行 commit lint 时，git hook 可以选择 `commit-msg`。\n\n> 因为 git hooks 的注册是在 npm install 后自动执行的，所以，如果万一你的项目还未 git init，hooks 注册必然是失败的。解决办法是在 git init 之后，手动执行 `./node_modules/.bin/elint hooks install`。\n\n## 5. 常见问题\n\n### 5.1. cnpm, yarn\n\n使用 cnpm 的目的无外乎两点：解决网络问题、私有仓库。但问题是 cnpm 的私有实现不支持给 elint 带来极大便利的 [npm hook scripts](https://docs.npmjs.com/misc/scripts#hook-scripts)。所以我们只能放弃 `cnpm` 命令，仅使用它的仓库。\n\n如果你只是单纯想从 cnpm 的仓库安装 npm package，提高安装速度。可以删除 `cnpm`，然后定义 alias:\n\n```shell\n$ alias cnpm='npm --registry=https://registry.npm.taobao.org/ \\\n  --registryweb=https://npm.taobao.org/ \\\n  --userconfig=$HOME/.cnpmrc'\n```\n\n如果你需要使用私有仓库，同样可以删除 `cnpm`，然后定义自己的命令:\n\n```shell\n$ alias mynpm='npm --registry=http://registry.npm.example.com \\\n  --registryweb=http://npm.example.com \\\n  --userconfig=$HOME/.mynpmrc'\n```\n\n关于 yarn，很可惜，目前不支持\n\n> 上面的 `alias` 命令只是临时修改，终端关闭即实现，永久添加请修改 `.bashrc` 或 `.zshrc`。\n\n### 5.2. 为什么不建议全局安装\n\nelint 强依赖 stylelint, eslint 等工具。而对于 eslint，其文档中写到:\n\n> Any plugins or shareable configs that you use must also be installed globally to work with a globally-installed ESLint.\n\n全局安装 lint 工具和所有的 plugin，项目数量较多时容易引起混乱，且可能对 ci、部署等带来麻烦。\n\n### 5.3. 安装失败\n\n可能是 npm 的 [bug](https://github.com/npm/npm-lifecycle/pull/13) 引起的。如果你的 npm 版本在 5.1.0 ～ 6.1.0 之间，请升级至最新版本的 npm。\n\nelint 安装过程中会检测 npm 版本，具体以检测结果为准。\n\n> windows 升级 npm 请参考：[How can I update npm on Windows?](https://stackoverflow.com/questions/18412129/how-can-i-update-npm-on-windows)\n\n### 5.4. git hooks 不执行或报错\n\n如果 git hooks 不执行或者报错，尝试下面的方法:\n\n- 项目处于 git 管理的前提下，执行 `npm install` 安装依赖。\n- 如果你在新建项目，先执行 `npm install`，然后执行 `git init` 的话，手动注册 git hooks（上文的 hooks 命令）。\n- 检查 `.git/hooks` 目录，是否存在非 `.sample` 结尾的文件，如果不存在，手动注册 git hooks。\n- 还是有问题？报 bug。\n\n### 5.5. 配置文件是不是可以 git ignore\n\n如果你能想到这个问题，那么说明你真的理解了 elint 的运作方式。忽略配置文件，防止意外被修改，所有团队成员使用 preset 定义的配置，听起来非常不错。那么从 preset 复制到项目中的各种配置文件，是否可以添加到 `.gitignore` 呢？这要看你的使用场景：\n\n- 如果代码提交到 git 仓库，执行 ci 的过程中会安装依赖。\n- 如果部署项目时，build 过程中不再执行 lint，或者先安装依赖，然后再执行 build。\n\n总之，只要执行 `npm install` 安装依赖，配置文件就会自动添加到项目里；只要你能保证需要用到配置文件的时候它存在（例如你在 webpack 里用了 eslint-loader），就可以忽略它。\n\n再次强调，elint 的设计原则是保证团队规范的严格执行，如果你觉得规则有问题，那么应该提出并推动修改 preset，而不是直接改项目里的配置。\n\n### 5.6. 是否可以安装多个 preset\n\n不可以。安装过程中，如果两个 preset 存在相同的配置文件，后安装会覆盖之前的。如果 package.json 中的依赖包含多个 preset，先后顺序由 npm 决定。\n\n### 5.7. 某些文件没有被校验到\n\n1. 检查你的 glob 写法是否有问题。\n2. 可能是 glob 被传入 elint 之前就被意外解析了，参考 [lint 命令](#31-lint)。\n3. windows 7 + git bash 下测试时发现，npm scripts 里，glob 必须使用双引号包裹\n\n```json\n{\n  \"scripts\": {\n    \"test:lint\": \"elint lint \\\"src/**/*.js\\\"\"\n  }\n}\n```\n\n4. elint 在遍历文件时，会应用一些默认的忽略规则，如果你的文件刚好命中这些规则，可以使用 `--no-ignore` 选项。\n\n```js\nconst defaultIgnore = [\n  '**/node_modules/**',\n  '**/bower_components/**',\n  '**/flow-typed/**',\n  '**/.nyc_output/**',\n  '**/coverage/**',\n  '**/.git',\n  '**/*.min.js',\n  '**/*.min.css'\n];\n\n// 除此之外还有 .gitignore 定义的忽略规则\n```\n\n### 5.8. 为什么添加了 fix 选项还是有问题输出\n\n并不是所有规则都支持自动修复，具体可以查看 [eslint rules](https://eslint.org/docs/rules/) 和 [stylelint rules](https://stylelint.io/user-guide/rules/)，可以自动修复的规则都有标识。\n\n### 5.9. 如何禁用颜色输出\n\n设置环境变量 `FORCE_COLOR` 为 `0` 即可，例如：\n\n```shell\n$ FORCE_COLOR=0 elint lint \"src/**/*.js\"\n```\n\n### 5.10. lint 执行失败，提示包缺失\n\n如果遇到如下错误，特别在 CI 环境下。可能是 `package-lock.json` 引起的。\n\n```shell\nError: Cannot find module 'eslint-config-xxx'\n```\n\n请按照如下步骤尝试修复：\n\n1. 删除 `node_modules` 和 `package-lock.json`。\n2. 查看 `package.json` 文件，使用 elint 时只需安装 elint 和 preset，清理掉遗留的 eslint 等依赖。\n3. 重新执行 `npm install`\n\n### 5.11. fix 和 force-fix 的区别\n\n`--fix` 非常好用，可以自动修改大量问题。但是，当在 git hooks 中使用时会有点小问题：git commit 时执行 fix，某些文件被修改，因此文件状态变为 modified，并且未被提交。此时不得不再次提交被 fix 过的文件，这通常与我们的预期不符。\n\n为了降低上述情景带来的意外影响，`--fix` 在 git hooks 模式下不生效，同时新增了任何时候都会生效的 `--force-fix`。\n\n建议使用 `--fix`，提交时如果代码有问题，直接报错打断，修复后再重新提交。\n\n### 5.12. TypeScript\n\nelint 目前没有集成 tslint 的计划，typescript 用户建议使用 [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint)。\n\n## 6. 参考\n\n- eslint: [Github](https://github.com/eslint/eslint) | [文档](http://eslint.org)\n- stylelint: [Github](https://github.com/stylelint/stylelint) | [文档](https://stylelint.io)\n- commitlint: [Github](https://github.com/marionebl/commitlint) | [文档](http://marionebl.github.io/commitlint/#/)\n- husky: [Github](https://github.com/typicode/husky)\n- git hooks: [文档](https://git-scm.com/docs/githooks)\n- glob primer: [文档](https://github.com/isaacs/node-glob#glob-primer)\n\n[node-image]: https://img.shields.io/node/v/elint.svg?maxAge=3600&style=flat-square\n[node-url]: https://nodejs.org\n[npm-image]: https://img.shields.io/npm/v/elint.svg?maxAge=3600&style=flat-square\n[npm-url]: https://www.npmjs.com/package/elint\n[license-image]: https://img.shields.io/github/license/keenwon/elint.svg?maxAge=3600&style=flat-square\n[license-url]: https://github.com/keenwon/elint/blob/master/LICENSE\n[circleci-image]: https://img.shields.io/circleci/project/github/keenwon/elint.svg?maxAge=3600&logo=circleci&style=flat-square\n[circleci-url]: https://circleci.com/gh/keenwon/elint\n[travis-image]: https://img.shields.io/travis/keenwon/elint.svg?maxAge=3600&logo=travis&style=flat-square\n[travis-url]: https://travis-ci.org/keenwon/elint\n[azure-image]: https://img.shields.io/azure-devops/build/keenwon/github/1.svg?maxAge=3600&logo=azure-devops&style=flat-square\n[azure-url]: https://dev.azure.com/keenwon/github/_build/latest?definitionId=1\n[coveralls-image]: https://img.shields.io/coveralls/github/keenwon/elint.svg?maxAge=3600&style=flat-square\n[coveralls-url]: https://coveralls.io/github/keenwon/elint?branch=master\n[dependencies-image]: https://img.shields.io/david/keenwon/elint.svg?maxAge=3600&style=flat-square\n[dependencies-url]: https://david-dm.org/keenwon/elint\n[devdependencies-image]: https://img.shields.io/david/dev/keenwon/elint.svg?maxAge=3600&style=flat-square\n[devdependencies-url]: https://david-dm.org/keenwon/elint?type=dev\n[lgtm-alerts-image]: https://img.shields.io/lgtm/alerts/g/keenwon/elint.svg?logo=lgtm&logoWidth=18&maxAge=3600&style=flat-square\n[lgtm-alerts-url]: https://lgtm.com/projects/g/keenwon/elint/alerts/\n[lgtm-grade-image]: https://img.shields.io/lgtm/grade/javascript/g/keenwon/elint.svg?logo=lgtm&logoWidth=18&maxAge=3600&style=flat-square\n[lgtm-grade-url]: https://lgtm.com/projects/g/keenwon/elint/context:javascript\n","readmeFilename":"README.md","gitHead":"9c2728070f6224ffe4620c55085b121e2de2004c","_id":"elint@2.0.0-alpha.1","_nodeVersion":"12.2.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-z0iTgVFaAih8hr3dSES23tNYmMrE9uB6b1eTObdNzghC3fvSmjPZ0FQ9XWByIrQziXt9quj6dsuHvHkOMaRpcg==","shasum":"52d21c98d70459ec7eba2d5d2d16f31eac48e7e7","tarball":"https://registry.npmjs.org/elint/-/elint-2.0.0-alpha.1.tgz","fileCount":53,"unpackedSize":92581,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdGs2mCRA9TVsSAnZWagAAP+8P/iCShP0DUWV4PnUl6VXL\nY3DrdUER6BY60ruzO4xiiCa+Hyg0BQpff9db39HJCu8VAzoWqSL1/mfISxeo\no4gQieOPJxXHhF3de3lHDLazU/9YY5uCUInZ9dmKK/wOUnVkasDqzyix8sTL\nuKKssB4i3jlO69WUy3n0X0L1u29qkt+azXJZ+xJzYuDh8MjTIAaMbwGsHgzE\nJpzbbro2pCPp92rJEaAb/ylZ3z1M4D12y02ZnKdgOoGmyGPRQN/c2kBYUcQr\nds9ck0TCmyCb7CZetfh2pntN0SMSEy37dR/LkjKQxh7TdKJovCa5D/TBCPm+\nl6HoNVr870pO4mp1XzKEm2uj84CLzXPP6zq/QEqFfoUlesLgD76oahg4WgyX\nZeAEvIroXCGAa4eZKpCKkhsUCS6PdvCdFwxlubjSS3bism1sLciFXmENW+h2\nTXm4ofFA7VQzImS5UecuI1tC3+0KPGtlHZ+Wv8NTY2Y62a91AUGPjar9PUAz\nIagWgHvd05+4oZsPYQxhiCLr2BP0Y1kGMBdU3vVTK7iy5DpeJ2Ret26GPPwa\nq1LHwnppQyfiE/Hd6HrEo6Ii49k6THaqbsLoEGY1bvz6cbjwCZzbCSF8WmlB\nyv5zhhY6LJl7Z58nuN4NF4mU44GZTFx88IMgvoQajZQkeB0Mf/frHSsFC2V4\nZWV/\r\n=kXM2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFGitxeO4NS+NgIyE9sZc9ngGyuDzqQIoV6xwBoRG21gAiA/e1yqgbmiCbHl/g4m9vmkYnmrZPddZ49HMQjCLhq3OA=="}]},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"}],"_npmUser":{"name":"keenwon","email":"semanwmj@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_2.0.0-alpha.1_1562037670043_0.871184418645528"},"_hasShrinkwrap":false},"2.0.0-alpha.2":{"name":"elint","version":"2.0.0-alpha.2","description":"A easy way to lint your code.","main":"src/index.js","bin":{"elint":"./bin/cli.js"},"scripts":{"test":"npm run test:lint && npm run test:unit:coverage && npm run test:system","test:lint":"eslint --format codeframe \"+(bin|src|test)/**/*.js\" \"scripts/postinstall\" --fix","test:unit":"mocha \"test/unit/**/*.spec.js\" --timeout 15000","test:unit:coverage":"nyc --reporter=html --reporter=text npm run test:unit && nyc report --reporter=text-lcov | coveralls","test:system":"node test/system/utils/init.js && ava && node test/system/utils/clean.js","postinstall":"node ./src/postinstall.js"},"repository":{"type":"git","url":"git+https://github.com/keenwon/elint.git"},"keywords":["eslint","eslintplugin","eslintconfig","stylelint","commitlint","standard","jshint","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","bugs":{"url":"https://github.com/keenwon/elint/issues"},"homepage":"https://github.com/keenwon/elint#readme","engines":{"node":">=8.9.0"},"dependencies":{"@commitlint/core":"^8.1.0","boxen":"^4.1.0","chalk":"^2.4.2","commander":"^3.0.0","configstore":"^5.0.0","debug":"^4.1.1","diff":"^4.0.1","eslint":"^6.1.0","execa":"^2.0.3","figures":"^3.0.0","find-process":"^1.4.2","fs-extra":"^8.1.0","globby":"^10.0.1","husky":"^2.7.0","lodash":"^4.17.15","md5":"^2.2.1","micromatch":"^4.0.2","ms":"^2.1.2","node-fetch":"^2.6.0","semver":"^6.3.0","semver-utils":"^1.1.4","staged-git-files":"^1.2.0","stylelint":"~10.1.0","which":"^1.3.1","write-json-file":"^4.2.0"},"devDependencies":{"@commitlint/cli":"^8.1.0","ava":"^2.2.0","chai":"^4.2.0","chai-as-promised":"^7.1.1","coveralls":"^3.0.6","deep-equal-in-any-order":"^1.0.16","eslint-config-standard":"^13.0.1","eslint-plugin-import":"^2.18.2","eslint-plugin-node":"^9.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-standard":"^4.0.0","mocha":"^6.2.0","nyc":"^14.1.1","sinon":"^7.4.1"},"ava":{"files":["test/system/**/*.spec.js"],"failFast":true,"verbose":true},"readme":"# ELint\n\n[![Node engine][node-image]][node-url]\n[![NPM version][npm-image]][npm-url]\n[![License][license-image]][license-url]\n[![Coverage Status][coveralls-image]][coveralls-url]\n[![Dependencies Status][dependencies-image]][dependencies-url]\n[![Lgtm Alerts][lgtm-alerts-image]][lgtm-alerts-url]\n[![Lgtm Grade][lgtm-grade-image]][lgtm-grade-url]\n\n|Linux|macOS|Windows|\n|:--:|:--:|:--:|\n|[![Linux build status][circleci-image]][circleci-url]|[![macOS build status][travis-image]][travis-url]|[![Windows build status][azure-image]][azure-url]|\n\n专为团队设计的 lint 工具\n\n**目录**：\n\n<!-- TOC -->\n\n- [1. 核心概念](#1-核心概念)\n  - [1.1. ELint](#11-elint)\n  - [1.2. Preset](#12-preset)\n- [2. 使用指南](#2-使用指南)\n  - [2.1. 安装 elint](#21-安装-elint)\n  - [2.2. 编写 preset](#22-编写-preset)\n    - [2.2.1. 新建一个 npm package](#221-新建一个-npm-package)\n    - [2.2.2. 添加 eslint 配置文件（可选）](#222-添加-eslint-配置文件可选)\n    - [2.2.3. 添加 stylelint 配置文件（可选）](#223-添加-stylelint-配置文件可选)\n    - [2.2.4. 添加 commitlint 配置文件（可选）](#224-添加-commitlint-配置文件可选)\n    - [2.2.5. 添加 git hooks（可选）](#225-添加-git-hooks可选)\n    - [2.2.6. 设置更新检测周期（可选）](#226-设置更新检测周期可选)\n    - [2.2.7. 发布 npm package](#227-发布-npm-package)\n  - [2.3. 安装 preset](#23-安装-preset)\n  - [2.4. 定义 npm scripts](#24-定义-npm-scripts)\n    - [2.4.1. npm test](#241-npm-test)\n    - [2.4.2. npm beforecommit](#242-npm-beforecommit)\n- [3. ELint CLI](#3-elint-cli)\n  - [3.1. lint](#31-lint)\n  - [3.2. hooks](#32-hooks)\n  - [3.3. version](#33-version)\n  - [3.4. install](#34-install)\n  - [3.5. diff](#35-diff)\n- [4. 细节 & 原理](#4-细节--原理)\n  - [4.1. 安装 & 初始化过程](#41-安装--初始化过程)\n  - [4.2. 执行过程](#42-执行过程)\n- [5. 常见问题](#5-常见问题)\n  - [5.1. cnpm, yarn](#51-cnpm-yarn)\n  - [5.2. 为什么不建议全局安装](#52-为什么不建议全局安装)\n  - [5.3. 安装失败](#53-安装失败)\n  - [5.4. git hooks 不执行或报错](#54-git-hooks-不执行或报错)\n  - [5.5. 配置文件是不是可以 git ignore](#55-配置文件是不是可以-git-ignore)\n  - [5.6. 是否可以安装多个 preset](#56-是否可以安装多个-preset)\n  - [5.7. 某些文件没有被校验到](#57-某些文件没有被校验到)\n  - [5.8. 为什么添加了 fix 选项还是有问题输出](#58-为什么添加了-fix-选项还是有问题输出)\n  - [5.9. 如何禁用颜色输出](#59-如何禁用颜色输出)\n  - [5.10. lint 执行失败，提示包缺失](#510-lint-执行失败提示包缺失)\n  - [5.11. TypeScript](#511-typescript)\n- [6. 参考](#6-参考)\n\n<!-- /TOC -->\n\n## 1. 核心概念\n\n在使用 elint 之前，需要先了解几个核心概念。\n\n### 1.1. ELint\n\nelint 是一款代码校验工具，基于 eslint、stylelint、commitlint 等工具封装而成。elint 本身不包含任何校验规则，校验规则通过 preset 定义。elint 的主要功能包括：\n\n- 支持对 js，css 的校验 (eslint, stylelint)。\n- 支持对 git commit message 的校验 (husky, commitlint)。\n- **编写**定制化、场景化的 preset，preset 包含所有验证规则，**保证团队内部校验规则的一致性和可复用**。\n\n### 1.2. Preset\n\n简单来说，preset 就是一个 npm package，可以理解为”规则集“。\n\n只有 elint 是不够的，因为它不知道具体的校验规则，而 preset 就是用来定义规则的。preset 大概长这样：\n\n```shell\nelint-preset-<name>\n├── .commitlintrc.js    # 定义 commitlint 规则，用于 git commit message 的校验\n├── .eslintignore       # 定义 eslint 忽略规则\n├── .eslintrc.js        # 定义 eslint 规则，用于 js 的校验\n├── .huskyrc.js         # 定义 git hooks, 可在 commit 前执行 commitlint 等操作\n├── node_modules\n├── package.json\n├── package-lock.json\n├── .stylelintignore    # 定义 stylelint 忽略规则\n└── .stylelintrc.js     # 定义 stylelint 的规则，用于 css 的校验\n```\n\n要求：\n\n1. npm package name 必须以 `elint-preset-` 开头，如： `elint-preset-<name>` 或 `@team/elint-preset-<name>`。\n2. linter 的配置文件名必须是 `.commitlintrc.js`, `.eslintrc.js`, `.stylelintrc.js`。\n3. 对于 eslint 和 stylelint，支持使用 `.eslintignore`, `.stylelintignore` 定义需要忽略校验的文件和文件夹。\n4. git hooks (使用 husky) 的配置文件名必须是 `.huskyrc.js`。\n5. 所有配置文件必须放在 preset 的根目录。\n6. 依赖的 linter plugin（例如 eslint-plugin-react），必须明确定义在 `package.json` 的 `dependencies` 中。\n\n满足以上要求的 npm package 就是一个合法的 elint preset。\n\n> 一般来说，不建议把 `.eslintignore`，`.stylelintignore` 添加到 preset 中，因为 preset 应该对所有项目都是适用的（除非你的 preset 限定在一个很小的范围内使用，各个项目的目录结构都是一致的，此时可以使用它们来定义需要忽略校验的文件和文件夹）。\n\n> 在 `package.json` 中添加关键字 `elint-preset` 会方便大家找到。[这里](https://npms.io/search?q=keywords%3Aelint-preset)可以查找现有的 preset。\n\n> eslint, stylelint, commitlint, husky 等配置文件的语法规则，请阅读[参考](#6-参考)一节提供的文档。\n\n## 2. 使用指南\n\n开始使用 elint 之前，请先检查下你使用 node 和 npm 版本。运行 elint 需要：\n\n- node：>= 6.0.0，建议尽量使用新版本。\n- npm：>= 3.8.6，同样建议使用新版本。另外部分版本有 bug，可能会导致安装失败，详情查看[常见问题](#53-安装失败)。\n\n下面我们一起从零开始，一步一步的看看如何将 elint 集成到项目中。\n\n### 2.1. 安装 elint\n\n首先要安装 elint：\n\n```shell\n# 假设项目是 test-project\ncd test-project\n\n# 安装 elint\nnpm install elint --save-dev\n```\n\n> 如果你使用 yarn，cnpm（包括基于 cnpm 创建的私有仓库） 等包管理工具，请参考\"[内部细节](#4-细节--原理)\"和\"[常见问题](#51-cnpm-yarn)\"章节，我们的示例中统一使用 npm。\n\n> 强烈**不建议**全局安装（具体原因，请阅读[常见问题](#52-为什么不建议全局安装)）。\n\n### 2.2. 编写 preset\n\n安装完 elint 后，我们需要安装 preset，因为所有的校验规则（rules）都定义在 preset 中。一般来说，一个团队应该有一套编码规范，根据编码规范编写好 preset 后，团队中的各个项目直接安装使用即可，不必为每个项目都新建一个 preset。\n\n> 在一个团队里，可能一个 preset 并不能适应全部场景，那么我们可以根据不同的场景定义多个 preset。例如 `@team/elint-preset-h5`, `@team/elint-preset-node` 等。要覆盖所有项目，并不需要多少 preset。\n\n这里我们假设团队还没有任何 preset，一起看下如何新建它：\n\n#### 2.2.1. 新建一个 npm package\n\n上文已经讲过了，preset 本质上还是一个 npm package，所以新建 preset 的第一步就是新建 npm package：\n\n```shell\n# 假设叫 elint-preset-test\nmkdir elint-preset-test\n\ncd elint-preset-test\n\n# 为了方便演示，全部使用默认值，实际项目中酌情修改\nnpm init -y\n```\n\n#### 2.2.2. 添加 eslint 配置文件（可选）\n\n> 这步是可选的，如果你不需要校验 js 文件，可以直接跳过（下同）\n\n首先新建配置文件，名称必须是 `.eslintrc.js`, 参考上文的 [preset 约定](#12-preset)：\n\n```shell\ntouch .eslintrc.js\n```\n\n`.eslintrc.js` 写入如下内容：\n\n```js\nmodule.exports = {\n  'extends': [\n    // 使用 plugin eslint-plugin-react\n    'plugin:react/recommended'\n  ],\n  'rules': {\n    // 禁止 console\n    'no-console': 2\n  }\n};\n```\n\n因为使用了 plugin `eslint-plugin-react`，所以必须使用 npm 安装，且保存到 `package.json` 的 `dependencies` 中（无论是从语义方面考虑，还是上文关于 preset 的约定，都应该保存到 `dependencies` 中）：\n\n```shell\nnpm install eslint-plugin-react --save\n```\n\n> 因为我们使用 elint 执行校验，而 elint 已经集成了 eslint，stylelint 等工具，所以这里不需要再安装了，只需安装额外的 plugin。\n\n#### 2.2.3. 添加 stylelint 配置文件（可选）\n\n此处省略，和 eslint 一样的做法。\n\n#### 2.2.4. 添加 commitlint 配置文件（可选）\n\n新建配置文件 `.commitlintrc.js`：\n\n```shell\ntouch .commitlintrc.js\n```\n\n`.commitlintrc.js` 写入如下内容：\n\n```js\nmodule.exports = {\n  rules: {\n    // type 不能为空\n    'type-empty': [2, 'never'],\n    // type 必须是 build 或 ci\n    'type-enum': [2, 'always', [\n      'build',\n      'ci'\n    ]]\n  }\n};\n```\n\n#### 2.2.5. 添加 git hooks（可选）\n\n新建配置文件 `.huskyrc.js`：\n\n```shell\ntouch .huskyrc.js\n```\n\n`.huskyrc.js` 写入如下内容\n\n```js\nmodule.exports = {\n  'hooks': {\n    /**\n     * beforecommit 可以在项目的 package.json 中自由定义\n     * 例如可以执行代码校验和 commitlint，或者都执行\n     */\n    'commit-msg': 'npm run beforecommit'\n  }\n}\n```\n\n> 这里配置 git hooks 执行 `npm run beforecommit`，所以你可以在项目中自由定义要执行的操作（下面会详细解释）。\n\n> **注意**：\n>\n> 可能你会觉得，命名为 `precommit` 比 `beforecommit` 更合适。没错，单纯从命名的角度讲，`precommit` 确实更好。但这会与 husky 的规则产生冲突。旧版本的 husky 支持在 package.json 的 scripts 中定义 git hooks。\n\n#### 2.2.6. 设置更新检测周期（可选）\n\n从 1.10.0 版本开始，elint 支持更新检测功能，提示用户更新到新版本的 preset。\n\n要开启此功能，只需在 preset 的 package.json 文件中添加如下配置：\n\n```json\n{\n  \"elint\": {\n    \"updateCheckInterval\": \"3d\"\n  }\n}\n```\n\n上述配置会让 elint 每三天检测一次是否有新版本 preset。\n\n#### 2.2.7. 发布 npm package\n\n此时项目的目录结构应该是：\n\n```shell\nelint-preset-test\n├── .commitlintrc.js\n├── .eslintrc.js\n├── .huskyrc.js\n├── node_modules\n├── package.json\n└── package-lock.json\n\n1 directory, 5 files\n```\n\n发布 npm package，执行：\n\n```shell\nnpm publish\n```\n> 如果希望更多人发现你的 preset，可以添加关键字 `elint-preset`，[点击此处](https://npms.io/search?q=keywords%3Aelint-preset)可以查看现有可用的 preset。\n\n### 2.3. 安装 preset\n\n刚刚我们已经编写并发布了 preset，现在安装到项目中就好了：\n\n```shell\ncd test-project\n\n# 安装我们刚才新建的 elint-preset-test\nnpm install elint-preset-test --save-dev\n```\n\n安装完成后，你会发现刚才定义在 preset 中的各种配置文件（`.eslintrc.js` 等），都拷贝到了项目的根目录，这是为了兼容各种 IDE 和 build 工具（如 webpack），elint 与他们是可以共存的。\n\n### 2.4. 定义 npm scripts\n\n#### 2.4.1. npm test\n\n按照常规套路，需要在 `package.json` 中定义 `npm test`，如果项目只有 lint，可以这样写：\n\n```json\n{\n  \"scripts\": {\n    \"test\": \"elint lint 'src/**/*.js' 'src/**/*.css'\"\n  }\n}\n```\n\n如果除了 lint 还有其他测试，可以这样写：\n\n```json\n{\n  \"scripts\": {\n    \"test\": \"npm run test:lint && npm run test:other\",\n    \"test:lint\": \"elint lint 'src/**/*.js' 'src/**/*.css'\",\n    \"test:other\": \"...\"\n  }\n}\n```\n\n> 注意: glob 最好加上引号，详见 [ELint CLI](#31-lint)\n\n#### 2.4.2. npm beforecommit\n\n刚才编写 preset 的时候，定义了在 commit 前执行 `npm run beforecommit`，所以我们必须定义好 beforecommit，否则会**报错**：\n\n```json\n{\n  \"scripts\": {\n    \"beforecommit\": \"npm run test:lint && elint lint commit\",\n    \"test\": \"npm run test:lint && npm run test:other\",\n    \"test:lint\": \"elint lint 'src/**/*.js' 'src/**/*.css'\",\n    \"test:other\": \"...\"\n  }\n}\n```\n\n按照上面的写法，commit 之前会执行校验代码和 commit message。至此，elint 已经成功添加到项目中，执行 `npm test` 会校验代码，在 commit 前会校验代码和 commit message\n\n> 万一（虽然不建议）你在 commit 之前什么都不想执行，为了不报错，也要写 `exit 0`。\n\n> 当 lint 运行在 git hooks 中时，文件的范围限定在 **git 暂存区**，也就是你将要提交的文件（详见 [ELint CLI](#31-lint)）。\n\n## 3. ELint CLI\n\n因为我们不推荐全局安装，除了在 npm scripts 和 `.huskyrc.js` 中使用，下面的 `elint` 均代指 `./node_modules/.bin/elint`（或者也可以使用 npm 5.2.0 起内置的 [npx](https://github.com/zkat/npx) 命令）：\n\n### 3.1. lint\n\n`lint` 命令用来执行代码校验和 git commit message 校验。当 lint 运行在 git hooks 中时，文件的搜索范围限定在 **git 暂存区**，也就是只从你将要 commit 的文件中，找到需要校验的文件，执行校验。\n\n```shell\nelint lint [options] [type] [files...]\n```\n\ntype 可选的值：\n\n- es: 执行 eslint\n- style: 执行 stylelint\n- commit: 执行 commitlint\n\n如果不指定 type，默认执行 eslint 和 stylelint\n\noptions 可选的值：\n\n- -f, --fix: 自动修复错误\n- --no-ignore: 忽略 elint 遍历文件时的默认忽略规则\n\n当添加 `--fix` 时，会尝试自动修复问题，无法自动修复的问题依旧会输出出来。\n\n例子：\n\n```shell\n# 校验 js 和 scss\n$ elint lint \"**/*.js\" \"**/*.scss\"\n\n# 校验 js 和 scss，执行自动修复\n$ elint lint \"**/*.js\" \"**/*.scss\" --fix\n\n# 校验 js\n$ elint lint \"**/*.js\"\n$ elint lint es \"**/*.js\"\n\n# 校验 less\n$ elint lint \"**/*.less\"\n$ elint lint style \"**/*.js\"\n\n# 校验 commit message\n$ elint lint commit\n```\n\n**注意**:\n\n当你在 Terminal（或者 npm scripts） 中运行 `elint lint **/*.js` 的时候，glob 会被 Terminal 解析，然后输入给 elint。glob 语法解析的差异可能会导致文件匹配的差异。所以建议，glob 使用引号包裹，防止在输入到 elint 前，被意外解析。\n\n### 3.2. hooks\n\n`hooks` 命令用来安装 & 卸载 git hooks（一般不会用到）：\n\n```shell\nelint hooks [action]\n```\n\n支持的 action：\n\n- install: 安装\n- uninstall: 卸载\n\n例子：\n\n```shell\n$ elint hooks install\n$ elint hooks uninstall\n```\n\n### 3.3. version\n\n输出版本信息\n\n```shell\n$ elint -v\n> elint version\n\n  elint             : 1.2.0-rc.1\n  elint-preset-test : 1.0.15\n\n  Dependencies:\n    eslint     : 4.19.1\n    stylelint  : 9.2.1\n    commitlint : 7.0.0\n    husky      : 1.0.0-rc.8\n```\n\n### 3.4. install\n\n前面讲到的 preset 安装，都是直接执行 `npm install`。其实除了这种方式，还可以直接使用 `elint install` 命令安装：\n\n```shell\nelint install [presetName] [options]\n```\n\n`presetName` 可以忽略 `elint-preset-` 前缀。\n\n支持的 options:\n\n- --registry: 指定 npm 仓库地址，可以输入 url 或者 alias。支持如下的 alias：\n  - npm: [https://registry.npmjs.org/](https://registry.npmjs.org/)\n  - cnpm: [http://r.cnpmjs.org/](http://r.cnpmjs.org/)\n  - taobao: [https://registry.npm.taobao.org/](https://registry.npm.taobao.org/)\n  - nj: [https://registry.nodejitsu.com/](https://registry.nodejitsu.com/)\n  - rednpm: [http://registry.mirror.cqupt.edu.cn](http://registry.mirror.cqupt.edu.cn)\n  - skimdb: [https://skimdb.npmjs.com/registry](https://skimdb.npmjs.com/registry)\n- --keep: 不覆盖旧的配置文件（文件完全一样肯定是不会覆盖的，keep 选项只在有文件有差异时生效）\n\n例子：\n\n```shell\n# 安装 elint-preset-test\n$ elint install test\n\n# 从 cnpm 安装 elint-preset-test\n$ elint install test --registry=https://registry.npm.taobao.org/\n\n# 从 cnpm 安装 elint-preset-test, 使用 alias\n$ elint install test --registry=cnpm\n```\n\n这两种安装方式的最大区别就是：\"否将 preset 视为项目的依赖\"：\n\n|安装方式|区别|\n|:--|:--|\n|`npm install`|把 preset 当成依赖，执行 `npm install` 时，项目根目录的配置文件都可能被更新|\n|`elint install`|把 preset 当成配置源，更新时需要再次执行 `elint install`|\n\n除了上面列举的区别外，`elint install` 无视 cnpm，yarn 的限制，如果你十分依赖 cnpm，yarn 时，可以考虑使用 `elint install` 来安装，但要留意保持 preset 的最新。\n\n没有主推这种方式的原因在于，**elint 的设计初衷就是统一团队规范，规范一旦制定，需要严格执行**。`npm install` 会自动更新并覆盖项目根目录的配置文件，一定程度上避免了随意修改配置文件带来的（不同项目之间）校验规则不统一。另外一点就是由于不推荐全局安装 elint，所以 elint 命令需要用 `./node_modules/.bin/elint` 执行，略显麻烦。\n\n### 3.5. diff\n\n万一你使用了 `elint install`，万一你加了 `keep`，万一你没有趁手的 diff 工具，可以尝试：\n\n```shell\n$ elint diff\n```\n\n输出类似：\n\n```diff\n -------------------------------------------------\n diff .eslintrc.js .eslintrc.old.js\n -------------------------------------------------\n  2 |   'extends': [\n  3 |     'plugin:react/recommended'\n  4 |   ],\n  5 |   'rules': {\n-   |     'no-console': 0\n+ 6 |     'no-console': 2\n  7 |   }\n  8 | };\n```\n\n## 4. 细节 & 原理\n\n作为一个项目的维护者，当你将 elint 集成到你的项目中时，了解一些细节会非常有帮助。\n\n### 4.1. 安装 & 初始化过程\n\n如果你编写好了用于自己团队的 preset，并且按照前面介绍的安装方式安装完成，你会发现，elint 将所有的配置文件从 preset 复制到了项目的根目录，这么做的目的是为了兼容在 IDE、build 工具中使用 lint。所以使用 elint 的同时，你仍然可以按照原来的方式，配置你的 IDE，webpack 等，他们与 elint 完全不冲突。\n\n具体的 preset 初始化过程（install 后自动执行），分为如下两步：\n\n1. 将配置文件 (`.eslintrc.js` 等) 复制到项目的根目录。\n2. 安装 preset 的 `dependencies`，并保存到项目的 `devDependencies` 中。\n\n安装（并初始化）完成后，可以根据你的项目的实际情况，添加 npm scripts，例如 test 时执行 `elint lint '**/*.js' '**/*.less'`\n\n无论是先安装 elint，还是先安装 preset，亦或者同时安装，elint 都能准确的感知到 preset 的存在，并完成所有初始化操作。这项功能主要借助于 [npm hook scripts](https://docs.npmjs.com/misc/scripts#hook-scripts)，这也是当你使用 cnpm 时需要格外注意的原因（解决办法参考下面的[常见问题](#51-cnpm-yarn)）。\n\n### 4.2. 执行过程\n\n执行过程比较简单，对代码的 lint 的过程可以概括为一句话：“elint 根据你输入的 glob，收集并整理文件，交由 eslint、stylelint 执行，然后将结果输出至命令行展示”。\n\n对 git commit 信息的 lint，主要借助于 husky 和 commitlint。安装过程中，会自动添加 git hooks，当 hooks 触发时，执行配置在 `.huskyrc.js` 中的相应命令，就这么简单。\n\n> 执行 commit lint 时，git hook 可以选择 `commit-msg`。\n\n> 因为 git hooks 的注册是在 npm install 后自动执行的，所以，如果万一你的项目还未 git init，hooks 注册必然是失败的。解决办法是在 git init 之后，手动执行 `./node_modules/.bin/elint hooks install`。\n\n## 5. 常见问题\n\n### 5.1. cnpm, yarn\n\n使用 cnpm 的目的无外乎两点：解决网络问题、私有仓库。但问题是 cnpm 的私有实现不支持给 elint 带来极大便利的 [npm hook scripts](https://docs.npmjs.com/misc/scripts#hook-scripts)。所以我们只能放弃 `cnpm` 命令，仅使用它的仓库。\n\n如果你只是单纯想从 cnpm 的仓库安装 npm package，提高安装速度。可以删除 `cnpm`，然后定义 alias:\n\n```shell\n$ alias cnpm='npm --registry=https://registry.npm.taobao.org/ \\\n  --registryweb=https://npm.taobao.org/ \\\n  --userconfig=$HOME/.cnpmrc'\n```\n\n如果你需要使用私有仓库，同样可以删除 `cnpm`，然后定义自己的命令:\n\n```shell\n$ alias mynpm='npm --registry=http://registry.npm.example.com \\\n  --registryweb=http://npm.example.com \\\n  --userconfig=$HOME/.mynpmrc'\n```\n\n关于 yarn，很可惜，目前不支持\n\n> 上面的 `alias` 命令只是临时修改，终端关闭即实现，永久添加请修改 `.bashrc` 或 `.zshrc`。\n\n### 5.2. 为什么不建议全局安装\n\nelint 强依赖 stylelint, eslint 等工具。而对于 eslint，其文档中写到:\n\n> Any plugins or shareable configs that you use must also be installed globally to work with a globally-installed ESLint.\n\n全局安装 lint 工具和所有的 plugin，项目数量较多时容易引起混乱，且可能对 ci、部署等带来麻烦。\n\n### 5.3. 安装失败\n\n可能是 npm 的 [bug](https://github.com/npm/npm-lifecycle/pull/13) 引起的。如果你的 npm 版本在 5.1.0 ～ 6.1.0 之间，请升级至最新版本的 npm。\n\nelint 安装过程中会检测 npm 版本，具体以检测结果为准。\n\n> windows 升级 npm 请参考：[How can I update npm on Windows?](https://stackoverflow.com/questions/18412129/how-can-i-update-npm-on-windows)\n\n### 5.4. git hooks 不执行或报错\n\n如果 git hooks 不执行或者报错，尝试下面的方法:\n\n- 项目处于 git 管理的前提下，执行 `npm install` 安装依赖。\n- 如果你在新建项目，先执行 `npm install`，然后执行 `git init` 的话，手动注册 git hooks（上文的 hooks 命令）。\n- 检查 `.git/hooks` 目录，是否存在非 `.sample` 结尾的文件，如果不存在，手动注册 git hooks。\n- 还是有问题？报 bug。\n\n### 5.5. 配置文件是不是可以 git ignore\n\n如果你能想到这个问题，那么说明你真的理解了 elint 的运作方式。忽略配置文件，防止意外被修改，所有团队成员使用 preset 定义的配置，听起来非常不错。那么从 preset 复制到项目中的各种配置文件，是否可以添加到 `.gitignore` 呢？这要看你的使用场景：\n\n- 如果代码提交到 git 仓库，执行 ci 的过程中会安装依赖。\n- 如果部署项目时，build 过程中不再执行 lint，或者先安装依赖，然后再执行 build。\n\n总之，只要执行 `npm install` 安装依赖，配置文件就会自动添加到项目里；只要你能保证需要用到配置文件的时候它存在（例如你在 webpack 里用了 eslint-loader），就可以忽略它。\n\n再次强调，elint 的设计原则是保证团队规范的严格执行，如果你觉得规则有问题，那么应该提出并推动修改 preset，而不是直接改项目里的配置。\n\n### 5.6. 是否可以安装多个 preset\n\n不可以。安装过程中，如果两个 preset 存在相同的配置文件，后安装会覆盖之前的。如果 package.json 中的依赖包含多个 preset，先后顺序由 npm 决定。\n\n### 5.7. 某些文件没有被校验到\n\n1. 检查你的 glob 写法是否有问题。\n2. 可能是 glob 被传入 elint 之前就被意外解析了，参考 [lint 命令](#31-lint)。\n3. windows 7 + git bash 下测试时发现，npm scripts 里，glob 必须使用双引号包裹\n\n```json\n{\n  \"scripts\": {\n    \"test:lint\": \"elint lint \\\"src/**/*.js\\\"\"\n  }\n}\n```\n\n4. elint 在遍历文件时，会应用一些默认的忽略规则，如果你的文件刚好命中这些规则，可以使用 `--no-ignore` 选项。\n\n```js\nconst defaultIgnore = [\n  '**/node_modules/**',\n  '**/bower_components/**',\n  '**/flow-typed/**',\n  '**/.nyc_output/**',\n  '**/coverage/**',\n  '**/.git',\n  '**/*.min.js',\n  '**/*.min.css'\n];\n\n// 除此之外还有 .gitignore 定义的忽略规则\n```\n\n### 5.8. 为什么添加了 fix 选项还是有问题输出\n\n并不是所有规则都支持自动修复，具体可以查看 [eslint rules](https://eslint.org/docs/rules/) 和 [stylelint rules](https://stylelint.io/user-guide/rules/)，可以自动修复的规则都有标识。\n\n### 5.9. 如何禁用颜色输出\n\n设置环境变量 `FORCE_COLOR` 为 `0` 即可，例如：\n\n```shell\n$ FORCE_COLOR=0 elint lint \"src/**/*.js\"\n```\n\n### 5.10. lint 执行失败，提示包缺失\n\n如果遇到如下错误，特别在 CI 环境下。可能是 `package-lock.json` 引起的。\n\n```shell\nError: Cannot find module 'eslint-config-xxx'\n```\n\n请按照如下步骤尝试修复：\n\n1. 删除 `node_modules` 和 `package-lock.json`。\n2. 查看 `package.json` 文件，使用 elint 时只需安装 elint 和 preset，清理掉遗留的 eslint 等依赖。\n3. 重新执行 `npm install`\n\n### 5.11. TypeScript\n\nelint 目前没有集成 tslint 的计划，typescript 用户建议使用 [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint)。\n\n## 6. 参考\n\n- eslint: [Github](https://github.com/eslint/eslint) | [文档](http://eslint.org)\n- stylelint: [Github](https://github.com/stylelint/stylelint) | [文档](https://stylelint.io)\n- commitlint: [Github](https://github.com/marionebl/commitlint) | [文档](http://marionebl.github.io/commitlint/#/)\n- husky: [Github](https://github.com/typicode/husky)\n- git hooks: [文档](https://git-scm.com/docs/githooks)\n- glob primer: [文档](https://github.com/isaacs/node-glob#glob-primer)\n\n[node-image]: https://img.shields.io/node/v/elint.svg?maxAge=3600&style=flat-square\n[node-url]: https://nodejs.org\n[npm-image]: https://img.shields.io/npm/v/elint.svg?maxAge=3600&style=flat-square\n[npm-url]: https://www.npmjs.com/package/elint\n[license-image]: https://img.shields.io/github/license/keenwon/elint.svg?maxAge=3600&style=flat-square\n[license-url]: https://github.com/keenwon/elint/blob/master/LICENSE\n[circleci-image]: https://img.shields.io/circleci/project/github/keenwon/elint.svg?maxAge=3600&logo=circleci&style=flat-square\n[circleci-url]: https://circleci.com/gh/keenwon/elint\n[travis-image]: https://img.shields.io/travis/keenwon/elint.svg?maxAge=3600&logo=travis&style=flat-square\n[travis-url]: https://travis-ci.org/keenwon/elint\n[azure-image]: https://img.shields.io/azure-devops/build/keenwon/github/1.svg?maxAge=3600&logo=azure-devops&style=flat-square\n[azure-url]: https://dev.azure.com/keenwon/github/_build/latest?definitionId=1\n[coveralls-image]: https://img.shields.io/coveralls/github/keenwon/elint.svg?maxAge=3600&style=flat-square\n[coveralls-url]: https://coveralls.io/github/keenwon/elint?branch=master\n[dependencies-image]: https://img.shields.io/david/keenwon/elint.svg?maxAge=3600&style=flat-square\n[dependencies-url]: https://david-dm.org/keenwon/elint\n[devdependencies-image]: https://img.shields.io/david/dev/keenwon/elint.svg?maxAge=3600&style=flat-square\n[devdependencies-url]: https://david-dm.org/keenwon/elint?type=dev\n[lgtm-alerts-image]: https://img.shields.io/lgtm/alerts/g/keenwon/elint.svg?logo=lgtm&logoWidth=18&maxAge=3600&style=flat-square\n[lgtm-alerts-url]: https://lgtm.com/projects/g/keenwon/elint/alerts/\n[lgtm-grade-image]: https://img.shields.io/lgtm/grade/javascript/g/keenwon/elint.svg?logo=lgtm&logoWidth=18&maxAge=3600&style=flat-square\n[lgtm-grade-url]: https://lgtm.com/projects/g/keenwon/elint/context:javascript\n","readmeFilename":"README.md","gitHead":"40d9fb0b56e428b9dc1fde8e0bddd798d721eb36","_id":"elint@2.0.0-alpha.2","_nodeVersion":"12.2.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-Z2/koYGs5EZPC7S7wTxsn4l/M928VfxJEtHuue5MK+RSmjnGpl3uWpu87zHoJ1+6vLFxfU39Bj3VpJfXxdkmcA==","shasum":"446ffcbfdcfa293ca843c05e3b33b7d39aff6a3f","tarball":"https://registry.npmjs.org/elint/-/elint-2.0.0-alpha.2.tgz","fileCount":55,"unpackedSize":96589,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdTThQCRA9TVsSAnZWagAAMy4P/iPULDpUNtR7zI5pk+2V\n5LTXAG7sFJEInTl7WDoiQ+0l+vOQMwuPqCuOyFLsLNhIekevP2Wtu3f/n5Vc\n5SKU/LrSFv3PDe9sM5qk5ql4pxlfA+4fxKgMXjmkm4zbhXYmD3nb55YZ6D2l\nPMj3yznlm8ZFP+ZxSG4w4OJaf8Z/HdRfPEMwmMr2DSeowQLBpOxCUonRxrnX\nsOo7lQjc+B4/FkKSnnkws4RFtYIvZ+JUqsjytxmVBBTx//ft91k2L79Aud0W\ntjkKQLDdDIxGbr+AYzuDG4tsYdFptumVB1E7i3h/Bj0Txuosm9nrEMkUMNgW\npgNuUsKaLsy4XuYdc15hRfIv+F9ra2YYHLTJn9n7vt+ODydKmDGOPWxp3tXV\nafOILRs8sARCYtD8N0wH47cs2e/VNAkjOZCDT49Yu59BOsgi+8j821GnmOhc\nJGLDKX5ZSIlBGxg/fR7RKeg6OdybGWxEWHVUhSwbH51OCsOm0zzaqpNWiqgw\no8Wi6uphfCbPykNRAKFl7tKD7BLqO9tPCxbm5kobtzd9ZuCPGmlfyru/qCRA\nQxyl3pmsfGyCNUH17H2A4Pw/gCktQ8Vm5W5YCIP9Wng2EzK7ee0HM5b2It3v\nfg0YYknpXZlYF5E66iryyavNIBaJ8oP/QvfLGE2w6WU7Xw5fvavkiTQ3blfb\nqnI0\r\n=UPSb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDvGJaYeZcOMLs6HHAVJLKqf7CDlQRbFv0aVbSX7QqRvwIgYKteU8I2gi9nsH/DAscYVxQQZU8QYtG3Phxnhso3C5Y="}]},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"}],"_npmUser":{"name":"keenwon","email":"semanwmj@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_2.0.0-alpha.2_1565341775815_0.4261950626276121"},"_hasShrinkwrap":false},"2.0.0-alpha.3":{"name":"elint","version":"2.0.0-alpha.3","description":"A easy way to lint your code.","main":"src/index.js","bin":{"elint":"./bin/cli.js"},"scripts":{"test":"npm run test:lint && npm run test:unit:coverage && npm run test:system","test:lint":"eslint --format codeframe \"+(bin|src|test)/**/*.js\" \"scripts/postinstall\" --fix","test:unit":"mocha \"test/unit/**/*.spec.js\" --timeout 15000","test:unit:coverage":"nyc --reporter=html --reporter=text npm run test:unit && nyc report --reporter=text-lcov | coveralls","test:system":"node test/system/utils/init.js && ava && node test/system/utils/clean.js","postinstall":"node ./src/postinstall.js"},"repository":{"type":"git","url":"git+https://github.com/x-orpheus/elint.git"},"keywords":["eslint","eslintplugin","eslintconfig","stylelint","commitlint","standard","jshint","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","bugs":{"url":"https://github.com/x-orpheus/elint/issues"},"homepage":"https://github.com/x-orpheus/elint#readme","engines":{"node":">=8.9.0"},"dependencies":{"@commitlint/core":"^8.1.0","boxen":"^4.1.0","chalk":"^2.4.2","commander":"^3.0.0","configstore":"^5.0.0","debug":"^4.1.1","diff":"^4.0.1","eslint":"^6.1.0","execa":"^2.0.3","figures":"^3.0.0","find-process":"^1.4.2","fs-extra":"^8.1.0","globby":"^10.0.1","husky":"^2.7.0","lodash":"^4.17.15","md5":"^2.2.1","micromatch":"^4.0.2","ms":"^2.1.2","node-fetch":"^2.6.0","semver":"^6.3.0","semver-utils":"^1.1.4","staged-git-files":"^1.2.0","stylelint":"~10.1.0","which":"^1.3.1","write-json-file":"^4.2.0"},"devDependencies":{"@commitlint/cli":"^8.1.0","ava":"^2.2.0","chai":"^4.2.0","chai-as-promised":"^7.1.1","coveralls":"^3.0.6","deep-equal-in-any-order":"^1.0.18","eslint-config-standard":"^13.0.1","eslint-plugin-import":"^2.18.2","eslint-plugin-node":"^9.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-standard":"^4.0.0","mocha":"^6.2.0","nyc":"^14.1.1","sinon":"^7.4.1"},"ava":{"files":["test/system/**/*.spec.js"],"failFast":true,"verbose":true},"gitHead":"a40dc326a7eef3756ab75adf018abc8544070c44","_id":"elint@2.0.0-alpha.3","_nodeVersion":"12.7.0","_npmVersion":"6.10.0","dist":{"integrity":"sha512-Isidtz8hlU/41HtmyGbx5WuD3EQzu0IWVwrqiqtnaUtCFuWeARY4WDbVAb1vAhyYVJcILS3ZjkgzLoM/g0q2CA==","shasum":"fc25d1444cd1a659f1815b67fbc464b45f1274df","tarball":"https://registry.npmjs.org/elint/-/elint-2.0.0-alpha.3.tgz","fileCount":55,"unpackedSize":96642,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdVA9LCRA9TVsSAnZWagAASGsP/1s9uP6VSk+WCkvacCue\nwG2Mt2F9htePbKolGa6RgpEcfN3WR0zStfMIYuxcdvC/nKZz4Ei6mduIVUXl\nBz6NaCs58Mua5RTY/MQTH19zPUBTKfOQ4rQx4sTEqXBOIOsrZdgGDtSY2iiU\ns1IePDIYbc0iRoPU4Vo5udTRKIjnfpDdoH1A7DkgS1pwBuJ9hDxnlOBALzhj\nbds9vZcCCGY2qyaJVU8pBDnA4+OcLkV1BD0zteDJPW2gVJLrNj1LAGDszaiO\nNJR16daAWoh2WpnCBQvpmXQOCd2JQ/p30GkJ0Q46rvG7zZ84nZumdLb9Y80S\n06b0Qu4rv41dEAdRYcwKKKnK+C2fdWFzzGC0bBGfnMDdIMFMAb9w1zhemNOv\n5rshtuwXCU6lrxuGidxGMdesi401XofkrMTQI5xB0/DvWUyP2HFvqi8uiKD9\n4NqsNhNWlNe/jCwZI8OCC7cWb8ApynG3IoEdwd7Ep43yd3jkGklloSMHhpbK\nL29LpC3yB5iY6LRgNTVi5nCptS4PEbzV/DfW6xOV+hLHZ4NWBuu0b7EB4k1F\nONhxZYDNeDns2IAgXERe9U5Dh0CnvY6vM7L2hhbC6+nTFlEndrwFWjr2tdXA\nEanGx5MKxf8WjMKieuavwVM4argR+3VvG5ZAbP+K/RDTtBVIQPjxgrZaJ1X8\npODP\r\n=O0sA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD2hl+Up2XVN5KxUj/0VcAP2WQX5bJXvIF//mCwkTlZjQIgQ7inIhBctb2jlyHppbC4YHnF2hLR1CtqxDGMyphw9qU="}]},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"}],"_npmUser":{"name":"keenwon","email":"semanwmj@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_2.0.0-alpha.3_1565790026918_0.48529665381580833"},"_hasShrinkwrap":false},"2.0.0-rc.1":{"name":"elint","version":"2.0.0-rc.1","description":"A easy way to lint your code.","main":"src/index.js","bin":{"elint":"bin/cli.js"},"scripts":{"test":"npm run test:lint && npm run test:unit && npm run test:system","test:lint":"eslint --format codeframe \"+(bin|src|test)/**/*.js\" --fix","test:unit":"jest --config test/unit/jest.config.js","test:system":"jest --config test/system/jest.config.js --runInBand"},"repository":{"type":"git","url":"git+https://github.com/x-orpheus/elint.git"},"keywords":["eslint","eslintplugin","eslintconfig","stylelint","commitlint","standard","jshint","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","bugs":{"url":"https://github.com/x-orpheus/elint/issues"},"homepage":"https://github.com/x-orpheus/elint#readme","engines":{"node":">=10.12.0"},"dependencies":{"@commitlint/core":"^11.0.0","boxen":"^4.2.0","chalk":"^4.1.0","commander":"^6.2.1","configstore":"^5.0.1","debug":"^4.3.1","eslint":"^7.16.0","execa":"^5.0.0","figures":"^3.2.0","find-process":"^1.4.4","fs-extra":"^9.0.1","globby":"^11.0.1","husky":"^2.7.0","is-npm":"^5.0.0","lodash":"^4.17.20","micromatch":"^4.0.2","ms":"^2.1.3","node-fetch":"^2.6.1","prettier":"^2.2.1","semver":"^7.3.4","staged-git-files":"^1.2.0","stylelint":"~13.8.0"},"devDependencies":{"@commitlint/cli":"^11.0.0","eslint-config-standard":"^16.0.2","eslint-plugin-import":"^2.22.0","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-standard":"^5.0.0","jest":"^26.6.3","jest-extended":"^0.11.5"},"ava":{"files":["test/system/**/*.spec.js"],"timeout":"600s","failFast":true,"verbose":true},"readme":"# ELint\n\n[![Node engine][node-image]][node-url]\n[![NPM version][npm-image]][npm-url]\n[![License][license-image]][license-url]\n[![Coverage Status][codecov-image]][codecov-url]\n[![Dependencies Status][dependencies-image]][dependencies-url]\n[![Lgtm Alerts][lgtm-alerts-image]][lgtm-alerts-url]\n[![Lgtm Grade][lgtm-grade-image]][lgtm-grade-url]\n\n|unit|system|\n|:--:|:--:|\n|[![unit test status][unit-test-image]][unit-test-url]|[![system test status][system-test-image]][system-test-url]|\n\n专为团队设计的 lint 工具\n\n**目录**：\n\n<!-- TOC -->\n\n- [1. 核心概念](#1-核心概念)\n  - [1.1. ELint](#11-elint)\n  - [1.2. Preset](#12-preset)\n- [2. 使用指南](#2-使用指南)\n  - [2.1. 安装 elint](#21-安装-elint)\n  - [2.2. 编写 preset](#22-编写-preset)\n    - [2.2.1. 新建一个 npm package](#221-新建一个-npm-package)\n    - [2.2.2. 添加 eslint 配置文件（可选）](#222-添加-eslint-配置文件可选)\n    - [2.2.3. 添加 stylelint 配置文件（可选）](#223-添加-stylelint-配置文件可选)\n    - [2.2.4. 添加 commitlint 配置文件（可选）](#224-添加-commitlint-配置文件可选)\n    - [2.2.5. 添加 git hooks（可选）](#225-添加-git-hooks可选)\n    - [2.2.6. 设置更新检测周期（可选）](#226-设置更新检测周期可选)\n    - [2.2.7. 发布 npm package](#227-发布-npm-package)\n  - [2.3. 安装 preset](#23-安装-preset)\n  - [2.4. 定义 npm scripts](#24-定义-npm-scripts)\n    - [2.4.1. npm test](#241-npm-test)\n    - [2.4.2. npm beforecommit](#242-npm-beforecommit)\n- [3. ELint CLI](#3-elint-cli)\n  - [3.1. lint](#31-lint)\n  - [3.2. hooks](#32-hooks)\n  - [3.3. version](#33-version)\n  - [3.4. install](#34-install)\n  - [3.5. diff](#35-diff)\n- [4. 细节 & 原理](#4-细节--原理)\n  - [4.1. 安装 & 初始化过程](#41-安装--初始化过程)\n  - [4.2. 执行过程](#42-执行过程)\n- [5. 常见问题](#5-常见问题)\n  - [5.1. cnpm, yarn](#51-cnpm-yarn)\n  - [5.2. 为什么不建议全局安装](#52-为什么不建议全局安装)\n  - [5.3. 安装失败](#53-安装失败)\n  - [5.4. git hooks 不执行或报错](#54-git-hooks-不执行或报错)\n  - [5.5. 配置文件是不是可以 git ignore](#55-配置文件是不是可以-git-ignore)\n  - [5.6. 是否可以安装多个 preset](#56-是否可以安装多个-preset)\n  - [5.7. 某些文件没有被校验到](#57-某些文件没有被校验到)\n  - [5.8. 为什么添加了 fix 选项还是有问题输出](#58-为什么添加了-fix-选项还是有问题输出)\n  - [5.9. 如何禁用颜色输出](#59-如何禁用颜色输出)\n  - [5.10. lint 执行失败，提示包缺失](#510-lint-执行失败提示包缺失)\n  - [5.11. TypeScript](#511-typescript)\n- [6. 参考](#6-参考)\n\n<!-- /TOC -->\n\n## 1. 核心概念\n\n在使用 elint 之前，需要先了解几个核心概念。\n\n### 1.1. ELint\n\nelint 是一款代码校验工具，基于 eslint、stylelint、commitlint、prettier 等工具封装而成。elint 本身不包含任何校验规则，校验规则通过 preset 定义。elint 的主要功能包括：\n\n- 支持对 js，css 的校验 (eslint, stylelint)。\n- 支持对 git commit message 的校验 (husky, commitlint)。\n- 支持对代码进行格式化 (prettier)。\n- **编写**定制化、场景化的 preset，preset 包含所有验证规则，**保证团队内部校验规则的一致性和可复用**。\n\n### 1.2. Preset\n\n简单来说，preset 就是一个 npm package，可以理解为”规则集“。\n\n只有 elint 是不够的，因为它不知道具体的校验规则，而 preset 就是用来定义规则的。preset 大概长这样：\n\n```shell\nelint-preset-<name>\n├── .commitlintrc.js    # 定义 commitlint 规则，用于 git commit message 的校验\n├── .eslintignore       # 定义 eslint 忽略规则\n├── .eslintrc.js        # 定义 eslint 规则，用于 js 的校验\n├── .huskyrc.js         # 定义 git hooks, 可在 commit 前执行 commitlint 等操作\n├── node_modules\n├── package.json\n├── package-lock.json\n├── .prettierignore     # 定义 prettier 忽略规则\n├── .prettierrc.js      # 定义 prettier 的规则\n├── .stylelintignore    # 定义 stylelint 忽略规则\n└── .stylelintrc.js     # 定义 stylelint 的规则，用于 css 的校验\n```\n\n要求：\n\n1. npm package name 必须以 `elint-preset-` 开头，如： `elint-preset-<name>` 或 `@team/elint-preset-<name>`。\n2. linter 的配置文件名必须是 `.commitlintrc.js`, `.eslintrc.js`, `.stylelintrc.js`, `.prettierrc.js`。\n3. 对于 eslint、stylelint 和 prettier，支持使用 `.eslintignore`, `.stylelintignore`, `.prettierignore` 定义需要忽略校验的文件和文件夹。\n4. git hooks (使用 husky) 的配置文件名必须是 `.huskyrc.js`。\n5. 所有配置文件必须放在 preset 的根目录。\n6. 依赖的 linter plugin（例如 eslint-plugin-react），必须明确定义在 `package.json` 的 `dependencies` 中。\n\n满足以上要求的 npm package 就是一个合法的 elint preset。\n\n> 一般来说，不建议把 `.eslintignore`，`.stylelintignore`, `.prettierignore` 添加到 preset 中，因为 preset 应该对所有项目都是适用的（除非你的 preset 限定在一个很小的范围内使用，各个项目的目录结构都是一致的，此时可以使用它们来定义需要忽略校验的文件和文件夹）。\n\n> 在 `package.json` 中添加关键字 `elint-preset` 会方便大家找到。[这里](https://npms.io/search?q=keywords%3Aelint-preset)可以查找现有的 preset。\n\n> eslint, stylelint, commitlint, husky 等配置文件的语法规则，请阅读[参考](#6-参考)一节提供的文档。\n\n## 2. 使用指南\n\n开始使用 elint 之前，请先检查下你使用 node 和 npm 版本。运行 elint 需要：\n\n- node：>= 6.0.0，建议尽量使用新版本。\n- npm：>= 3.8.6，同样建议使用新版本。另外部分版本有 bug，可能会导致安装失败，详情查看[常见问题](#53-安装失败)。\n\n下面我们一起从零开始，一步一步的看看如何将 elint 集成到项目中。\n\n### 2.1. 安装 elint\n\n首先要安装 elint：\n\n```shell\n# 假设项目是 test-project\ncd test-project\n\n# 安装 elint\nnpm install elint --save-dev\n```\n\n> 如果你使用 yarn，cnpm（包括基于 cnpm 创建的私有仓库） 等包管理工具，请参考\"[内部细节](#4-细节--原理)\"和\"[常见问题](#51-cnpm-yarn)\"章节，我们的示例中统一使用 npm。\n\n> 强烈**不建议**全局安装（具体原因，请阅读[常见问题](#52-为什么不建议全局安装)）。\n\n### 2.2. 编写 preset\n\n安装完 elint 后，我们需要安装 preset，因为所有的校验规则（rules）都定义在 preset 中。一般来说，一个团队应该有一套编码规范，根据编码规范编写好 preset 后，团队中的各个项目直接安装使用即可，不必为每个项目都新建一个 preset。\n\n> 在一个团队里，可能一个 preset 并不能适应全部场景，那么我们可以根据不同的场景定义多个 preset。例如 `@team/elint-preset-h5`, `@team/elint-preset-node` 等。要覆盖所有项目，并不需要多少 preset。\n\n这里我们假设团队还没有任何 preset，一起看下如何新建它：\n\n#### 2.2.1. 新建一个 npm package\n\n上文已经讲过了，preset 本质上还是一个 npm package，所以新建 preset 的第一步就是新建 npm package：\n\n```shell\n# 假设叫 elint-preset-test\nmkdir elint-preset-test\n\ncd elint-preset-test\n\n# 为了方便演示，全部使用默认值，实际项目中酌情修改\nnpm init -y\n```\n\n#### 2.2.2. 添加 eslint 配置文件（可选）\n\n> 这步是可选的，如果你不需要校验 js 文件，可以直接跳过（下同）\n\n首先新建配置文件，名称必须是 `.eslintrc.js`, 参考上文的 [preset 约定](#12-preset)：\n\n```shell\ntouch .eslintrc.js\n```\n\n`.eslintrc.js` 写入如下内容：\n\n```js\nmodule.exports = {\n  'extends': [\n    // 使用 plugin eslint-plugin-react\n    'plugin:react/recommended'\n  ],\n  'rules': {\n    // 禁止 console\n    'no-console': 2\n  }\n};\n```\n\n因为使用了 plugin `eslint-plugin-react`，所以必须使用 npm 安装，且保存到 `package.json` 的 `dependencies` 中（无论是从语义方面考虑，还是上文关于 preset 的约定，都应该保存到 `dependencies` 中）：\n\n```shell\nnpm install eslint-plugin-react --save\n```\n\n> 因为我们使用 elint 执行校验，而 elint 已经集成了 eslint，stylelint 等工具，所以这里不需要再安装了，只需安装额外的 plugin。\n\n#### 2.2.3. 添加 stylelint 配置文件（可选）\n\n此处省略，和 eslint 一样的做法。\n\n#### 2.2.4. 添加 commitlint 配置文件（可选）\n\n新建配置文件 `.commitlintrc.js`：\n\n```shell\ntouch .commitlintrc.js\n```\n\n`.commitlintrc.js` 写入如下内容：\n\n```js\nmodule.exports = {\n  rules: {\n    // type 不能为空\n    'type-empty': [2, 'never'],\n    // type 必须是 build 或 ci\n    'type-enum': [2, 'always', [\n      'build',\n      'ci'\n    ]]\n  }\n};\n```\n\n#### 2.2.5. 添加 git hooks（可选）\n\n新建配置文件 `.huskyrc.js`：\n\n```shell\ntouch .huskyrc.js\n```\n\n`.huskyrc.js` 写入如下内容\n\n```js\nmodule.exports = {\n  'hooks': {\n    /**\n     * beforecommit 可以在项目的 package.json 中自由定义\n     * 例如可以执行代码校验和 commitlint，或者都执行\n     */\n    'commit-msg': 'npm run beforecommit'\n  }\n}\n```\n\n> 这里配置 git hooks 执行 `npm run beforecommit`，所以你可以在项目中自由定义要执行的操作（下面会详细解释）。\n\n> **注意**：\n>\n> 可能你会觉得，命名为 `precommit` 比 `beforecommit` 更合适。没错，单纯从命名的角度讲，`precommit` 确实更好。但这会与 husky 的规则产生冲突。旧版本的 husky 支持在 package.json 的 scripts 中定义 git hooks。\n\n#### 2.2.6. 设置更新检测周期（可选）\n\n从 1.10.0 版本开始，elint 支持更新检测功能，提示用户更新到新版本的 preset。\n\n要开启此功能，只需在 preset 的 package.json 文件中添加如下配置：\n\n```json\n{\n  \"elint\": {\n    \"updateCheckInterval\": \"3d\"\n  }\n}\n```\n\n上述配置会让 elint 每三天检测一次是否有新版本 preset。\n\n#### 2.2.7. 发布 npm package\n\n此时项目的目录结构应该是：\n\n```shell\nelint-preset-test\n├── .commitlintrc.js\n├── .eslintrc.js\n├── .huskyrc.js\n├── node_modules\n├── package.json\n└── package-lock.json\n\n1 directory, 5 files\n```\n\n发布 npm package，执行：\n\n```shell\nnpm publish\n```\n> 如果希望更多人发现你的 preset，可以添加关键字 `elint-preset`，[点击此处](https://npms.io/search?q=keywords%3Aelint-preset)可以查看现有可用的 preset。\n\n### 2.3. 安装 preset\n\n刚刚我们已经编写并发布了 preset，现在安装到项目中就好了：\n\n```shell\ncd test-project\n\n# 安装我们刚才新建的 elint-preset-test\nnpm install elint-preset-test --save-dev\n```\n\n安装完成后，你会发现刚才定义在 preset 中的各种配置文件（`.eslintrc.js` 等），都拷贝到了项目的根目录，这是为了兼容各种 IDE 和 build 工具（如 webpack），elint 与他们是可以共存的。\n\n### 2.4. 定义 npm scripts\n\n#### 2.4.1. npm test\n\n按照常规套路，需要在 `package.json` 中定义 `npm test`，如果项目只有 lint，可以这样写：\n\n```json\n{\n  \"scripts\": {\n    \"test\": \"elint lint 'src/**/*.js' 'src/**/*.css'\"\n  }\n}\n```\n\n如果除了 lint 还有其他测试，可以这样写：\n\n```json\n{\n  \"scripts\": {\n    \"test\": \"npm run test:lint && npm run test:other\",\n    \"test:lint\": \"elint lint 'src/**/*.js' 'src/**/*.css'\",\n    \"test:other\": \"...\"\n  }\n}\n```\n\n> 注意: glob 最好加上引号，详见 [ELint CLI](#31-lint)\n\n#### 2.4.2. npm beforecommit\n\n刚才编写 preset 的时候，定义了在 commit 前执行 `npm run beforecommit`，所以我们必须定义好 beforecommit，否则会**报错**：\n\n```json\n{\n  \"scripts\": {\n    \"beforecommit\": \"npm run test:lint && elint lint commit\",\n    \"test\": \"npm run test:lint && npm run test:other\",\n    \"test:lint\": \"elint lint 'src/**/*.js' 'src/**/*.css'\",\n    \"test:other\": \"...\"\n  }\n}\n```\n\n按照上面的写法，commit 之前会执行校验代码和 commit message。至此，elint 已经成功添加到项目中，执行 `npm test` 会校验代码，在 commit 前会校验代码和 commit message\n\n> 万一（虽然不建议）你在 commit 之前什么都不想执行，为了不报错，也要写 `exit 0`。\n\n> 当 lint 运行在 git hooks 中时，文件的范围限定在 **git 暂存区**，也就是你将要提交的文件（详见 [ELint CLI](#31-lint)）。\n\n## 3. ELint CLI\n\n因为我们不推荐全局安装，除了在 npm scripts 和 `.huskyrc.js` 中使用，下面的 `elint` 均代指 `./node_modules/.bin/elint`（或者也可以使用 npm 5.2.0 起内置的 [npx](https://github.com/zkat/npx) 命令）：\n\n### 3.1. lint\n\n`lint` 命令用来执行代码校验和 git commit message 校验。当 lint 运行在 git hooks 中时，文件的搜索范围限定在 **git 暂存区**，也就是只从你将要 commit 的文件中，找到需要校验的文件，执行校验。\n\n```shell\nelint lint [options] [type] [files...]\n```\n\ntype 可选的值：\n\n- es: 执行 eslint\n- style: 执行 stylelint\n- commit: 执行 commitlint\n\n如果不指定 type，默认执行 eslint 和 stylelint\n\noptions 可选的值：\n\n- -f, --fix: 自动修复错误\n- --no-ignore: 忽略 elint 遍历文件时的默认忽略规则\n- -p, --prettier: 检测代码格式，与 fix 共用时会对代码进行格式化\n\n当添加 `--fix` 时，会尝试自动修复问题，无法自动修复的问题依旧会输出出来。\n\n例子：\n\n```shell\n# 校验 js 和 scss\n$ elint lint \"**/*.js\" \"**/*.scss\"\n\n# 校验 js 和 scss，执行自动修复\n$ elint lint \"**/*.js\" \"**/*.scss\" --fix\n\n# 校验 js\n$ elint lint \"**/*.js\"\n$ elint lint es \"**/*.js\"\n\n# 校验 less\n$ elint lint \"**/*.less\"\n$ elint lint style \"**/*.js\"\n\n# 校验 commit message\n$ elint lint commit\n```\n\n**注意**:\n\n当你在 Terminal（或者 npm scripts） 中运行 `elint lint **/*.js` 的时候，glob 会被 Terminal 解析，然后输入给 elint。glob 语法解析的差异可能会导致文件匹配的差异。所以建议，glob 使用引号包裹，防止在输入到 elint 前，被意外解析。\n\n### 3.2. hooks\n\n`hooks` 命令用来安装 & 卸载 git hooks（一般不会用到）：\n\n```shell\nelint hooks [action]\n```\n\n支持的 action：\n\n- install: 安装\n- uninstall: 卸载\n\n例子：\n\n```shell\n$ elint hooks install\n$ elint hooks uninstall\n```\n\n### 3.3. version\n\n输出版本信息\n\n```shell\n$ elint -v\n> elint version\n\n  elint             : 1.2.0-rc.1\n  elint-preset-test : 1.0.15\n\n  Dependencies:\n    eslint     : 4.19.1\n    stylelint  : 9.2.1\n    commitlint : 7.0.0\n    husky      : 1.0.0-rc.8\n```\n\n### 3.4. install\n\n前面讲到的 preset 安装，都是直接执行 `npm install`。其实除了这种方式，还可以直接使用 `elint install` 命令安装：\n\n```shell\nelint install [presetName] [options]\n```\n\n`presetName` 可以忽略 `elint-preset-` 前缀。\n\n支持的 options:\n\n- --registry: 指定 npm 仓库地址，可以输入 url 或者 alias。支持如下的 alias：\n  - npm: [https://registry.npmjs.org/](https://registry.npmjs.org/)\n  - cnpm: [http://r.cnpmjs.org/](http://r.cnpmjs.org/)\n  - taobao: [https://registry.npm.taobao.org/](https://registry.npm.taobao.org/)\n  - nj: [https://registry.nodejitsu.com/](https://registry.nodejitsu.com/)\n  - rednpm: [http://registry.mirror.cqupt.edu.cn](http://registry.mirror.cqupt.edu.cn)\n  - skimdb: [https://skimdb.npmjs.com/registry](https://skimdb.npmjs.com/registry)\n- --keep: 不覆盖旧的配置文件（文件完全一样肯定是不会覆盖的，keep 选项只在有文件有差异时生效）\n\n例子：\n\n```shell\n# 安装 elint-preset-test\n$ elint install test\n\n# 从 cnpm 安装 elint-preset-test\n$ elint install test --registry=https://registry.npm.taobao.org/\n\n# 从 cnpm 安装 elint-preset-test, 使用 alias\n$ elint install test --registry=cnpm\n```\n\n这两种安装方式的最大区别就是：\"否将 preset 视为项目的依赖\"：\n\n|安装方式|区别|\n|:--|:--|\n|`npm install`|把 preset 当成依赖，执行 `npm install` 时，项目根目录的配置文件都可能被更新|\n|`elint install`|把 preset 当成配置源，更新时需要再次执行 `elint install`|\n\n除了上面列举的区别外，`elint install` 无视 cnpm，yarn 的限制，如果你十分依赖 cnpm，yarn 时，可以考虑使用 `elint install` 来安装，但要留意保持 preset 的最新。\n\n没有主推这种方式的原因在于，**elint 的设计初衷就是统一团队规范，规范一旦制定，需要严格执行**。`npm install` 会自动更新并覆盖项目根目录的配置文件，一定程度上避免了随意修改配置文件带来的（不同项目之间）校验规则不统一。另外一点就是由于不推荐全局安装 elint，所以 elint 命令需要用 `./node_modules/.bin/elint` 执行，略显麻烦。\n\n### 3.5. diff\n\n万一你使用了 `elint install`，万一你加了 `keep`，万一你没有趁手的 diff 工具，可以尝试：\n\n```shell\n$ elint diff\n```\n\n输出类似：\n\n```diff\n -------------------------------------------------\n diff .eslintrc.js .eslintrc.old.js\n -------------------------------------------------\n  2 |   'extends': [\n  3 |     'plugin:react/recommended'\n  4 |   ],\n  5 |   'rules': {\n-   |     'no-console': 0\n+ 6 |     'no-console': 2\n  7 |   }\n  8 | };\n```\n\n## 4. 细节 & 原理\n\n作为一个项目的维护者，当你将 elint 集成到你的项目中时，了解一些细节会非常有帮助。\n\n### 4.1. 安装 & 初始化过程\n\n如果你编写好了用于自己团队的 preset，并且按照前面介绍的安装方式安装完成，你会发现，elint 将所有的配置文件从 preset 复制到了项目的根目录，这么做的目的是为了兼容在 IDE、build 工具中使用 lint。所以使用 elint 的同时，你仍然可以按照原来的方式，配置你的 IDE，webpack 等，他们与 elint 完全不冲突。\n\n具体的 preset 初始化过程（install 后自动执行），分为如下两步：\n\n1. 将配置文件 (`.eslintrc.js` 等) 复制到项目的根目录。\n2. 安装 preset 的 `dependencies`，并保存到项目的 `devDependencies` 中。\n\n安装（并初始化）完成后，可以根据你的项目的实际情况，添加 npm scripts，例如 test 时执行 `elint lint '**/*.js' '**/*.less'`\n\n无论是先安装 elint，还是先安装 preset，亦或者同时安装，elint 都能准确的感知到 preset 的存在，并完成所有初始化操作。这项功能主要借助于 [npm hook scripts](https://docs.npmjs.com/misc/scripts#hook-scripts)，这也是当你使用 cnpm 时需要格外注意的原因（解决办法参考下面的[常见问题](#51-cnpm-yarn)）。\n\n### 4.2. 执行过程\n\n执行过程比较简单，对代码的 lint 的过程可以概括为一句话：“elint 根据你输入的 glob，收集并整理文件，交由 eslint、stylelint 执行，然后将结果输出至命令行展示”。\n\n对 git commit 信息的 lint，主要借助于 husky 和 commitlint。安装过程中，会自动添加 git hooks，当 hooks 触发时，执行配置在 `.huskyrc.js` 中的相应命令，就这么简单。\n\n> 执行 commit lint 时，git hook 可以选择 `commit-msg`。\n\n> 因为 git hooks 的注册是在 npm install 后自动执行的，所以，如果万一你的项目还未 git init，hooks 注册必然是失败的。解决办法是在 git init 之后，手动执行 `./node_modules/.bin/elint hooks install`。\n\n## 5. 常见问题\n\n### 5.1. cnpm, yarn\n\n使用 cnpm 的目的无外乎两点：解决网络问题、私有仓库。但问题是 cnpm 的私有实现不支持给 elint 带来极大便利的 [npm hook scripts](https://docs.npmjs.com/misc/scripts#hook-scripts)。所以我们只能放弃 `cnpm` 命令，仅使用它的仓库。\n\n如果你只是单纯想从 cnpm 的仓库安装 npm package，提高安装速度。可以删除 `cnpm`，然后定义 alias:\n\n```shell\n$ alias cnpm='npm --registry=https://registry.npm.taobao.org/ \\\n  --registryweb=https://npm.taobao.org/ \\\n  --userconfig=$HOME/.cnpmrc'\n```\n\n如果你需要使用私有仓库，同样可以删除 `cnpm`，然后定义自己的命令:\n\n```shell\n$ alias mynpm='npm --registry=http://registry.npm.example.com \\\n  --registryweb=http://npm.example.com \\\n  --userconfig=$HOME/.mynpmrc'\n```\n\n> 上面的 `alias` 命令只是临时修改，终端关闭即实现，永久添加请修改 `.bashrc` 或 `.zshrc`。\n\n2.x 已支持 `yarn 1.x`，无需任何改动即可使用。\n\n但是目前对 `yarn pnp` 支持较为有限，需要自行处理以下工作\n\n1. 由于 `eslint` 是作为 `elint` 的依赖存在的，因此默认配置下如果使用 `eslint` 的插件时会找不到 `eslint`，可以在 `.yarnrc.yml` 中添加以下配置，以放开依赖间的查找能力：\n\n```yml\npnpMode: \"loose\"\npnpFallbackMode: \"all\"\n```\n\n2. 由于目前 `husky` 还在 2.x 版本不支持 `pnp`，可以通过单独安装 `husky` 的最新版本来解决（注：如果同时安装 `elint` 和 `husky`，可能面临 git hooks 被旧版本替换的问题，可以通过 `yarn rebuild` 重建）\n3. 当前 preset 版本检测功能还没有支持 `pnp`\n\n### 5.2. 为什么不建议全局安装\n\nelint 强依赖 stylelint, eslint 等工具。而对于 eslint，其文档中写到:\n\n> Any plugins or shareable configs that you use must also be installed globally to work with a globally-installed ESLint.\n\n全局安装 lint 工具和所有的 plugin，项目数量较多时容易引起混乱，且可能对 ci、部署等带来麻烦。\n\n### 5.3. 安装失败\n\n可能是 npm 的 [bug](https://github.com/npm/npm-lifecycle/pull/13) 引起的。如果你的 npm 版本在 5.1.0 ～ 6.1.0 之间，请升级至最新版本的 npm。\n\nelint 安装过程中会检测 npm 版本，具体以检测结果为准。\n\n> windows 升级 npm 请参考：[How can I update npm on Windows?](https://stackoverflow.com/questions/18412129/how-can-i-update-npm-on-windows)\n\n### 5.4. git hooks 不执行或报错\n\n如果 git hooks 不执行或者报错，尝试下面的方法:\n\n- 项目处于 git 管理的前提下，执行 `npm install` 安装依赖。\n- 如果你在新建项目，先执行 `npm install`，然后执行 `git init` 的话，手动注册 git hooks（上文的 hooks 命令）。\n- 检查 `.git/hooks` 目录，是否存在非 `.sample` 结尾的文件，如果不存在，手动注册 git hooks。\n- 还是有问题？报 bug。\n\n### 5.5. 配置文件是不是可以 git ignore\n\n如果你能想到这个问题，那么说明你真的理解了 elint 的运作方式。忽略配置文件，防止意外被修改，所有团队成员使用 preset 定义的配置，听起来非常不错。那么从 preset 复制到项目中的各种配置文件，是否可以添加到 `.gitignore` 呢？这要看你的使用场景：\n\n- 如果代码提交到 git 仓库，执行 ci 的过程中会安装依赖。\n- 如果部署项目时，build 过程中不再执行 lint，或者先安装依赖，然后再执行 build。\n\n总之，只要执行 `npm install` 安装依赖，配置文件就会自动添加到项目里；只要你能保证需要用到配置文件的时候它存在（例如你在 webpack 里用了 eslint-loader），就可以忽略它。\n\n再次强调，elint 的设计原则是保证团队规范的严格执行，如果你觉得规则有问题，那么应该提出并推动修改 preset，而不是直接改项目里的配置。\n\n### 5.6. 是否可以安装多个 preset\n\n不可以。安装过程中，如果两个 preset 存在相同的配置文件，后安装会覆盖之前的。如果 package.json 中的依赖包含多个 preset，先后顺序由 npm 决定。\n\n### 5.7. 某些文件没有被校验到\n\n1. 检查你的 glob 写法是否有问题。\n2. 可能是 glob 被传入 elint 之前就被意外解析了，参考 [lint 命令](#31-lint)。\n3. windows 7 + git bash 下测试时发现，npm scripts 里，glob 必须使用双引号包裹\n\n```json\n{\n  \"scripts\": {\n    \"test:lint\": \"elint lint \\\"src/**/*.js\\\"\"\n  }\n}\n```\n\n4. elint 在遍历文件时，会应用一些默认的忽略规则，如果你的文件刚好命中这些规则，可以使用 `--no-ignore` 选项。\n\n```js\nconst defaultIgnore = [\n  '**/node_modules/**',\n  '**/bower_components/**',\n  '**/flow-typed/**',\n  '**/.nyc_output/**',\n  '**/coverage/**',\n  '**/.git',\n  '**/*.min.js',\n  '**/*.min.css'\n];\n\n// 除此之外还有 .gitignore 定义的忽略规则\n```\n\n### 5.8. 为什么添加了 fix 选项还是有问题输出\n\n并不是所有规则都支持自动修复，具体可以查看 [eslint rules](https://eslint.org/docs/rules/) 和 [stylelint rules](https://stylelint.io/user-guide/rules/)，可以自动修复的规则都有标识。\n\n### 5.9. 如何禁用颜色输出\n\n设置环境变量 `FORCE_COLOR` 为 `0` 即可，例如：\n\n```shell\n$ FORCE_COLOR=0 elint lint \"src/**/*.js\"\n```\n\n### 5.10. lint 执行失败，提示包缺失\n\n如果遇到如下错误，特别在 CI 环境下。可能是 `package-lock.json` 引起的。\n\n```shell\nError: Cannot find module 'eslint-config-xxx'\n```\n\n请按照如下步骤尝试修复：\n\n1. 删除 `node_modules` 和 `package-lock.json`。\n2. 查看 `package.json` 文件，使用 elint 时只需安装 elint 和 preset，清理掉遗留的 eslint 等依赖。\n3. 重新执行 `npm install`\n\n### 5.11. TypeScript\n\nelint 目前没有集成 tslint 的计划，typescript 用户建议使用 [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint)。\n\n## 6. 参考\n\n- eslint: [Github](https://github.com/eslint/eslint) | [文档](http://eslint.org)\n- stylelint: [Github](https://github.com/stylelint/stylelint) | [文档](https://stylelint.io)\n- commitlint: [Github](https://github.com/marionebl/commitlint) | [文档](http://marionebl.github.io/commitlint/#/)\n- husky: [Github](https://github.com/typicode/husky)\n- git hooks: [文档](https://git-scm.com/docs/githooks)\n- glob primer: [文档](https://github.com/isaacs/node-glob#glob-primer)\n\n[node-image]: https://img.shields.io/node/v/elint.svg?maxAge=3600&style=flat-square&logo=node.js&logoColor=white\n[node-url]: https://nodejs.org\n[npm-image]: https://img.shields.io/npm/v/elint.svg?maxAge=3600&style=flat-square&logo=npm\n[npm-url]: https://www.npmjs.com/package/elint\n[license-image]: https://img.shields.io/github/license/x-orpheus/elint.svg?maxAge=3600&style=flat-square\n[license-url]: https://github.com/x-orpheus/elint/blob/master/LICENSE\n[unit-test-image]: https://img.shields.io/github/workflow/status/x-orpheus/elint/unit%20test?maxAge=3600&style=flat-square&logo=github\n[unit-test-url]: https://github.com/x-orpheus/elint/actions?query=workflow%3A%22unit+test%22\n[system-test-image]: https://img.shields.io/github/workflow/status/x-orpheus/elint/system%20test?maxAge=3600&style=flat-square&logo=github\n[system-test-url]: https://github.com/x-orpheus/elint/actions?query=workflow%3A%22system+test%22\n[codecov-image]: https://img.shields.io/codecov/c/github/x-orpheus/elint?token=30359e4823354cb78258bb1cea95a867&maxAge=3600&style=flat-square&logo=codecov\n[codecov-url]: https://codecov.io/gh/x-orpheus/elint\n[dependencies-image]: https://img.shields.io/david/x-orpheus/elint.svg?maxAge=3600&style=flat-square\n[dependencies-url]: https://david-dm.org/x-orpheus/elint\n[devdependencies-image]: https://img.shields.io/david/dev/x-orpheus/elint.svg?maxAge=3600&style=flat-square\n[devdependencies-url]: https://david-dm.org/x-orpheus/elint?type=dev\n[lgtm-alerts-image]: https://img.shields.io/lgtm/alerts/g/x-orpheus/elint.svg?logo=lgtm&logoWidth=18&maxAge=3600&style=flat-square\n[lgtm-alerts-url]: https://lgtm.com/projects/g/x-orpheus/elint/alerts/\n[lgtm-grade-image]: https://img.shields.io/lgtm/grade/javascript/g/x-orpheus/elint.svg?logo=lgtm&logoWidth=18&maxAge=3600&style=flat-square\n[lgtm-grade-url]: https://lgtm.com/projects/g/x-orpheus/elint/context:javascript\n","readmeFilename":"README.md","gitHead":"0998b6d1efae7cd670ee3b6ba37ec070946cabe9","_id":"elint@2.0.0-rc.1","_nodeVersion":"14.15.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-BYFlmYlKl+29MMhRcjbGL7Qa0uNOPALNG+PXI/9kgym7YfeqZ2XDZ2WtEsyF5bhcWiiwK7UMfjx50udQpla1SQ==","shasum":"b965f87db2b04c1fdc43109f3b4bb7a45df7d9d7","tarball":"https://registry.npmjs.org/elint/-/elint-2.0.0-rc.1.tgz","fileCount":44,"unpackedSize":86244,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf7DgUCRA9TVsSAnZWagAAmr4P/1AmiQIc7OwIKM6wKPA1\nVo7yv5yoOvRCnTkhgsW3+72HAJgj6ERvio5uimatOOU/TZX9WCUXneFKcuMA\nucf9U42UvyBGxZLsjoitfO/ipUoxG66lBzvcehHvKMNh6snEEeRfvGqfca+s\nkf8l0fDXzu72F7I35vR8bUY42zTdrSQjGtBou4HNGEpHcU9DfN57GIO6VkTS\n1xOtvIxHDsc8/GDQGtnj6bgRI9lbtfO9nQqXVLphLViU5RUK44ZFuCud9Nxs\nBe4xQUZi8LzqYEEJBz2QrIJatnXcAHwwBhVl+y2Q0hkXwDe8JHgm8WHjCvIS\nDdtqvAAro15u6RtJ3PErZgsPZIX52Neti6TjYxoFnOAsnOjaQQxKkbWBJ6Wh\n0xhRonRf0p8A0LcY6lgBt53LB2KtfNo/jOipeQHeG3ly/c8AKWQ68kP4RLgc\nftA3opBzopzKghf2Luir41bQPIKQbMC2DNdbR6TahVZXmdmYJ/DE33tarWzg\n0Wfh4x6eRzfDcJ4n92TYLd8GC26/ooPLpn3T8lrmt19bFBazqwZKz/pL8mtT\nvgO73P+LyvXH8CDzAASo3n1zvttSNSFqZSNaGuwkwJ/nPRijWxLNasDK59VS\naKKCWpwyufHeXFHnyW64fNTnqyDLOrLvWtAla9ZM322Q8vqP9VdccMrGr9r4\nmprz\r\n=LXGl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDcqZ697gY82iUHmFfNGFLAe6nSB2RS2i3HRq/sCYqLCwIgbeZ2uItktFi55XBLol9DnWkiJB+WfRe/HIR11ma+2MI="}]},"_npmUser":{"name":"keenwon","email":"semanwmj@gmail.com"},"directories":{},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_2.0.0-rc.1_1609316372129_0.07710166137380403"},"_hasShrinkwrap":false},"2.0.0":{"name":"elint","version":"2.0.0","description":"A easy way to lint your code.","main":"src/index.js","bin":{"elint":"bin/cli.js"},"scripts":{"test":"npm run test:lint && npm run test:unit && npm run test:system","test:lint":"eslint --format codeframe \"+(bin|src|test)/**/*.js\" --fix","test:unit":"jest --config test/unit/jest.config.js","test:system":"jest --config test/system/jest.config.js --runInBand"},"repository":{"type":"git","url":"git+https://github.com/x-orpheus/elint.git"},"keywords":["eslint","eslintplugin","eslintconfig","stylelint","commitlint","standard","jshint","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","bugs":{"url":"https://github.com/x-orpheus/elint/issues"},"homepage":"https://github.com/x-orpheus/elint#readme","engines":{"node":">=10.12.0"},"dependencies":{"@commitlint/core":"^11.0.0","boxen":"^5.0.0","chalk":"^4.1.0","commander":"^6.2.1","configstore":"^5.0.1","debug":"^4.3.1","eslint":"^7.17.0","execa":"^5.0.0","figures":"^3.2.0","find-process":"^1.4.4","fs-extra":"^9.0.1","globby":"^11.0.1","husky":"^5.0.6","is-npm":"^5.0.0","lodash":"^4.17.20","micromatch":"^4.0.2","ms":"^2.1.3","node-fetch":"^2.6.1","prettier":"^2.2.1","semver":"^7.3.4","staged-git-files":"^1.2.0","stylelint":"~13.8.0"},"devDependencies":{"@commitlint/cli":"^11.0.0","eslint-config-standard":"^16.0.2","eslint-plugin-import":"^2.22.0","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-standard":"^5.0.0","jest":"^26.6.3","jest-extended":"^0.11.5"},"ava":{"files":["test/system/**/*.spec.js"],"timeout":"600s","failFast":true,"verbose":true},"gitHead":"c9dfca8afe3efc05fb1246f9893e3649c28852ec","_id":"elint@2.0.0","_nodeVersion":"14.15.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-d897b5SnKUm/v7egMKAOPLhEupMa2dvW2egAPQo/zqtuA8pfbqS7U6bjpATinh5enp51iEG85aWOtAD9GjPuRg==","shasum":"522f6564d5e3a31ab58753c62f31efc662ae0b23","tarball":"https://registry.npmjs.org/elint/-/elint-2.0.0.tgz","fileCount":44,"unpackedSize":81765,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf+/kmCRA9TVsSAnZWagAArmIP/0bm2kou8JZNRbuYlXVT\n/LEKYjEoCycT/Tb530OUAhdMEa2iyLnVQS54Nu5haNbKRAPGvaqzNgkg5GL3\nve//msY9X8EBUm+wfE4U0RPPwviBVqGKWMn+lrvGNFYKdjFIqEzZpP2rAOcC\nJo27Erk8N6/Bx2BC/4Qx5+FBSs2SuOe1vgEYHpW0zBlZydDD3Eo/aY5v1qfX\n9XInvbnJjhuqFkKWFVfdhW2EkpEASc29vz6Gchd5iem9sxGl0SbpY/fDgW8S\nfKiZ5QoiKH/m8EI8yAY1MxmSemyEyS2yxX7pv5jO+k7lH7+TL7QYSLQeYeWM\nKwx0auLd8eTZqQu7JUc6h9a1ClZp4i0GWEqKUNWZvacAuV98B9rjTF7qi/Wv\n97Ervs6C6dbAQDvbJxtVm5YUOE09U6qOvlo3ODh4UaE1XneSkx3GnCot7x3e\n7UCV28vx5QjDKun3924M95jVzTelNtHj9lcs1NGDPMvOWolMhUzVx1ioNLaB\nq0BcYJ3wJPhoOBsSxB/hbub7WeZAEeVPRpJqtdpuoRBf28NogwKCdBzrqfcJ\nhfsEKFPZTNrDNfSit2ELHm5gqOfHPiIcrDSBwPbOxnTgvljynP5aHzefSbLv\nWj829U5Xv3E5o8l9C9GfmniN+mrZLo6c3fkRY8XfqWyWDgQvsAP7i6VDhO9l\nMR58\r\n=psrf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC5KJZZw47kCEsXVj6pwOwKbTZWhKx7O14JS/4HD+uTEAiEA1MCUvWxDxihxqpSVzRjXVbcXerZdAC0+LiPN7FbzJ44="}]},"_npmUser":{"name":"keenwon","email":"semanwmj@gmail.com"},"directories":{},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_2.0.0_1610348838420_0.834299550857843"},"_hasShrinkwrap":false},"2.0.1":{"name":"elint","version":"2.0.1","description":"A easy way to lint your code.","main":"src/index.js","bin":{"elint":"bin/cli.js"},"scripts":{"test":"npm run test:lint && npm run test:unit && npm run test:system","test:lint":"eslint --format codeframe \"+(bin|src|test)/**/*.js\" --fix","test:unit":"jest --config test/unit/jest.config.js","test:system":"jest --config test/system/jest.config.js --runInBand"},"repository":{"type":"git","url":"git+https://github.com/x-orpheus/elint.git"},"keywords":["eslint","eslintplugin","eslintconfig","stylelint","commitlint","standard","jshint","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","bugs":{"url":"https://github.com/x-orpheus/elint/issues"},"homepage":"https://github.com/x-orpheus/elint#readme","engines":{"node":">=10.12.0"},"dependencies":{"@commitlint/core":"^11.0.0","boxen":"^5.0.0","chalk":"^4.1.0","commander":"^6.2.1","configstore":"^5.0.1","debug":"^4.3.1","eslint":"^7.17.0","execa":"^5.0.0","figures":"^3.2.0","find-process":"^1.4.4","fs-extra":"^9.0.1","globby":"^11.0.1","husky":"^2.7.0","is-npm":"^5.0.0","lodash":"^4.17.20","micromatch":"^4.0.2","ms":"^2.1.3","node-fetch":"^2.6.1","prettier":"^2.2.1","semver":"^7.3.4","staged-git-files":"^1.2.0","stylelint":"~13.8.0"},"devDependencies":{"@commitlint/cli":"^11.0.0","eslint-config-standard":"^16.0.2","eslint-plugin-import":"^2.22.0","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-standard":"^5.0.0","jest":"^26.6.3","jest-extended":"^0.11.5"},"ava":{"files":["test/system/**/*.spec.js"],"timeout":"600s","failFast":true,"verbose":true},"gitHead":"2b20c66c9949548c0b690653fe18727534666992","_id":"elint@2.0.1","_nodeVersion":"14.15.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-ciZmSzG6/SU5s5ljhKwJM07jovCacNVH6ZnJ62JVHNQ+iq63ArmTVwhe0/pyt/loTJ1KqLb7lfiADkSazC4MEA==","shasum":"c526bffcc598784ea117075ec56e6a88a416286d","tarball":"https://registry.npmjs.org/elint/-/elint-2.0.1.tgz","fileCount":44,"unpackedSize":81765,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf/ANECRA9TVsSAnZWagAADD8P/2UNL3Z/FxRLMzddl7sU\nBuCDNkvv/yy0y4Du0YGrxHG9xiEg7aVfSkKLC+V8AhjWpyIERjX/N+VTQE8f\n/yzgqOSQAcTITQBmnqtC6HAxhTpQb4C8jZZGoOLxXERCcVrbv+xEFLWJKEYs\nFex5Gpj1JTEyO9n9IoRPPr9IhpIZgDUcgMmTJqbHHSz8AgwVOjhnST16FlRj\nm67ycf9HhfgLQDdT7X3h2G72/70AotAe9dHuAgRJwLlOhn1soHUzucxyw+50\nBX5TK0BWUT3xfylB14SGpwLqod+uRnEsvNv5OlAAvFBTXucMIkv6gEgLNSAi\nkUE8TvqoSPUVI5Sh6JPtlxJ+P1ahT2+R2pij4CMMLqE9WjN2J6mJOPBQBqkH\nAhhJoE0+cZGudjYIkHI5/LVITCkTELRoTTLdUXj/kBi7h48K1IOoT3IAuuve\nZOtviq2byK6lHH0oWVAoQ27nkDuppVB7lHDWOUmHIV+YkwpMsJNnqvjgZOOD\nW1+Tsb/3aQvb6FSA50dDfrsQ3nwulfuEhPjooF3pW5bkPKB88J5Ojdy8bPf5\n8oePOroHyUWS/DUcHPpfoMWQKSeIh0aLMA/yb2AhqOlLE1Eder0KxlQ+Dphj\nuH68I+92HOkyO+xLsRJyyN8bQ7g+8LGPiqniYl5WvTIwEyfFikVbyZlt/mA1\niRWA\r\n=fObD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD9pTsrC2hCRnom4gonYul5x+Z8TahK1jlx48uAVseBAQIgLJaRzPwChWNYeK2IET48aqs/2a3FMfrKxDzf8cZkMiQ="}]},"_npmUser":{"name":"keenwon","email":"semanwmj@gmail.com"},"directories":{},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_2.0.1_1610351428510_0.42482926535380816"},"_hasShrinkwrap":false},"3.0.0-beta.0":{"name":"elint","version":"3.0.0-beta.0","description":"A easy way to lint your code.","exports":{".":"./dist/index.js","./package.json":"./package.json"},"types":"./dist/index.d.ts","bin":{"elint":"dist/cli/index.js"},"repository":{"type":"git","url":"git+https://github.com/x-orpheus/elint.git"},"keywords":["eslint","stylelint","commitlint","prettier","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","bugs":{"url":"https://github.com/x-orpheus/elint/issues"},"homepage":"https://github.com/x-orpheus/elint","engines":{"node":"^14.13.1 || >=16.0.0"},"type":"module","dependencies":{"boxen":"^7.0.0","chalk":"^5.0.1","commander":"^9.3.0","configstore":"^6.0.0","debug":"^4.3.4","execa":"^6.1.0","figures":"^4.0.1","file-entry-cache":"^6.0.1","find-up":"^6.3.0","fs-extra":"^10.1.0","globby":"^13.1.2","husky":"^8.0.1","lodash-es":"^4.17.21","micromatch":"^4.0.5","normalize-path":"^3.0.0","resolve-package-path":"^4.0.3","semver":"^7.3.7","staged-git-files":"^1.3.0"},"devDependencies":{"@types/configstore":"^5.0.1","@types/file-entry-cache":"^5.0.2","@types/micromatch":"^4.0.2","@types/normalize-path":"^3.0.0","@types/semver":"^7.3.10","npm-auth-to-token":"1.0.0","verdaccio":"^5.12.0","verdaccio-auth-memory":"^10.2.0","verdaccio-memory":"^10.3.0"},"ava":{"files":["test/system/**/*.spec.js"],"timeout":"600s","failFast":true,"verbose":true},"scripts":{"clean":"rimraf dist","build":"tsc -p tsconfig-build.json","test":"npm run test:unit && npm run test:system","test:unit":"cross-env NODE_OPTIONS=--experimental-vm-modules jest --config test/unit/jest.config.js","test:system":"cross-env NODE_OPTIONS=--experimental-vm-modules jest --config test/system/jest.config.js --runInBand"},"_resolved":"","_integrity":"","_from":"file:elint-3.0.0-beta.0.tgz","readme":"# ELint\n\n专为团队设计的 lint 工具\n\n详细文档查看 [elint](https://github.com/x-orpheus/elint)\n","readmeFilename":"README.md","_id":"elint@3.0.0-beta.0","_nodeVersion":"14.19.1","_npmVersion":"6.14.16","dist":{"integrity":"sha512-MnODn6Z28L3tNHpcoxHA+6G1Blr9caBBojMmbF5PB9DqZVtY9U33YAW4hyne9C0jJuPDU8BjDyJQc/t7ZUS/FQ==","shasum":"e21ec0130d97d8859b7e5335e448512e22a3b3fa","tarball":"https://registry.npmjs.org/elint/-/elint-3.0.0-beta.0.tgz","fileCount":96,"unpackedSize":118114,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID5iBfLiFqqyI1+JB+MOcvwwZ8K6sXQTCXx4uoxI4gfwAiB4qzg9viV8pCO4L/c32uFnXh+B9RZnUS0ciAtRte8tjg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJirGe8ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpK3w/9F+qW6+2ZeuDgAOMSzaeUCiBh58W6i2Ypp4AWJu16OG13ohd0\r\n3XPd/YyL6wx7JZnWHTHrFzv6lzMlxqChf+P3nuD/ej3GYXB+ADSKmVtKvc6N\r\nNOY8y2LE18B8n6UFiIPYBgMmTiLPsDP1UVS15JdM95FeSlmCTacXs3j5ELjg\r\nd4nbdyKhR7BRmMzBm0+Lmn4Dm0XS1Y2BDhem660HQsMoLMAF9M4Tbh5tizYm\r\n62bDUaE54Un3FcJCFKxC6pwBsd+K+FGfkSkF7hqVwoCV9fFdpqiLBbMgSDuy\r\na/kp92zUlby3lvq/cGssRgi1wSzn/T8B8OUMtXYgid48u68wwKFzg3ahWmWo\r\npxNWddcUvbbBNtoMvHHlxvT627JgB7Ehm+/N9mMa4dRZH+/N0MESfkciigvh\r\nOnzHLSDJ82l+F7CkDYWGnc5WyDGwlZLn9wEctmcvucPhJvMXpVz6vRVMDCQk\r\nSFTPz+3Qw8uDEREJcKH0Nm5YGCqBsnRKizKqkzcCxlw23QLuBjEQAvUleNGG\r\nvQinnwXaOYQUOCVNZ7WNE2fc0jTCJKkqYybf9N/WUUlOKJ9PrY9yJZOXKOg9\r\nYUBYiGzcSMkzbzy4rEUhvZNx1S21qBcK9AUMoi50MTMEbmgQ3iQnfVTUXZGP\r\n5gTUVCYSaiW552PhsyNQg7oVYjFogpzYOAk=\r\n=v2Lw\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"iwyvi","email":"iwyvi@outlook.com"},"directories":{},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"},{"name":"iwyvi","email":"iwyvi@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_3.0.0-beta.0_1655465916550_0.31351722706956653"},"_hasShrinkwrap":false},"3.0.0-beta.1":{"name":"elint","version":"3.0.0-beta.1","description":"A easy way to lint your code.","exports":{".":"./dist/index.js","./package.json":"./package.json"},"types":"./dist/index.d.ts","bin":{"elint":"dist/cli/index.js"},"repository":{"type":"git","url":"git+https://github.com/x-orpheus/elint.git"},"keywords":["eslint","stylelint","commitlint","prettier","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","bugs":{"url":"https://github.com/x-orpheus/elint/issues"},"homepage":"https://github.com/x-orpheus/elint","engines":{"node":"^14.13.1 || >=16.0.0"},"type":"module","dependencies":{"boxen":"^7.0.0","chalk":"^5.0.1","commander":"^9.3.0","configstore":"^6.0.0","debug":"^4.3.4","execa":"^6.1.0","figures":"^4.0.1","file-entry-cache":"^6.0.1","find-up":"^6.3.0","fs-extra":"^10.1.0","globby":"^13.1.2","husky":"^8.0.1","isbinaryfile":"^5.0.0","lodash-es":"^4.17.21","micromatch":"^4.0.5","normalize-path":"^3.0.0","resolve-package-path":"^4.0.3","semver":"^7.3.7","staged-git-files":"^1.3.0"},"devDependencies":{"@types/configstore":"^6.0.0","@types/file-entry-cache":"^5.0.2","@types/micromatch":"^4.0.2","@types/normalize-path":"^3.0.0","@types/semver":"^7.3.10","npm-auth-to-token":"1.0.0","verdaccio":"^5.13.1","verdaccio-auth-memory":"^10.2.0","verdaccio-memory":"^10.3.0"},"ava":{"files":["test/system/**/*.spec.js"],"timeout":"600s","failFast":true,"verbose":true},"scripts":{"clean":"rimraf dist","build":"tsc -p tsconfig-build.json","test":"npm run test:unit && npm run test:system","test:unit":"cross-env NODE_OPTIONS=--experimental-vm-modules jest --config test/unit/jest.config.js","test:system":"cross-env NODE_OPTIONS=--experimental-vm-modules jest --config test/system/jest.config.js --runInBand"},"_resolved":"","_integrity":"","_from":"file:elint-3.0.0-beta.1.tgz","_id":"elint@3.0.0-beta.1","_nodeVersion":"14.19.1","_npmVersion":"6.14.16","dist":{"integrity":"sha512-Y2b3wcDEQ1M9VFWBs6m6nF9RpefyvRzisu6IiTKHFWMvBzVcaem3XdomO5JbgSYqYMQjoO6KSmWMLu0588j4pA==","shasum":"0974bb46470365187f29481a9c06169ca53ab152","tarball":"https://registry.npmjs.org/elint/-/elint-3.0.0-beta.1.tgz","fileCount":96,"unpackedSize":118861,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBlNSxVx61FV/FbPv/C2LkC6GrHzXtjf8BGH0g5zGth6AiA4OP0S/f0JZP/aoUl7LC08O78Dr5eQUMekJOZCjrNkZg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJixqBKACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp+RQ/9ETV0WFNGGCJg+TI5lYpmo/W8M8tn69neH226gMBUMQXL+9WN\r\n4OGkCbFNhTtAEShGdvl4MaUuxI0iUPF1Uc5wAzZ0eAb2Klr/Gc2tJlqldEqK\r\n9MNXEapJP58Rg/K0ZVcBFOrCTBZ1DIoICLbSTXc8Az0IA+HqYUvGeWFhdsJI\r\nIBNthVeeZBoyjjHRik67DINyX+HfBilLkmkuVmryfPlHZoQTCcLYtKibyf6/\r\nnr3ti9qduBkR99OKsKSLr9TKvH24H9jaCjrxrsSW/cK93whVfpNV/I30wVy/\r\nE53cPHebw9sM7hhqqW6cFeONv9tkF9dC6nwP5atpfNNKTZ2bLd9dXmQHfB50\r\nmkqhVuQ/fq/UAogk+NL8HK6QHRW7cHMru6Y2FZmAgRDbg0rm6W3P7y4JkAIC\r\n9FQbgrCAeU8YJOpDnhtTzhZYNSvenZmEAWF3dGkKHZXoI/xakhxO9LZ9wVk3\r\nmn4sUAqSURSaGpFpEymLVMjjY7qDkAu5V/H15PS5tU6OOeKp9IwDQl8WY675\r\n/kGfyp73n04ceLiqHMNVPnFSMrifBtqbPTujdQabBs7rECA/ELl6JCsgP+mi\r\ndxbZg2dTR2imqUzfXRAFBorW6z6LBaXE8xqTybyG2nvH8rkQvaJyglinhzi8\r\nXrk6ZlhcKy82RRS4Xx1QBtWmQfAbWxl/sKk=\r\n=FEfO\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"iwyvi","email":"iwyvi@outlook.com"},"directories":{},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"},{"name":"iwyvi","email":"iwyvi@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_3.0.0-beta.1_1657184330562_0.34723858914133676"},"_hasShrinkwrap":false},"3.0.0-beta.2":{"name":"elint","version":"3.0.0-beta.2","description":"A easy way to lint your code.","exports":{".":"./dist/index.js","./package.json":"./package.json"},"types":"./dist/index.d.ts","bin":{"elint":"dist/cli/index.js"},"repository":{"type":"git","url":"git+https://github.com/x-orpheus/elint.git"},"keywords":["eslint","stylelint","commitlint","prettier","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","bugs":{"url":"https://github.com/x-orpheus/elint/issues"},"homepage":"https://github.com/x-orpheus/elint","engines":{"node":"^14.13.1 || >=16.0.0"},"type":"module","dependencies":{"boxen":"^7.0.0","chalk":"^5.0.1","commander":"^9.4.0","configstore":"^6.0.0","debug":"^4.3.4","execa":"^6.1.0","figures":"^4.0.1","file-entry-cache":"^6.0.1","find-up":"^6.3.0","fs-extra":"^10.1.0","globby":"^13.1.2","husky":"^8.0.1","isbinaryfile":"^5.0.0","lodash-es":"^4.17.21","micromatch":"^4.0.5","normalize-path":"^3.0.0","resolve-package-path":"^4.0.3","semver":"^7.3.7","staged-git-files":"^1.3.0"},"devDependencies":{"@types/configstore":"^6.0.0","@types/file-entry-cache":"^5.0.2","@types/micromatch":"^4.0.2","@types/normalize-path":"^3.0.0","@types/semver":"^7.3.10","npm-auth-to-token":"1.0.0","verdaccio":"^5.14.0","verdaccio-auth-memory":"^10.2.0","verdaccio-memory":"^10.3.0"},"ava":{"files":["test/system/**/*.spec.js"],"timeout":"600s","failFast":true,"verbose":true},"scripts":{"clean":"rimraf dist","build":"tsc -p tsconfig-build.json","test":"npm run test:unit && npm run test:system","test:unit":"cross-env NODE_OPTIONS=--experimental-vm-modules jest --config test/unit/jest.config.js","test:system":"cross-env NODE_OPTIONS=--experimental-vm-modules jest --config test/system/jest.config.js --runInBand"},"_id":"elint@3.0.0-beta.2","_integrity":"sha512-iwq9Z+aOwcjrYEv77aaGbK/Izvw2zEKTIvV/wEzMCHfAdKHYNC8+DFETKCcmpdtq8N2AgufZTVrc+bCZnYGdqQ==","_resolved":"/private/var/folders/nt/smxvhl49715cmcc3yq10q5_80000gn/T/0df7bd4869a312ae16cfdb7eaae4472c/elint-3.0.0-beta.2.tgz","_from":"file:elint-3.0.0-beta.2.tgz","_nodeVersion":"16.14.2","_npmVersion":"8.5.0","dist":{"integrity":"sha512-iwq9Z+aOwcjrYEv77aaGbK/Izvw2zEKTIvV/wEzMCHfAdKHYNC8+DFETKCcmpdtq8N2AgufZTVrc+bCZnYGdqQ==","shasum":"2666f0739948a69f5cc514010f9c25777b12d1ce","tarball":"https://registry.npmjs.org/elint/-/elint-3.0.0-beta.2.tgz","fileCount":99,"unpackedSize":120752,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICJtWpC+ZVnK+337obOF5Qhn9GwsvC0czSSy8UMXc28lAiEA1SuHuyGplkWo0UbiwDO1sAtdSOV3NJb4oTSlf6xoTRo="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi7JEBACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoYiRAAnMIKdlN4G2mvNSECEfxK4Fal0RJ8Nd/ya3tzDY8hnYNZBA8Z\r\nGSSQkZGm3iz/zeaJQfkKMShJVZHaKQARz1YeD4TZ2EuRu2whcwlwxtrbSDQo\r\naJ3qJGGaJU9lZqhHADoTpg3H8fahXSRljT0JaDqOPtYqrfbPOh0/A1ZFRtlu\r\nawmhaHPq1ufNYGAqPVM2OaQ/Dgor2iAhBn7qZJRlDOKHPBt7OToEyIMBQATe\r\nV3YhHN6FxKUE40NMXictquHjgdMceVCJGtYWv1CDQkm56Hu0pZjZ1gy1mHq7\r\ngkIkILJo27sNhihHYl3+TJwaEziPddzoypEwDB4gTk9t0K1xEP91i9+kQfK1\r\nWOaM9aFt32oRyB07inTJuAnWaIwlC5caYwkeQ84yjxguZZD7PfTlv57HNXRw\r\nwAySPbdDqYxXal17INxlwp/EB/UbQyCvxv41iNMgj3Ax51WMQQubJD0XCXHn\r\nrtfLTHLblSBHm7JWWvQuYI5Klcohmy+P0C4uzFGk4I8C4lGb4Ej8kIivTk0F\r\nGlB14JeCjyWTQeI3I1vjlqRBqandFxLNg8pixD5JSvH3N6RH+aRNR2b7TbP+\r\nSTvtxo5lKE/gr+okku2XGbP9kr5bBjCWD7Ouk3twxMSH52hsfxgDdupXrBZH\r\n2YHSi4pYqn0+7vTm0imXKoZZMLcXnkVju1Q=\r\n=qsBm\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"iwyvi","email":"iwyvi@outlook.com"},"directories":{},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"},{"name":"iwyvi","email":"iwyvi@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_3.0.0-beta.2_1659670785635_0.41306953524720713"},"_hasShrinkwrap":false},"3.0.0-beta.3":{"name":"elint","version":"3.0.0-beta.3","description":"A easy way to lint your code.","exports":{".":"./dist/index.js","./package.json":"./package.json"},"types":"./dist/index.d.ts","bin":{"elint":"dist/cli/index.js"},"repository":{"type":"git","url":"git+https://github.com/x-orpheus/elint.git"},"keywords":["eslint","stylelint","commitlint","prettier","lint","linter","husky","hooks","git hooks"],"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"license":"MIT","bugs":{"url":"https://github.com/x-orpheus/elint/issues"},"homepage":"https://github.com/x-orpheus/elint","engines":{"node":"^14.13.1 || >=16.0.0"},"type":"module","dependencies":{"boxen":"^7.0.0","chalk":"^5.0.1","commander":"^9.4.0","configstore":"^6.0.0","debug":"^4.3.4","execa":"^6.1.0","figures":"^4.0.1","file-entry-cache":"^6.0.1","find-up":"^6.3.0","fs-extra":"^10.1.0","globby":"^13.1.2","husky":"^8.0.1","isbinaryfile":"^5.0.0","lodash-es":"^4.17.21","micromatch":"^4.0.5","normalize-path":"^3.0.0","resolve-package-path":"^4.0.3","semver":"^7.3.7","staged-git-files":"^1.3.0"},"devDependencies":{"@types/configstore":"^6.0.0","@types/file-entry-cache":"^5.0.2","@types/micromatch":"^4.0.2","@types/normalize-path":"^3.0.0","@types/semver":"^7.3.10","npm-auth-to-token":"1.0.0","verdaccio":"^5.14.0","verdaccio-auth-memory":"^10.2.0","verdaccio-memory":"^10.3.0"},"ava":{"files":["test/system/**/*.spec.js"],"timeout":"600s","failFast":true,"verbose":true},"scripts":{"clean":"rimraf dist","build":"tsc -p tsconfig-build.json","test":"npm run test:unit && npm run test:system","test:unit":"cross-env NODE_OPTIONS=--experimental-vm-modules jest --config test/unit/jest.config.js","test:system":"cross-env NODE_OPTIONS=--experimental-vm-modules jest --config test/system/jest.config.js --runInBand"},"_resolved":"","_integrity":"","_from":"file:elint-3.0.0-beta.3.tgz","readme":"# ELint\n\n专为团队设计的 lint 工具\n\n详细文档查看 [elint](https://github.com/x-orpheus/elint)\n","readmeFilename":"README.md","_id":"elint@3.0.0-beta.3","_nodeVersion":"14.19.1","_npmVersion":"6.14.16","dist":{"integrity":"sha512-jaSrbeu5rUs+zMaZwPQtV2hHvo88EacWcBhpzP+GAT634b5bP34C9xTqzVgLXLbmgO0IkKWTPFC9ONGAABn7ZQ==","shasum":"f373c807dc6edb5f7f3cf76d4ded24f4e6326eaa","tarball":"https://registry.npmjs.org/elint/-/elint-3.0.0-beta.3.tgz","fileCount":99,"unpackedSize":120769,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEFpnxDDftQ8Xe25cQ5NhEcM5sH3qbhvcc5P2gioTF3aAiAte/GdAjRfcdTA4bOULw/QsOtrEt1VsoKanXGU6v7cDg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi8HReACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoKPw//ZP3eEhWAx04E7wMqoTftKpX5rht1Z03dfen39tiET72q1bT4\r\nTp1aqx2fZhAdcDzZy6WEpHUNm01ifQfiPrzzW6UAasMxdkoFqgvEnJYYmITW\r\nnxNautihPo3ByXTFj+/dxVktkS0jOuUNpOdIUHgVgBEfKdHbOY/HC2nufxN4\r\ngNZu6XkYF2M8GKCbbIZOpKnt5DGasBMs6rR/8lojPi7cJo1s+CMn6bUqyJQO\r\naX8OFBmmrctYr9XJChaNwCc39qJS1HN25weVHFf92C9wmZkTfKBEG6eE4kEV\r\nJhJBQIU9Ifb+MHjVy2AhjBc7SdOarBLvJuqB6Q0/WQK/E66hLy25ukDyvnmv\r\nbhnsvCAGmnthf9ImfeSywOF4wtFD8tErvvbPOODvBwPvu8uWRoc9GUt/buAF\r\nvBw4/tKUEwVkL4kwS2Ag6frwlfifzPNKNeGeayznGjX/7oAu3wgQgGLxLGuE\r\nJrb1siifuaebQg1fzB2LGk404Brt8rOodhS5WI83h+fOH7WYMDaqjAOXg0ZN\r\nhhiaDDwm/Vk/1LKIAHaE1Ec3flzhV5ryUkmw16pSCZgHBevAIyUola+8Ge1W\r\n57pHCvWT7RIpJ07ZpQDAmtVTsbk6dQm02zWynH2trLo6oDImXv27ZCxogZ/4\r\nBc5oazmz36iMSxdCMbhhcvM5yfocT83Syq8=\r\n=T3mW\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"iwyvi","email":"iwyvi@outlook.com"},"directories":{},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"},{"name":"iwyvi","email":"iwyvi@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/elint_3.0.0-beta.3_1659925598508_0.7660932985464757"},"_hasShrinkwrap":false}},"time":{"created":"2018-05-09T03:59:05.077Z","1.0.0":"2018-05-09T03:59:05.238Z","modified":"2022-08-08T02:26:38.818Z","1.1.0-rc.1":"2018-05-27T13:05:02.553Z","1.1.0-rc.2":"2018-05-30T08:52:48.158Z","1.2.0-beta.1":"2018-05-30T09:13:29.138Z","1.2.0-beta.2":"2018-05-30T10:03:02.662Z","1.2.0-beta.3":"2018-05-30T14:07:37.836Z","1.2.0-beta.4":"2018-05-30T14:35:15.370Z","1.2.0-beta.5":"2018-05-30T14:41:36.228Z","1.2.0-beta.6":"2018-05-30T14:59:17.990Z","1.2.0-beta.7":"2018-05-30T15:11:42.459Z","1.2.0-beta.8":"2018-05-30T15:17:40.367Z","1.2.0-beta.9":"2018-05-30T16:30:33.400Z","1.2.0-beta.10":"2018-05-31T06:27:53.648Z","1.2.0-beta.11":"2018-05-31T07:57:59.828Z","1.2.0-beta.12":"2018-05-31T16:40:49.687Z","1.2.0-beta.13":"2018-06-01T03:38:41.496Z","1.2.0-beta.14":"2018-06-01T16:17:19.442Z","1.2.0-rc.1":"2018-06-04T06:06:09.346Z","1.2.0-rc.2":"2018-06-05T16:44:39.973Z","1.3.0":"2018-06-10T16:09:37.483Z","1.3.1":"2018-06-11T07:11:53.907Z","1.3.2":"2018-06-12T08:30:31.285Z","1.3.3":"2018-06-12T14:47:38.593Z","1.4.0":"2018-06-14T10:40:26.690Z","1.5.0":"2018-06-25T06:29:28.381Z","1.5.1":"2018-07-01T17:08:31.344Z","1.5.2-rc.1":"2018-07-13T17:44:32.911Z","1.5.2":"2018-07-14T07:21:21.246Z","1.5.3":"2018-07-25T10:11:24.954Z","1.6.0":"2018-09-04T08:51:00.129Z","1.6.1":"2018-09-12T10:53:15.452Z","1.6.2":"2018-09-12T15:37:03.359Z","1.6.3":"2018-09-12T17:17:37.197Z","1.6.4":"2018-09-13T09:16:55.551Z","1.6.5":"2018-09-14T06:25:43.873Z","1.7.0":"2018-09-14T13:01:00.828Z","1.7.1":"2018-09-26T11:20:29.670Z","1.7.2":"2018-09-27T18:07:57.784Z","1.8.0":"2018-09-29T06:14:59.987Z","1.8.1":"2018-10-10T07:41:29.232Z","1.8.2":"2018-10-30T10:30:38.609Z","1.8.3":"2018-11-30T06:23:22.594Z","1.9.0":"2018-12-19T14:57:54.563Z","1.10.0-alpha.0":"2019-01-08T08:08:55.808Z","1.10.0-alpha.1":"2019-01-08T13:06:44.266Z","1.10.0":"2019-01-28T08:22:19.701Z","1.11.0":"2019-02-22T12:39:31.821Z","1.11.1":"2019-05-09T01:42:55.003Z","2.0.0-alpha.1":"2019-07-02T03:21:10.244Z","2.0.0-alpha.2":"2019-08-09T09:09:35.973Z","2.0.0-alpha.3":"2019-08-14T13:40:27.051Z","2.0.0-rc.1":"2020-12-30T08:19:32.256Z","2.0.0":"2021-01-11T07:07:18.541Z","2.0.1":"2021-01-11T07:50:28.625Z","3.0.0-beta.0":"2022-06-17T11:38:36.704Z","3.0.0-beta.1":"2022-07-07T08:58:50.731Z","3.0.0-beta.2":"2022-08-05T03:39:45.839Z","3.0.0-beta.3":"2022-08-08T02:26:38.740Z"},"maintainers":[{"name":"keenwon","email":"semanwmj@gmail.com"},{"name":"iwyvi","email":"iwyvi@outlook.com"}],"keywords":["eslint","eslintplugin","eslintconfig","stylelint","commitlint","standard","jshint","lint","linter","husky","hooks","git hooks"],"license":"MIT","readme":"","readmeFilename":"","description":"A easy way to lint your code.","homepage":"https://github.com/x-orpheus/elint#readme","repository":{"type":"git","url":"git+https://github.com/x-orpheus/elint.git"},"author":{"name":"keenwon","email":"semanwmj@gmail.com","url":"http://keenwon.com"},"bugs":{"url":"https://github.com/x-orpheus/elint/issues"}}