{"_id":"8-divine","_rev":"5-1534bd490936853770aaae82cf3992b0","name":"8-divine","dist-tags":{"latest":"1.4.0"},"versions":{"1.0.0":{"name":"8-divine","version":"1.0.0","description":"","main":"index.js","browser":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build:dist":"cross-env NODE_ENV=development webpack --config  build/webpack.config.dist.js","dev":"cross-env NODE_ENV=development webpack serve --config build/webpack.config.dev.js","serve":"cross-env NODE_ENV=development webpack serve --config build/webpack.config.dev.js"},"keywords":[],"author":"","license":"ISC","devDependencies":{"clean-webpack-plugin":"^4.0.0","cross-env":"^7.0.3","css-loader":"^6.5.1","file-loader":"^6.2.0","html-loader":"^3.0.1","html-webpack-plugin":"^5.5.0","node-sass":"^7.0.0","sass":"^1.45.0","sass-loader":"^12.4.0","style-loader":"^3.3.1","url-loader":"^4.1.1","vue":"^2.6.14","vue-loader":"^15.9.8","vue-template-compiler":"^2.6.14","webpack":"^5.65.0","webpack-cli":"^4.9.1","webpack-dev-server":"^4.6.0"},"gitHead":"c9ac7461cd8d8ca998245164f1545fcef3796fce","_id":"8-divine@1.0.0","_nodeVersion":"16.13.0","_npmVersion":"8.1.0","dist":{"integrity":"sha512-gyL18OlO5vOz8RsumoF7QmAOO/3rcLTsEQQCXzdjTXOk1sH6NHVd8MO6bgEB2LBVlIhrL9sFCwjR6OlhACUZGQ==","shasum":"c04ce9194b31624ba2b00cba33a0c06dfab5b8e5","tarball":"https://registry.npmjs.org/8-divine/-/8-divine-1.0.0.tgz","fileCount":26,"unpackedSize":143801,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhvLnSCRA9TVsSAnZWagAAmP0P/2E28rhAKnqt/m/akC+6\n93tkfCS+YIwk7Epshzb0lhIKlWEWEmv4Bkxo7GzktIVG6p4sjfwzvFyyVdlb\nGve6fgbKoy71LNv6ayqxUrDDlWZodPu2Rfd30rVIZN3bAFh+I99Vaq1fvRyj\nP1iqnNBzpOpm9Z5ZanRDayPCLFBvgeguTJ0KZz2vDl50uHn8tsk5ExGUfbsH\nMyQEBTXafRsm00QK4wqKnxdDy1IBY7vxodQcCPFY6DVPeeTcCMT79G3Dxxj9\n0BH32pCnxGaIEZauDZgsPm6XYNqJRHm+XViO8xftnB6iozYtz73bshP8hlgb\nU4Ix3Za1cQK//1zP17rSiBwV3N4bggnsC18IBs76aaKN5uHardAmfm+7EPnA\nVrdH8qZ4TEYtzJ+95PRHBZ2BPL0OhMubDNgXuHLH0Iel4aK/xU6MF19ZGC+y\nqsHaTGVHa8d+Unoa7ENHsnYtLRG1noXwIc+SHfTm8+FOXKKQa1Od/5Mo6U6J\nfvTncWPx0mXFwEDoZDYS3nQuUdVfD2ZDg4RF6cTIAKUvQy+bSUlXC490adxk\nXJzTfu+jAqVvkJdosKPy3mNyU/MibYGUPG0VsM596hJqatWzAJpCOzOc4Eb5\nbedOYC4zhsMOxL1dysEeiLVNq/aapAs1YNgJ3xZBPCeGPsMfbGK6oo5lnLy5\nFWhx\r\n=Vqt8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCCq+04whkxTxdmI6tZkQCPqeKWWZVLONjZhYpMmr1OzQIgPldC4enukCVhPFM0UObrk1X9s95vVyHom1519k/xpm4="}]},"_npmUser":{"name":"woow_wu7","email":"woow.wu7@gmail.com"},"directories":{},"maintainers":[{"name":"woow_wu7","email":"woow.wu7@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/8-divine_1.0.0_1639758290719_0.16113455193081605"},"_hasShrinkwrap":false},"1.1.0":{"name":"8-divine","version":"1.1.0","description":"","main":"dist-prod/8divine.js","browser":"dist-prod/8divine.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build:dev":"cross-env NODE_ENV=development webpack --config  build/webpack.config.dev.js","build:prod":"cross-env NODE_ENV=development webpack --config  build/webpack.config.prod.js","dev":"cross-env NODE_ENV=development webpack serve --config build/webpack.config.dev.js","serve":"cross-env NODE_ENV=development webpack serve --config build/webpack.config.dev.js"},"keywords":[],"author":"","license":"ISC","devDependencies":{"clean-webpack-plugin":"^4.0.0","cross-env":"^7.0.3","css-loader":"^6.5.1","file-loader":"^6.2.0","html-loader":"^3.0.1","html-webpack-plugin":"^5.5.0","node-sass":"^7.0.0","sass":"^1.45.0","sass-loader":"^12.4.0","style-loader":"^3.3.1","url-loader":"^4.1.1","vue":"^2.6.14","vue-loader":"^15.9.8","vue-template-compiler":"^2.6.14","webpack":"^5.65.0","webpack-cli":"^4.9.1","webpack-dev-server":"^4.6.0"},"gitHead":"aa8d6b55215ed74a60370968041884b4946266b5","_id":"8-divine@1.1.0","_nodeVersion":"16.13.0","_npmVersion":"8.1.0","dist":{"integrity":"sha512-KksB1mPLLx1yOj3wNM539BtuibQK+8AuF9jNvOHCr9pgfxlqLzWY5I5kkyie/53afF470WgcZHqzqLwGnRqoCw==","shasum":"ad107c7b9b4344b86e83edf5d284c091fbbae165","tarball":"https://registry.npmjs.org/8-divine/-/8-divine-1.1.0.tgz","fileCount":26,"unpackedSize":149502,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhyCM7CRA9TVsSAnZWagAASJ8P/3wGdd0+Sb55oWoaTNi1\nphCK1yQx2rQ+hAsMqfctTdHbgjlAcr68dcUZNYWZ89JC0uaeTBlsA+eSJtQ1\nBcb48XVQHKDDQ6xo+CF+/bnOoO3Mi99Cprbdsmoff36F1aJY8ZuoJcGQMYNw\nbtX98S3km+Ew4mu7+sWC8SaZzV2IKLkGLrfu9P7MeLZULNIFMZtLtymtP5C1\nn6bBg674bERpsqnrQzsz0n+53pKlNEYhP78fNeYhUlF4cyRWZZmhUcdtPTdT\nUnL+wvclsezsFo1ZbzxERZGqbIzOGDCh/2nvPyi26g5kYr8DdmpEFMbO786y\nOf37UPr17JVFcOOjRW8UKbf1OjfzAdDysE1Qq6HK34dcgl+30mWe6D56i2jO\n3/9yDYYxidmzLgUd+1kwIZ/pfUpBjCGInw8WbpPG8t6b8rLEjuCW7A/isxxr\nHF/mqVSO/kJ/uyhxyylI5uCpEJ6uxB8ojrkgOdKJdhnc4q0DtHHxSbGUMt6+\nxPcICZ5CpcyupslRmjzEZEPGL/BNaZ26e+iUk7jzcM/ckvvPi8Gsb3onGhBR\nQd3NlR5IWBMEBnKbHqLr3rBjiJQqQo+fUfrxDviQqRUxYm7yxaSVkEOZdouW\ns1SU9nulzfmxdlYUvZ0044PvZVRugJbhVqo1ND+/YlwrrIXQlSOAMR5lO6nJ\nu6EH\r\n=ttVI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCPtgHeuTWKjdGEZ0bW/SH8On8j9Pppb8qzJ2NrIgEvmAIhAOaSE070SIvyV7SiCnKVm3dJjWruo5rN41jWiC9iSjA7"}]},"_npmUser":{"name":"woow_wu7","email":"woow.wu7@gmail.com"},"directories":{},"maintainers":[{"name":"woow_wu7","email":"woow.wu7@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/8-divine_1.1.0_1640506171391_0.2204563118636278"},"_hasShrinkwrap":false},"1.2.0":{"name":"8-divine","version":"1.2.0","description":"","main":"dist-prod/8divine.js","browser":"dist-prod/8divine.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build:dev":"cross-env NODE_ENV=development webpack --config  build/webpack.config.dev.js","build:prod":"cross-env NODE_ENV=development webpack --config  build/webpack.config.prod.js","dev":"cross-env NODE_ENV=development webpack serve --config build/webpack.config.dev.js","serve":"cross-env NODE_ENV=development webpack serve --config build/webpack.config.dev.js"},"keywords":[],"author":"","license":"ISC","devDependencies":{"clean-webpack-plugin":"^4.0.0","cross-env":"^7.0.3","css-loader":"^6.5.1","file-loader":"^6.2.0","html-loader":"^3.0.1","html-webpack-plugin":"^5.5.0","node-sass":"^7.0.0","sass":"^1.45.0","sass-loader":"^12.4.0","style-loader":"^3.3.1","url-loader":"^4.1.1","vue":"^2.6.14","vue-loader":"^15.9.8","vue-template-compiler":"^2.6.14","webpack":"^5.65.0","webpack-cli":"^4.9.1","webpack-dev-server":"^4.6.0"},"gitHead":"aa8d6b55215ed74a60370968041884b4946266b5","_id":"8-divine@1.2.0","_nodeVersion":"16.13.0","_npmVersion":"8.1.0","dist":{"integrity":"sha512-O9OSe17FU5NzhqblWrAWn0UiZu2CtcsHyboJHaEH1EYM8E5YhnctMTlwLW2JtXAsHNJh/WMiAFvwlNaLLZvzVg==","shasum":"c7e7e7046851d156cd872ff0179ed849f25bce9c","tarball":"https://registry.npmjs.org/8-divine/-/8-divine-1.2.0.tgz","fileCount":26,"unpackedSize":237816,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhyCVTCRA9TVsSAnZWagAAP3wP/R0qboyNlMwm5Km2m9fQ\nX8JBhdWolpjltIEKnD7S/5E0YRyY9+fCaI4aWDhc0X6IBzGZakW/5OxgzhY0\ns+7H9JGeRyY3195g55wB0eTv4HM/KgBr0d6jqTcRb7AIC9A8pS0GHv3G3n8h\nkVaaYdw0ImRiUm3ojcsJ31JIoSTB06tXGmqFJIqjfvuxeIWxhDrWLuEBOnwy\nA+SVfhNV3KonxALMTckCSsF1b3mxs5hB88xZ8yinxbKv7HN9nMLLh72dn++s\nE+b876kiL1+JCOj4xxe7V8meyadJh6VP2vtkxJA36a4BMiFDxeuww+HFZxVD\nhV8RW70hooGPVFUr4PJRvv4EJpgCMux6C7QsbmNo4/XCBY6LIvGwMzbyk1Gv\nNVC8rDT9fJQoaea6Od0SZOP+hi8Udi9/EeC2VueNOdCvpdJzYVu9/kqLaeaT\niosrSXldUwVVQtQ5v3TvUpsWjuQ95uM9Br4nhfgDCcKPtKsjdhR/pqoADS59\ndHvFHSCgOSWUE+fJZ8IuogE58fh9tD7MjICqtIzhaB1xipcw5n11lAlaaJoq\nF4Aas+1PuR/kbcn1qE08fDkqEUZD5SXEglYdUyUk4fM4/j/LMM7C+QJrF01z\ndeHjqxthssS1yWy9XYXzLpExFgrvJJYQ8hlsvzB99wocvWaMBx31ggKZ/NF+\n+nQN\r\n=lhRV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQClIDK5ywVVexktDa+DwUsJ8V3DDFNzrTIzxb4Xvnm7EAIhAPzSgeRCFur/EdsvjCwwXZ/zGJbuM+JgZhSMNca2VKFW"}]},"_npmUser":{"name":"woow_wu7","email":"woow.wu7@gmail.com"},"directories":{},"maintainers":[{"name":"woow_wu7","email":"woow.wu7@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/8-divine_1.2.0_1640506707738_0.04717101489163511"},"_hasShrinkwrap":false},"1.3.0":{"#name":"表示包名，该名字唯一，需要去npm registry查看名字是否已被使用","name":"8-divine","version":"1.3.0","description":"![8-divine](static/divine.jpg)","#main":"指定了项目的入口文件，即使用组件库时 import xxx from 'xxxx' 使用的文件，一般是打包后的入口文件，即编译后的包文件","main":"dist-prod/8divine.js","browser":"dist-prod/8divine.js","scripts":{"test:build":"cross-env NODE_ENV=production HOST_ENV=dev webpack --config=build/webpack.config.js --mode=production","test:dev":"cross-env NODE_ENV=development HOST_ENV=prod webpack serve --config=build/webpack.config.js --mode=development","build:dev":"cross-env NODE_ENV=development webpack --config  build/webpack.config.dev.js","build:prod":"cross-env NODE_ENV=development webpack --config  build/webpack.config.prod.js","dev":"cross-env NODE_ENV=development HOST_ENV=dev webpack serve --config build/webpack.config.dev.js","serve":"cnpm run dev","docs:dev":"sudo vuepress dev ./docs","docs:build":"vuepress build docs","dev:development":"cross-env NODE_ENV=development webpack --config build/webpack.config.js","dev:production":"cross-env NODE_ENV=production webpack --config build/webpack.config.js"},"#keywords":"关键字数组，可以通过关键字来搜索npm包","keywords":["8-divine","divine"],"#homepage":"项目官网url","homepage":"https://github.com/woow-wu7/8-divine","author":"","license":"ISC","devDependencies":{"@babel/core":"^7.16.7","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-decorators":"^7.16.7","@babel/plugin-syntax-dynamic-import":"^7.8.3","@babel/preset-env":"^7.16.7","babel-loader":"^8.2.3","clean-webpack-plugin":"^4.0.0","cross-env":"^7.0.3","css-loader":"^6.5.1","file-loader":"^6.2.0","html-loader":"^3.0.1","html-webpack-plugin":"^5.5.0","jquery":"^3.6.0","lodash":"^4.17.21","node-sass":"^7.0.0","sass":"^1.45.0","sass-loader":"^12.4.0","style-loader":"^3.3.1","url-loader":"^4.1.1","vue":"^2.6.14","vue-loader":"^15.9.8","vue-template-compiler":"^2.6.14","vuepress":"^1.9.5","webpack":"^5.65.0","webpack-cli":"^4.9.1","webpack-dev-server":"^4.6.0","webpack-merge":"^5.8.0"},"gitHead":"14ba14fa7277ffa6f1a90f51f9366fba1443c1a4","_id":"8-divine@1.3.0","_nodeVersion":"16.13.0","_npmVersion":"8.5.1","dist":{"integrity":"sha512-6kdn+ce6boxC1/bKwPCF9c8uJaOCt1U2eAsL+2mwuzOvyz5pcsnqMtd0NNXdtRhmX0jOfNKpfgEOOYqdaMWfRg==","shasum":"f82b15162996b101df246ca66af4fe6cb4243fcd","tarball":"https://registry.npmjs.org/8-divine/-/8-divine-1.3.0.tgz","fileCount":37,"unpackedSize":391502,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEyKWPRZuZCq/tR8j7rehYtkaqAEdK1eM6R3+EwL6MBfAiEAidXmdiF5N/i39SxyaAbkPiBozbKUm3JCnaxosa8Dipg="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiouxhACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpj4BAAj16Qg1TRBrQUU67BpuvnarIYS6z3ES50Gdv/cAu3DNuYZQcp\r\njuu6eIy1zCN8mHd9FkMNMPc8jOjjY18fVu+Xp47iZwlwE9xvxxpv3Xq+vxWo\r\nNzZBGUi395VaIr5J1itVflQGvaf5XAo76UnyU6tMVajbR/RbRhTohUAkYLSZ\r\nEBtfukn9C9lpsrSCnFidkdo44dhLQVWuM/34TPezsCcAPyL5X+ZDDX5FMAu1\r\nGU/Ll0C/cYA3HuDzp/30Y4JjwqtUUA5BjBHJMaFhxEK7rIJjKTdvLAy7sU+T\r\n4wXKRaK4G9YYPn0ebZPf3XagWb48F2iEwxZ/1y0ygGFLcAiSj/KG+fPqlmf2\r\nnRB/0HHx+Iqf5RZjzelBRH486exlSf0xVpqWIHkxNxPQjCnZNEbTTZP1SfBG\r\n1dYkKhEbBaaAG1sP+ioZ8ntOmUrWPOrvwLK/Dim/av5xvsq3XB9+pyKqhizW\r\nSpAd6zNiksYmp0JPlobvJLl4j3T+1RMLI1539hONeRi99/VCPcGXs1r56Ie+\r\nMUDLr0G0lF/1B6Nijlmsrq5zqY9cw37ebLBCUhWuxljZPhnxszRhsAnJNnm2\r\nPJLbodnHSrn2yg8MA/kxbqV1AYaB2sXwYcIDRYX2MEPLhXriQeTR8FZfzpNP\r\nBUMDZrjrVLPSPbItA1g2fOvB+rfZ6c+v8Bo=\r\n=s76u\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"woow_wu7","email":"woow.wu7@gmail.com"},"directories":{},"maintainers":[{"name":"woow_wu7","email":"woow.wu7@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/8-divine_1.3.0_1654844512869_0.13871771901874985"},"_hasShrinkwrap":false},"1.4.0":{"#name":"表示包名，该名字唯一，需要去npm registry查看名字是否已被使用","name":"8-divine","version":"1.4.0","description":"![8-divine](static/divine.jpg)","#main":"指定了项目的入口文件，即使用组件库时 import xxx from 'xxxx' 使用的文件，一般是打包后的入口文件，即编译后的包文件","main":"dist-prod/8divine.js","browser":"dist-prod/8divine.js","scripts":{"test:build":"cross-env NODE_ENV=production HOST_ENV=dev webpack --config=build/webpack.config.js --mode=production","test:dev":"cross-env NODE_ENV=development HOST_ENV=prod webpack serve --config=build/webpack.config.js --mode=development","build:dev":"cross-env NODE_ENV=development webpack --config  build/webpack.config.dev.js","build:prod":"cross-env NODE_ENV=production webpack --config  build/webpack.config.prod.js","dev":"cross-env NODE_ENV=development HOST_ENV=dev webpack serve --config build/webpack.config.dev.js","serve":"cnpm run dev","docs:dev":"sudo vuepress dev ./docs","docs:build":"vuepress build docs","dev:development":"cross-env NODE_ENV=development webpack --config build/webpack.config.js","dev:production":"cross-env NODE_ENV=production webpack --config build/webpack.config.js"},"#keywords":"关键字数组，可以通过关键字来搜索npm包","keywords":["8-divine","divine"],"#homepage":"项目官网url","homepage":"https://github.com/woow-wu7/8-divine","author":"","license":"ISC","devDependencies":{"@babel/core":"^7.16.7","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-decorators":"^7.16.7","@babel/plugin-syntax-dynamic-import":"^7.8.3","@babel/preset-env":"^7.16.7","babel-loader":"^8.2.3","clean-webpack-plugin":"^4.0.0","cross-env":"^7.0.3","css-loader":"^6.5.1","file-loader":"^6.2.0","html-loader":"^3.0.1","html-webpack-plugin":"^5.5.0","jquery":"^3.6.0","lodash":"^4.17.21","node-sass":"^7.0.0","sass":"^1.45.0","sass-loader":"^12.4.0","style-loader":"^3.3.1","url-loader":"^4.1.1","vue":"^2.6.14","vue-loader":"^15.9.8","vue-template-compiler":"^2.6.14","vuepress":"^1.9.5","webpack":"^5.65.0","webpack-cli":"^4.9.1","webpack-dev-server":"^4.6.0","webpack-merge":"^5.8.0"},"dependencies":{"@babel/core":"^7.16.7","@babel/plugin-proposal-class-properties":"^7.16.7","@babel/plugin-proposal-decorators":"^7.16.7","@babel/plugin-syntax-dynamic-import":"^7.8.3","@babel/preset-env":"^7.16.7","babel-loader":"^8.2.3","clean-webpack-plugin":"^4.0.0","cross-env":"^7.0.3","css-loader":"^6.5.1","file-loader":"^6.2.0","html-loader":"^3.0.1","html-webpack-plugin":"^5.5.0","jquery":"^3.6.0","lodash":"^4.17.21","node-sass":"^7.0.0","sass":"^1.45.0","sass-loader":"^12.4.0","style-loader":"^3.3.1","url-loader":"^4.1.1","vue":"^2.6.14","vue-loader":"^15.9.8","vue-template-compiler":"^2.6.14","vuepress":"^1.9.5","webpack":"^5.65.0","webpack-cli":"^4.9.1","webpack-dev-server":"^4.6.0","webpack-merge":"^5.8.0"},"gitHead":"14ba14fa7277ffa6f1a90f51f9366fba1443c1a4","_id":"8-divine@1.4.0","_nodeVersion":"16.13.0","_npmVersion":"8.5.1","dist":{"integrity":"sha512-hErVWr5xkIItEp5WQip3ROHx30z3DmhCb9FVVgZpvB+3NohnC9Ca+YFYl2iO1uqJWO/Epsnp6BfhUSxLehmTVg==","shasum":"07ff15e8148130d55a7fa8a1e1a71db827985a26","tarball":"https://registry.npmjs.org/8-divine/-/8-divine-1.4.0.tgz","fileCount":37,"unpackedSize":296707,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGIVewaXwlKOPGI9CErdONRpG2XVBnY/+pO1Exp07aeDAiAqBFgB7xJ83SE8/nMYAAbPhDwUJnaBKq1o4MUWSgHBwA=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiovhmACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp76Q//bIwilsE33KtUCHaP9DGNTTDcwhEZl8Z71H3YiGDso26yZrXl\r\ngHkGdHIjPYljY2OlKp2FxisAqcjaXacALpBqt4yFZMy2fQVvYHQbIF+MEt83\r\nJKNsiW+MbnMxQpvfwv1BlqTHCEvaX5rCduZqcgINiMOrgaD0mQYNhD3Fgbrb\r\n0TmwwdKdtVeDlfJuIcdwEllFBPsj9GBZ3WdL9blnipr26qARKwKF4DQCAXWg\r\nw0zukHvs8a4r9QVNIS0fW6mO67iqMk1zru8QVZo7MFe0082qfPn9AIcqf+Qz\r\nbgmBdy+/zeerpmSTm28MFjnqWB98P2f5eH5S+rVLCLJoH16H3pgJ9F9okp90\r\nacu9Uyl4+ZA6G86Z5o9l7Uo3YBtS6Uv2qBjB5hr54UUibCCLWjmaCGY62DAJ\r\n8lXkydlxwV9McatTcD7mK0kXE655z9u6vZLzz19ljm7m2H+9RsRt+NI9vSVJ\r\nXu6LsnoFPC/ndMR5rUn2/Wbe2dnx4rEQLDf1z4zy0Uv1F1/nwSHZe4CNTl0S\r\nTVKbIupvXoP2vVf3hVhAhJ8Y591TemSSPZ+ScdmzJcq91Ozghn/LvYCT7T4C\r\ni70RPwpo2hYbNuTXuTjD6KZCJ32RzndEm+l5NA6wetHcLMLAr+pIH9ayAzz0\r\n7kPT2rSBX6IZccbFlrPOTuEBFARPWPgO6F4=\r\n=osEm\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"woow_wu7","email":"woow.wu7@gmail.com"},"directories":{},"maintainers":[{"name":"woow_wu7","email":"woow.wu7@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/8-divine_1.4.0_1654847590230_0.9163865500375812"},"_hasShrinkwrap":false}},"time":{"created":"2021-12-17T16:24:50.718Z","1.0.0":"2021-12-17T16:24:50.870Z","modified":"2022-06-10T07:53:10.491Z","1.1.0":"2021-12-26T08:09:31.545Z","1.2.0":"2021-12-26T08:18:27.922Z","1.3.0":"2022-06-10T07:01:53.092Z","1.4.0":"2022-06-10T07:53:10.424Z"},"maintainers":[{"name":"woow_wu7","email":"woow.wu7@gmail.com"}],"keywords":["8-divine","divine"],"license":"ISC","readme":"# 8-divine\n\n![8-divine](static/divine.jpg)\n\n# (一) 相关仓库\n\n- [element-ui 源码分析-仓库](https://github.com/woow-wu7/8-element-source-code-analysis)\n\n# (二) 前值知识\n\n### (1) process.cwd() 和 `__dirname`\n\n- process.cwd() - 命令脚本文件所在的目录\n- `__dirname` ----- `__dirname`代码文件所在的目录\n\n```\n1\nprocess.cwd() 和 __dirname 的区别\n- process.cwd()\n  - 返回 Node.js 进程的当前工作目录\n  - 其实就是：调用node命令执行脚本时的目录\n- __dirname\n  - 返回 源代码所在的目录，即 __dirname 代码所在的文件夹\n- 案例\n  - 比如在 8-divine 文件夹下输入命令 node test/cwd.__dirname.js\n  - process.cwd() ---> 就是 /8-divine\n  - __dirname -------> 就是 /8-divine/test\n```\n\n### (2) path.resolve() 和 path.join() 的区别\n\n```\n2\npath.resolve() 和 path.join() 和 __dirname 的区别？\n- path.resolve() -------> 生成绝对路径；resolve是决心，决定，解析的意思\n- path.join() ----------> 拼接路径\n- __dirname ------------> 当前__dirname文件的目录，是一个绝对路径\n- 案例1\n  - 在本项目执行 node test/resolve.join.__dirname.js\n- 案例2\n  - 等价：path.join(__dirname, 'public') 等价于 path.resolve(__dirname, 'public')\n  - 因为：__dirname就是返回的绝对路径\n```\n\n### (3) webpack-dev-server^4 配置变化\n\n```\n3\nwebpack-dev-server\nversion >= 4.0.0\n---\n\n3.1\ndevServer: {\n  // 静态资源从之前的 contentBase 改成 static\n  static: {\n    directory: path.resolve(__dirname, \"dist\"),\n  },\n  port: 7777,\n  compress: true,\n}\n\n3.2\n命令行执行 webpack serve --config webpack.config.js\n// 之前3.x是 webpack-dev-server --config webpack.config.js\n```\n\n### (4) output 和 npm 包上传 相关的属性\n\n- output.library\n\n```\n4\noutput\noutput webpack中的output和打包上传npm相关的属性\n- output.library\n- 官网文档：https://webpack.docschina.org/configuration/output/#outputumdnameddefine\n---示例\n output: {\n    library: {\n      name: \"8divine\", // 配置导出库的名称，如使用require引入，这里就是require(\"8divine\")\n      type: \"umd\", // 配置将库暴露的方式，即配置以何种方式导出库，注意 该属性用来代替下面的 libraryTarget，以后webpack可能移除对 libraryTarget 的支持\n      // type: \"var\", // var表示：让你的库加载之后，入口起点的返回值 将会被赋值给一个变量\n      umdNamedDefine: true, // 当使用 output.library.type: \"umd\" 时，将 output.library.umdNamedDefine 设置为 true 将会把 AMD 模块命名为 UMD 构建。否则使用匿名 define\n    },\n    // libraryTarget: \"umd\", // 配置以何种方式导出库 ---> 将被 output.library.type 代替\n    // umdNamedDefine: true, // ---------------------> 将被 output.library.umdNamedDefine 代替，当使用 libraryTarget: \"umd\" 时，设置 output.umdNamedDefine 为 true 将命名由 UMD 构建的 AMD 模块。否则将使用一个匿名的 define。\n  }\n```\n\n### (5) 环境变量\n\n- cross-env + webpack.DefinePlugin() + mode\n\n```\n5\n环境变量\n---\n\n- cross-env\n  - 作用：设置的是 ( node的环境 ) 中的环境变量 process.env，也就是说只能在webpack.config.js中访问到\n  - 例子：`{ scripts: { \"test:dev\": \"cross-env NODE_ENV=development OTHER_ENV=other webpack serve --config build/webpack.config.js\" }}`\n  - 语法：cross-env可以设置多个node环境的环境变量，只需要空格隔开就行，如上\n  - 安装：npm install cross-env -S\n- webpack.DefinePlugin()\n  - 设置的是 ( 浏览器环境 ) 中的环境变量，也就是说可以在各个js文件中使用到 webpack.DefinePlugin() 中定义的环境变量\n  - 注意点：\n    - 如果环境变量的值是一个字符串，那么需要用 JSON.stringify('\"string\"') 进行转译，所以为了安全保证，将所有数据类型都进行JSON.stringify来处理\n    - 如果 webpack.DefinedPlugin({'process.env.NODE_ENV': xxxx})，那么在浏览器环境中也能访问到process.env.NODE_ENV，这就是webpack.config.js中的mode属性需要干的事情\n- mode\n  - mode的作用是，mode的值将会作为 webpack.DefinedPlugin({'process.env.NODE_ENV': JSON.stringify('mode的值')})\n  - development，production，none\n- 总结区别\n  - cross-env定义的环境变量，只能在node环境中被访问到，即 webpack.config.js 中被访问到\n  - webpack.DefinePlugin()定义的环境变量，只能在浏览器环境中被访问到，即只能在各个module模块中去使用，不能在webpack.config.js中使用\n  - mode指定的值，mode的值将会作为 webpack.DefinedPlugin({'process.env.NODE_ENV': JSON.stringify('mode的值')})，从而能在浏览器环境中访问，即module中访问\n- 实践案例1\n  - 结果：如果webpack.config.js中的 mode=\"development\"，并且在 build命令时执行的命令 cross-env NODE_ENV=\"production\"，随便在模块js中打印process.env.NODE_ENV输出的是'development'\n  - 原因：\n    - 1. 说明浏览器环境中的process.env.NODE_ENV是通过 -------- webpack.config.js 中的 ( mode属性 ) 设置的\n    - 2. 而webpack.config.js中的process.env.NODE_ENV是通过 - ( cross-env ) 来设置的\n  - 本质：mode的作用是，mode的值将会作为 webpack.DefinedPlugin({'process.env.NODE_ENV': JSON.stringify('mode的值')})，从而能在浏览器环境中访问，即module中访问\n  - 所以：如何同步？\n    - 回答：可以将 mode 设置为 ( mode:process.env.NODE_ENV ) 这样 ( node 和 浏览器 中的环境变量就同步了 )\n    - 因为：\n      - cross-env NODE_ENV=development 将 webpack.config.js 中的环境变量 NODE_ENV 设置为了 development\n      - 而 mode=process.env.NODE_ENV 访问到了 NODE_ENV=development，即 mode=development，mode的作用就是设置 webpack.DefinePlugin() 中的 process.env.NODE_ENV，用于在浏览器环境中使用\n      - 这样 浏览器环境 和 node环境的 NODE_ENV 就都为 development\n- 实践案例2\n  - 设置不同的环境对应的后端服务器地址，详见examples/main.js\n\n---\n浏览器中的环境变量有多少种指定的方式 ( 两种 )\n- mode 指定\n- webpack.DefinePlugin({ \"process.env.NODE_ENV\": JSON.stringify('NODE_ENV的值') })\n```\n\n### (6) package.json\n\n```\n6\n我们在 package.json 中设置main，browser\n- 浏览器环境优先级：browser > module > main\n- node环境优先级：module > main\n---示例\n\"main\": \"dist-prod/8divine.js\", // 这里我们使用打包后的文件作为入口文件，上传到npm上\n\"browser\": \"dist-prod/8divine.js\"\n\"bin\": 命令 - 对应的文件\n```\n\n### (7) 说明文档编写\n\n```\n7\n说明文档编写\nvuepress // press是出版社的意思\n注意：在webpack5中需要使用 vuepress2\n命令：在项目根目录执行：sudo vuepress dev ./docs\n官网：https://vuepress.vuejs.org/zh/theme/default-theme-config.html#%E5%A4%9A%E4%B8%AA%E4%BE%A7%E8%BE%B9%E6%A0%8F\n```\n\n### (8) Vue.use()\n\n```\n1\nVue.use(plugin)\n- 作用\n  - 安装vue插件\n- plugin\n  - 1. 如果插件是一个对象，必须要有 install 方法\n  - 2. 如果插件是一个函数，函数自身会被作为 install 方法\n  - 注意：如果一个插件多次调用install方法，插件只会安装一次\n- 调用时机\n  - Vue.use() 必须在 new Vue() 之前调用\n\n\n2\n插件\n- 作用：插件通常为vue提供 ( 全局功能 )\n- 类型\n  - 1. 插件是object\n   - 当插件是对象时，必须要有一个 install 方法\n   - install(Vue, options)\n    - 第一个参数\n      - Vue\n      - 所以：在插件中就可以利用大Vue上的属性和方法实现不同的功能\n      - 比如：Vue.directive指令，Vue.mixin混合，Vue.prototype.xxx原型属性方法，Vue.xxx静态属性和方法\n    - 第二个参数：可选的 ( 选项对象 )\n  - 2. 插件是function\n    - 函数自身会作为install方法\n\n\n3\nVue.use源码\nexport function initUse(Vue: GlobalAPI) {\n  Vue.use = function (plugin: Function | Object) {\n    // 1\n    // 每个 Vue 的 plugin\n    // - 1. 是对象时都具有一个install方法\n    // - 2. 是函数时本身会被当作install方法\n    // 2\n    // install(Vue [, options])\n    // - 第一个参数：是大Vue\n    //  - 所以：具有Vue的能力\n    //  - 比如：Vue.directive指令，Vue.mixin混合，Vue.prototype.xxx原型属性方法，Vue.xxx静态属性和方法\n\n    const installedPlugins = this._installedPlugins || (this._installedPlugins = []); // 不存在赋值空数组\n    // ------------ 插件已经注册过\n    if (installedPlugins.indexOf(plugin) > -1) {\n      // 如果已经注册过该插件，返回this\n      // this表示大Vue，返回this，表示不再往下执行，同时可以实现链式调用，Vue.use().use()\n      return this;\n    }\n    // ----------- 插件未注册过，继续往下执行\n    // additional parameters 附加参数\n    // - Vue.use(plugin, additionalParameters) 附加的可选的第二个配置项对象参数\n    const args = toArray(arguments, 1);\n    // args\n    // - 注意这里的 arguments 是 Vue.use()方法中的 arguments\n    // - 这里表示：获取 Vue.use() 的第二个参数 options 对象\n\n    // toArray()\n    // export function toArray (list: any, start?: number): Array<any> {\n    //   start = start || 0\n    //   let i = list.length - start\n    //   const ret: Array<any> = new Array(i)\n    //   while (i--) {\n    //     ret[i] = list[i + start] // 这里写的很精妙\n    //   }\n    //   return ret\n    // }\n\n    args.unshift(this);\n    // 将大 Vue 添加进参数数组最前面，这样调用plugin的install方法的第一个参数就变成了Vue\n\n    if (typeof plugin.install === \"function\") {\n      // 插件是对象，install方法存在并且是function，调用\n      // 注意：vue的plugin中的install方法的第一个参数：大Vue，就是args数组的第一个成员就是大Vue， args.unshift(this);\n      plugin.install.apply(plugin, args);\n    } else if (typeof plugin === \"function\") {\n      // 插件本身是函数，调用\n      plugin.apply(null, args);\n    }\n    installedPlugins.push(plugin); // 未注册过该插件，调用插件后，把该插件添加进插件数组，用于之后判断是否注册过该插件\n    return this; // 同样的，插件 注册过 和 未注册过 都在最后返回 Vue，实现Vue.use() 的链式调用\n  };\n}\n```\n","readmeFilename":"README.md","description":"![8-divine](static/divine.jpg)","homepage":"https://github.com/woow-wu7/8-divine"}