{"_id":"@chensi-thunder/fe-dll-service-plugin","name":"@chensi-thunder/fe-dll-service-plugin","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@chensi-thunder/fe-dll-service-plugin","version":"1.0.0","description":"特有项目基于vue2/webpack4抽离提取dll通用服务","main":"src/index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"bin":{"fe-dll-service-plugin":"src/index.js"},"exports":{".":"./src/index.js","./package.json":"./package.json","./*":"./src/*.js"},"author":{"name":"chensi-thunder"},"license":"MIT","dependencies":{"add-asset-html-webpack-plugin":"^3.2.0","clean-webpack-plugin":"^4.0.0","fs-extra":"^10.0.0","merge":"^2.1.1","webpack":"^4.46.0","webpack-cli":"^4.9.1","webpack-merge":"^5.8.0","yargs-parser":"^21.0.0"},"gitHead":"db8bbd835392c90eb355c37270d85b214e692607","_id":"@chensi-thunder/fe-dll-service-plugin@1.0.0","_nodeVersion":"12.22.3","_npmVersion":"8.19.3","dist":{"integrity":"sha512-LbsF91UiC05JibLX7JU6vqsxLe5YEuYtUWJlVVVh4it2Da6HEKBIq+0c1NCsepHPPNz7/mzZ8tm9PmtD3OR5iA==","shasum":"9bee81637908aedc0261b643975eabdbeff3de0a","tarball":"https://registry.npmjs.org/@chensi-thunder/fe-dll-service-plugin/-/fe-dll-service-plugin-1.0.0.tgz","fileCount":7,"unpackedSize":15725,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICWZwcAdSDQmdRm11F/0R0fkbklWmtmmUy+NNRh4dI4lAiEA2+aKvcHubpt+YqGSs7+L1OP36pIJrPtJUiGqS/MAXR4="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjjs1kACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrXAQ/9FEhYldZA9+uiEFjzWPwqTVh75olz8F2k33ReAQGIeaKIVfpo\r\n1qPofbdQM5lLmBR7klC2+uo69KoJTVSMT/ERYKOe4VxM2apzlyt+gbLlugfR\r\nYkbiXKGym12CRNhFNSQpT1rEQXAd3mjjIIF0jZrmQQ/BxXKWBa3Tne07zqx5\r\ngl+usa7mwoZpQ5O7y8o/X1ffjNueZyhIfXE3aLxKgJ8UFGimwYXR40s0FC2b\r\n5u81S+OTGplPSbEGZ5PIX6rLvevP8tR0XkQRzX+Ytwsu7EeM/u/c7Izw9kLT\r\n+0sNKPKICPxLj5wq6oFFpF4+0B5EKr9vJf4CgDNhjVNI15QQszZDcmUWWPDP\r\niIIQzlisbI74c9tU3HZ9uGOaYJHGZJmoJvnIfuu+8yBppEA/HjP8gxRTEdWR\r\ngfJ/WTq5636ddZ5brOi34u+4rqpSQDocfM1Oxh/qoCBYUjwCHoXVBb90y+lZ\r\nyzL49yvtWWQjHtsjsKRVCJy6dtDs5bCrWxrw/IUWVykCR88+IRQs7nV7juKJ\r\nLi33Uqu79lzHkRfPh8InStG+5TYJcinbA7MtrRi4OEb5qHGEVfByhd28prfy\r\nAv/fZM6RvxeoArcUlOW0LMUg+f3IUy7RzXVWaIk0pXU4/a+Uy+/yqdipaJV/\r\ntm3irdkHwAO05kj1icFanNGZUgWgri3f93Y=\r\n=rpaO\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"chensi-thunder","email":"694092524@qq.com"},"directories":{},"maintainers":[{"name":"chensi-thunder","email":"694092524@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/fe-dll-service-plugin_1.0.0_1670303076063_0.7266488550267745"},"_hasShrinkwrap":false}},"time":{"created":"2022-12-06T05:04:35.992Z","1.0.0":"2022-12-06T05:04:36.250Z","modified":"2022-12-06T05:04:36.412Z"},"maintainers":[{"name":"chensi-thunder","email":"694092524@qq.com"}],"description":"特有项目基于vue2/webpack4抽离提取dll通用服务","author":{"name":"chensi-thunder"},"license":"MIT","readme":"# fe-dll-service-plugin\nidss观安前端项目基于vue2/webpack4抽离提取dll通用服务,主要用于将项目中的依赖包通过webpack dll的方式处理缓存数据，优化构建事件。（建议在开发环境下使用，用于提高开发环境下运行速度）\n\n## 配置项\n\n- config 插件的配置文件目录\nidss-webpack-dll-service插件读取的配置文件目录，用于读取该插件的配置路径，项目的相对路径即可，文件的配置项，具体见使用方式\n\n``` shell\n  fe-dll-service-plugin --config=./build/dll.config.js\n```\n\n- mode 插件的运行环境，包括`development`、`production`,即生产环境和开发环境\n该参数主要告知当前插件的运行环境，插件会结合`config`配置与当前`mode`配置，自动运行处理相关配置\n\n``` shell\n  fe-dll-service-plugin --mode=production\n```\n## 使用方式\n使用该方式通常分为两步，第一步提取工程的`dependencies`资源，默认将这些资源通过dll的方式进去编译，第二步即将构建的dll资源作为html中的`static`资源进行加载处理\n\n- 首先添加全局配置，项目目录上添加一个配置文件，用于为`idss-webpack-dll-servic`读取该配置，具体操作如下\n\n``` javascript\n// build/dll.config.js\n\nmodule.exports = {\n  dllFolderPath: './public/dll', // 工程项目下dll目录路径，为相对路径,默认值为'./public/dll'\n  publicPath: '/dll/', // webpack publicPath，默认值为 /dll/\n  isOnlyDevelop: false // 是否只在开发环境下使用dll,默认值为true\n  ignoreNpmList: ['vue', 'vue-router'], // 过滤dependencies中不被打入到dll中的npm包， 默认为[]\n  // 默认npm包在dll处理时，是否需要替换为其他路径，而非全量加载\n  replaceNpmFileMap: {\n    'fusion-components': [\n      'fusion-components/lib/directives/index.js',\n      'fusion-components/lib/filters/index.js',\n      'fusion-components/lib/components/index.js',\n      'fusion-components/lib/install.js',\n      'fusion-components/lib/plugins/index.js',\n      'fusion-components/lib/plugins/vue-extend.js',\n      'fusion-components/lib/plugins/router-extend.js',\n      'fusion-components/lib/plugins/socket.js'\n    ]\n  },\n  // 除了当前工程外额外需要加入到dll中文件\n  addFiles: [],\n  // 默认合并dll conf, 默认{}\n  webpackConf: {}\n}\n```\n\n- 在package.json中添加全局任务\n下述配置创建了`build:dll`任务，并在`开发环境的serve任务`下，添加该`dll`任务\n\n> idss-webpack-dll-service在运行dll时，会识别需要构建的npm版本与上次是否发生变化，如果发生变化，会进行编译；否则，直接跳过该任务\n\n``` json\n<!--package.json-->\n...\n\"scripts\": {\n  \"serve\": \"npm run build:dll && vue-cli-service serve\",\n  \"build:dll\": \"./node_modules/.bin/fe-dll-service-plugin --config=./build/dll.config.js\",\n},\n\"devDependencies\": {\n  \"fe-dll-service-plugin\": \"^1.0.0\",\n}\n...\n\n```\n\n- vue.config.js下修改相关配置\n\n``` javascript\n\n{\n  chainWebpack: (config) => {\n    // 加载下面资源，用于处理dll资源加载到html资源中（内部会根据全局配置，自动处理）\n    const setDllAssetPlugin = require('fe-dll-service-plugin/webpack-chain-dll-asset')\n    setDllAssetPlugin(config)\n  }\n}\n\n```\n\n通过上述配置，即完成了一个项目在开发环境运行dll任务，加快开发环境的运行速度。\n\n","readmeFilename":"README.md"}