From 36cd341d440f247601e016ee4f172c0a3684f5f0 Mon Sep 17 00:00:00 2001 From: Sebastian Frank Date: Thu, 31 Aug 2017 22:55:24 +0200 Subject: [PATCH] webpack fonts via file-loader --- package-lock.json | 9 +++++++++ package.json | 1 + {assets => src}/fonts/config.json | 0 {assets => src}/fonts/iconfont.eot | Bin {assets => src}/fonts/iconfont.svg | 0 {assets => src}/fonts/iconfont.ttf | Bin {assets => src}/fonts/iconfont.woff | Bin {assets => src}/fonts/iconfont.woff2 | Bin src/icons.less | 2 +- webpack.config.js | 18 ++++++++++++------ 10 files changed, 23 insertions(+), 7 deletions(-) rename {assets => src}/fonts/config.json (100%) rename {assets => src}/fonts/iconfont.eot (100%) rename {assets => src}/fonts/iconfont.svg (100%) rename {assets => src}/fonts/iconfont.ttf (100%) rename {assets => src}/fonts/iconfont.woff (100%) rename {assets => src}/fonts/iconfont.woff2 (100%) diff --git a/package-lock.json b/package-lock.json index d21f91c..912fdc2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2633,6 +2633,15 @@ "object-assign": "4.1.1" } }, + "file-loader": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-0.11.2.tgz", + "integrity": "sha512-N+uhF3mswIFeziHQjGScJ/yHXYt3DiLBeC+9vWW+WjUBiClMSOlV1YrXQi+7KM2aA3Rn4Bybgv+uXFQbfkzpvg==", + "dev": true, + "requires": { + "loader-utils": "1.1.0" + } + }, "filename-regex": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", diff --git a/package.json b/package.json index 52c885e..9b2c92d 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,7 @@ "eslint": "^4.5.0", "eslint-loader": "^1.9.0", "eslint-plugin-vue": "^3.12.0", + "file-loader": "^0.11.2", "less": "^2.7.2", "less-loader": "^4.0.5", "vue-hot-reload-api": "^2.1.0", diff --git a/assets/fonts/config.json b/src/fonts/config.json similarity index 100% rename from assets/fonts/config.json rename to src/fonts/config.json diff --git a/assets/fonts/iconfont.eot b/src/fonts/iconfont.eot similarity index 100% rename from assets/fonts/iconfont.eot rename to src/fonts/iconfont.eot diff --git a/assets/fonts/iconfont.svg b/src/fonts/iconfont.svg similarity index 100% rename from assets/fonts/iconfont.svg rename to src/fonts/iconfont.svg diff --git a/assets/fonts/iconfont.ttf b/src/fonts/iconfont.ttf similarity index 100% rename from assets/fonts/iconfont.ttf rename to src/fonts/iconfont.ttf diff --git a/assets/fonts/iconfont.woff b/src/fonts/iconfont.woff similarity index 100% rename from assets/fonts/iconfont.woff rename to src/fonts/iconfont.woff diff --git a/assets/fonts/iconfont.woff2 b/src/fonts/iconfont.woff2 similarity index 100% rename from assets/fonts/iconfont.woff2 rename to src/fonts/iconfont.woff2 diff --git a/src/icons.less b/src/icons.less index 0cf910e..c362910 100644 --- a/src/icons.less +++ b/src/icons.less @@ -1,6 +1,6 @@ @import "mixins"; -@iconfont_path: "~/assets/fonts/"; +@iconfont_path: "fonts/"; @iconfont_version: 4; diff --git a/webpack.config.js b/webpack.config.js index d3bd182..fe4a188 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -16,15 +16,15 @@ if (env === 'production') { var UglifyJsPlugin = webpack.optimize.UglifyJsPlugin; plugins.push(new UglifyJsPlugin({ - minimize: true, - sourceMap: true - } + minimize: true, + sourceMap: true + } )); plugins.push(new webpack.DefinePlugin({ - 'process.env': { - NODE_ENV: '"production"' - } + 'process.env': { + NODE_ENV: '"production"' } + } )); appName = appName + '.js'; @@ -51,6 +51,12 @@ module.exports = { test: /\.(vue|js)$/, loader: 'eslint-loader', exclude: /node_modules/ + }, { + test: /\.(jpe?g|png|gif|woff|woff2|ttf|svg|eot)(\?.*)?$/i, + loader: 'file-loader', + options: { + name: '[name].[sha512:hash:base64:7].[ext]' + } }, { test: /\.vue$/, loader: 'vue-loader'