{"id":272250,"date":"2021-01-11T03:48:31","date_gmt":"2021-01-10T19:48:31","guid":{"rendered":"http:\/\/4563.org\/?p=272250"},"modified":"2021-01-11T03:48:31","modified_gmt":"2021-01-10T19:48:31","slug":"vue2-%e9%a1%b9%e7%9b%ae%e6%80%8e%e4%b9%88%e6%95%b4%e5%90%88-esbuild-loader%ef%bc%8c%e7%a0%94%e7%a9%b6%e4%ba%86%e5%be%88%e4%b9%85%e8%bf%98%e6%98%af%e5%a4%b1%e8%b4%a5","status":"publish","type":"post","link":"http:\/\/4563.org\/?p=272250","title":{"rendered":"Vue2 \u9879\u76ee\u600e\u4e48\u6574\u5408 esbuild-loader\uff0c\u7814\u7a76\u4e86\u5f88\u4e45\u8fd8\u662f\u5931\u8d25"},"content":{"rendered":"<div>\n<div>\n<div>\n<h1>                  Vue2 \u9879\u76ee\u600e\u4e48\u6574\u5408 esbuild-loader\uff0c\u7814\u7a76\u4e86\u5f88\u4e45\u8fd8\u662f\u5931\u8d25               <\/h1>\n<p> <\/p>\n<div>\n<div> <span>\u8cc7\u6df1\u5927\u4f6c : Cbdy <\/span>  <span><i><\/i> 0<\/span> <\/div>\n<div> <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<\/p><\/div>\n<div isfirst=\"1\"> <\/p>\n<p>\u8001\u9879\u76ee\u6539\u9020\uff0c\u4e0d\u8003\u8651 vite<\/p>\n<p>\u6838\u5fc3\u7684 webpack.config.js \u5dee\u4e0d\u591a\u662f\u8fd9\u6837\u5199\u7684\uff0c\u4f46\u662f\u4e0d\u77e5\u9053\u4e3a\u5565 esbuid-loader \u6ca1\u6709\u628a js \u8f6c\u8bd1\u6210 es2015<\/p>\n<p>\u6709\u6ca1\u6709\u5927\u4f6c\u5e2e\u5fd9\u770b\u770b<\/p>\n<pre><code>const { resolve } = require('path') const { ESBuildPlugin } = require('esbuild-loader') const VueLoaderPlugin = require('vue-loader\/lib\/plugin')  const { createTemplatePlugin } = require('.\/template.plugin.cjs')  const entry = {     app: '.\/src\/app.js',     bpp: '.\/src\/bpp.js', }  const templatePlugins = Object.keys(entry).map(it =&gt; createTemplatePlugin({     chunks: [it],     filename: `${it}.html`, }))  const config = {     module: {         rules: [             {                 test: \/.vue$\/,                 loader: 'vue-loader',                 exclude: \/node_modules\/,             }, {                 test: \/.js$\/,                 use: [{                     loader: 'esbuild-loader',                     options: {                         target: 'es2015'                     }                 }],                 exclude: \/node_modules\/,             }, {                 test: \/.(png|jpg|jpeg|gif)$\/,                 use: [{ loader: 'file-loader', options: { outputPath: 'assets' } }],             }, {                 test: \/.(css|less)$\/,                 use: [                     { loader: 'style-loader' },                     { loader: 'css-loader' },                     { loader: 'less-loader' },                 ],                 exclude: \/node_modules\/             }         ]     },     resolve: {         extensions: ['.vue', '.js']     },     plugins: [         new VueLoaderPlugin(),         new ESBuildPlugin(),         ...templatePlugins,     ],     optimization: {         splitChunks: {             chunks: 'all',             automaticNameDelimiter: '_',         },     },     entry,     output: {         filename: '[name].[chunkhash].js',         chunkFilename: '[name].[chunkhash].js',         path: resolve(__dirname, 'dist')     },     mode: 'development', }  module.exports = config   <\/code><\/pre>\n<\/p><\/div>\n<div> <b>\u5927\u4f6c\u6709\u8a71\u8aaa<\/b> (<span>1<\/span>)        <\/div>\n<div> <\/div>\n<\/p><\/div>\n<\/p><\/div>\n<ul>\n<li data-pid=\"4900007\" data-uid=\"2\">\n<div>\n<div>\n<div> <span>\u8cc7\u6df1\u5927\u4f6c : zzk1989 <\/span>  <\/div>\n<div> <i title=\"\u5f15\u7528\"><\/i>  <span>          <\/span> <\/div>\n<\/p><\/div>\n<div>                                                             vite-for-vue2<br \/>vue-rollup-boilerplate<br \/>\u8fd9\u4e9b\u7528\u5230\u4e86 esbuid \u7684\u9879\u76ee\u90fd\u53ef\u4ee5\u8003\u8651,esbuid \u5f15\u5165 element-ui \u4f1a\u62a5\u9519,\u53ef\u4ee5\u7528 cdn \u65b9\u5f0f\u5f15\u5165                                                            <\/div>\n<\/p><\/div>\n<\/li>\n<li>\n","protected":false},"excerpt":{"rendered":"<p>Vue2 \u9879\u76ee\u600e\u4e48\u6574\u5408 esbui&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[],"tags":[],"_links":{"self":[{"href":"http:\/\/4563.org\/index.php?rest_route=\/wp\/v2\/posts\/272250"}],"collection":[{"href":"http:\/\/4563.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/4563.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/4563.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/4563.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=272250"}],"version-history":[{"count":0,"href":"http:\/\/4563.org\/index.php?rest_route=\/wp\/v2\/posts\/272250\/revisions"}],"wp:attachment":[{"href":"http:\/\/4563.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=272250"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/4563.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=272250"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/4563.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=272250"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}