{"id":476,"date":"2022-09-15T20:42:15","date_gmt":"2022-09-15T12:42:15","guid":{"rendered":"http:\/\/gjweb.top\/?p=476"},"modified":"2022-09-15T20:42:16","modified_gmt":"2022-09-15T12:42:16","slug":"webpack%e6%90%ad%e5%bb%bavue%e8%84%9a%e6%89%8b%e6%9e%b6","status":"publish","type":"post","link":"https:\/\/gjweb.top\/?p=476","title":{"rendered":"webpack\u642d\u5efavue\u811a\u624b\u67b6"},"content":{"rendered":"\n<p>webpack.config.js \u914d\u7f6e<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const {resolve} = require(\"path\");<br>const HtmlWebpackPlugin = require(\"html-webpack-plugin\")<br>const OptimizeCssAssetsWebpackPlugin = require(\"optimize-css-assets-webpack-plugin\")<br>const miniCssExtractPlugin = require(\"mini-css-extract-plugin\")<br>const { VueLoaderPlugin } = require('vue-loader')<br>const cssLoader = &#91;<br> &nbsp;\/\/ \"vue-style-loader\",<br> &nbsp;miniCssExtractPlugin.loader,<br>  {<br> &nbsp; &nbsp;loader:\"css-loader\",<br> &nbsp; &nbsp;options:{<br> &nbsp; &nbsp; &nbsp;esModule:false<br> &nbsp;  }<br>  }<br>]<br>module.exports = {<br> &nbsp;entry:\".\/src\/main.js\",<br> &nbsp;output:{<br> &nbsp; &nbsp;filename:\"js\/dist.js\",<br> &nbsp; &nbsp;path:resolve(__dirname,\"dist\")<br>  },<br> &nbsp;module:{<br> &nbsp; &nbsp;rules:&#91;<br> &nbsp; &nbsp;  {<br> &nbsp; &nbsp; &nbsp; &nbsp;test:\/\\.vue$\/,<br> &nbsp; &nbsp; &nbsp; &nbsp;loader:\"vue-loader\"<br> &nbsp; &nbsp;  },<br> &nbsp; &nbsp;  {<br> &nbsp; &nbsp; &nbsp; &nbsp;test: \/\\.js$\/,<br> &nbsp; &nbsp; &nbsp; &nbsp;loader: 'babel-loader'<br> &nbsp; &nbsp;  },<br> &nbsp; &nbsp;  {<br> &nbsp; &nbsp; &nbsp; &nbsp;test:\/\\.css$\/,<br> &nbsp; &nbsp; &nbsp; &nbsp;use:&#91;...cssLoader]<br> &nbsp; &nbsp;  },<br> &nbsp; &nbsp;  {<br> &nbsp; &nbsp; &nbsp; &nbsp;test:\/\\.less$\/,<br> &nbsp; &nbsp; &nbsp; &nbsp;use:&#91;...cssLoader,\"less-loader\"]<br> &nbsp; &nbsp;  },<br> &nbsp; &nbsp;  {<br> &nbsp; &nbsp; &nbsp; &nbsp;test:\/\\.scss$\/,<br> &nbsp; &nbsp; &nbsp; &nbsp;use:&#91;...cssLoader,\"sass-loader\"]<br> &nbsp; &nbsp;  },<br> &nbsp; &nbsp;  {<br> &nbsp; &nbsp; &nbsp; &nbsp;test:\/\\.(jpg|png)$\/,<br> &nbsp; &nbsp; &nbsp; &nbsp;loader:\"url-loader\",<br> &nbsp; &nbsp; &nbsp; &nbsp;options:{<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;limit:10*1024,<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;esModule:false<br> &nbsp; &nbsp; &nbsp;  }<br> &nbsp; &nbsp;  },<br> &nbsp; &nbsp;  {<br> &nbsp; &nbsp; &nbsp; &nbsp;test:\/\\.html$\/,<br> &nbsp; &nbsp; &nbsp; &nbsp;loader:'html-withimg-loader'<br> &nbsp; &nbsp;  },<br> &nbsp; &nbsp;  {<br> &nbsp; &nbsp; &nbsp; &nbsp;exclude:\/\\.(js|css|html|png|jpg|less|scss|vue)$\/,<br> &nbsp; &nbsp; &nbsp; &nbsp;loader:\"file-loader\",<br> &nbsp; &nbsp; &nbsp; &nbsp;options:{<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;outputPath:'medea'<br> &nbsp; &nbsp; &nbsp;  }<br> &nbsp; &nbsp;  }<br> &nbsp;  ]<br>  },<br> &nbsp;plugins:&#91;<br> &nbsp; &nbsp;new HtmlWebpackPlugin({<br> &nbsp; &nbsp; &nbsp;template:\".\/public\/index.html\"<br> &nbsp;  }),<br> &nbsp; &nbsp;new miniCssExtractPlugin({<br> &nbsp; &nbsp; &nbsp;filename:'css\/style.css'<br> &nbsp;  }),<br> &nbsp; &nbsp;new OptimizeCssAssetsWebpackPlugin(),<br> &nbsp; &nbsp;new VueLoaderPlugin()<br>  ],<br> &nbsp;devtool:\"source-map\"<br>}<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p>package.json<\/p>\n\n\n\n<p>\u6ce8\u610f vue-loader \u548c vue-template-compiler \u7684\u7248\u672c. vue-template-compiler\u7248\u672c\u9700\u8981\u548c vue \u7684\u7248\u672c\u4e00\u81f4<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{<br> &nbsp;\"name\": \"demo3\",<br> &nbsp;\"version\": \"1.0.0\",<br> &nbsp;\"main\": \"index.js\",<br> &nbsp;\"license\": \"MIT\",<br> &nbsp;\"dependencies\": {<br> &nbsp; &nbsp;\"element-ui\": \"^2.15.10\",<br> &nbsp; &nbsp;\"vue\": \"2.6.14\",<br> &nbsp; &nbsp;\"vue-router\": \"3.5.1\",<br> &nbsp; &nbsp;\"webpack\": \"^5.74.0\",<br> &nbsp; &nbsp;\"webpack-cli\": \"^4.10.0\"<br>  },<br> &nbsp;\"scripts\": {<br> &nbsp; &nbsp;\"serve\": \"webpack --mode=development --watch\"<br>  },<br> &nbsp;\"devDependencies\": {<br> &nbsp; &nbsp;\"@babel\/core\": \"^7.19.1\",<br> &nbsp; &nbsp;\"@babel\/preset-env\": \"^7.19.1\",<br> &nbsp; &nbsp;\"babel-loader\": \"^8.2.5\",<br> &nbsp; &nbsp;\"core-js\": \"^3.25.1\",<br> &nbsp; &nbsp;\"css-loader\": \"^6.7.1\",<br> &nbsp; &nbsp;\"file-loader\": \"^6.2.0\",<br> &nbsp; &nbsp;\"html-webpack-plugin\": \"^5.5.0\",<br> &nbsp; &nbsp;\"html-withimg-loader\": \"^0.1.16\",<br> &nbsp; &nbsp;\"less\": \"^4.1.3\",<br> &nbsp; &nbsp;\"less-loader\": \"^11.0.0\",<br> &nbsp; &nbsp;\"mini-css-extract-plugin\": \"^2.6.1\",<br> &nbsp; &nbsp;\"optimize-css-assets-webpack-plugin\": \"^6.0.1\",<br> &nbsp; &nbsp;\"sass\": \"^1.54.9\",<br> &nbsp; &nbsp;\"sass-loader\": \"^13.0.2\",<br> &nbsp; &nbsp;\"style-loader\": \"^3.3.1\",<br> &nbsp; &nbsp;\"url-loader\": \"^4.1.1\",<br> &nbsp; &nbsp;\"vue-loader\": \"15\",<br> &nbsp; &nbsp;\"vue-style-loader\": \"^4.1.3\",<br> &nbsp; &nbsp;\"vue-template-compiler\": \"2.6.14\"<br>  }<br>}<br>\u200b<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p>\u6700\u7ec8\u6548\u679c<\/p>\n\n\n\n<figure class=\"wp-block-image\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/s1.ax1x.com\/2022\/09\/15\/vzFbWT.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/s1.ax1x.com\/2022\/09\/15\/vzFbWT.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"vzFbWT.png\"\/><\/div><\/figure>\n\n\n\n<p><a href=\"https:\/\/imgse.com\/i\/vzFbWT\"><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>webpack.config.js \u914d\u7f6e package.json \u6ce8\u610f vue-loader \u548c vue-t [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[37],"tags":[],"class_list":["post-476","post","type-post","status-publish","format-standard","hentry","category-webpack"],"_links":{"self":[{"href":"https:\/\/gjweb.top\/index.php?rest_route=\/wp\/v2\/posts\/476","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gjweb.top\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gjweb.top\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gjweb.top\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gjweb.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=476"}],"version-history":[{"count":1,"href":"https:\/\/gjweb.top\/index.php?rest_route=\/wp\/v2\/posts\/476\/revisions"}],"predecessor-version":[{"id":477,"href":"https:\/\/gjweb.top\/index.php?rest_route=\/wp\/v2\/posts\/476\/revisions\/477"}],"wp:attachment":[{"href":"https:\/\/gjweb.top\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=476"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gjweb.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=476"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gjweb.top\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=476"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}