From 3466b9feb2ab86994e37264cc5da40c2d54a7d36 Mon Sep 17 00:00:00 2001
From: Pan <panfree23@gmail.com>
Date: Fri, 30 Jun 2017 11:31:21 +0800
Subject: [PATCH] fix postcss bug

---
 .postcssrc.js         |   8 ++++
 build/utils.js        | 104 +++++++++++++++++++++---------------------
 src/App.vue           |   4 ++
 src/main.js           |   3 +-
 src/styles/index.scss |   3 +-
 5 files changed, 66 insertions(+), 56 deletions(-)
 create mode 100644 .postcssrc.js

diff --git a/.postcssrc.js b/.postcssrc.js
new file mode 100644
index 0000000..ea9a5ab
--- /dev/null
+++ b/.postcssrc.js
@@ -0,0 +1,8 @@
+// https://github.com/michael-ciniawsky/postcss-load-config
+
+module.exports = {
+  "plugins": {
+    // to edit target browsers: use "browserlist" field in package.json
+    "autoprefixer": {}
+  }
+}
diff --git a/build/utils.js b/build/utils.js
index d3aaebb..b1d54b4 100644
--- a/build/utils.js
+++ b/build/utils.js
@@ -3,69 +3,69 @@ var config = require('../config')
 var ExtractTextPlugin = require('extract-text-webpack-plugin')
 
 exports.assetsPath = function (_path) {
-    var assetsSubDirectory = process.env.NODE_ENV === 'production'
-        ? config.build.assetsSubDirectory
-        : config.dev.assetsSubDirectory
-    return path.posix.join(assetsSubDirectory, _path)
+  var assetsSubDirectory = process.env.NODE_ENV === 'production'
+    ? config.build.assetsSubDirectory
+    : config.dev.assetsSubDirectory
+  return path.posix.join(assetsSubDirectory, _path)
 }
 
 exports.cssLoaders = function (options) {
-    options = options || {}
+  options = options || {}
 
-    var cssLoader = {
-        loader: 'css-loader',
-        options: {
-            minimize: process.env.NODE_ENV === 'production',
-            sourceMap: options.sourceMap
-        }
+  var cssLoader = {
+    loader: 'css-loader',
+    options: {
+      minimize: process.env.NODE_ENV === 'production',
+      sourceMap: options.sourceMap
     }
+  }
 
-    // generate loader string to be used with extract text plugin
-    function generateLoaders(loader, loaderOptions) {
-        var loaders = [cssLoader]
-        if (loader) {
-            loaders.push({
-                loader: loader + '-loader',
-                options: Object.assign({}, loaderOptions, {
-                    sourceMap: options.sourceMap
-                })
-            })
-        }
-
-        // Extract CSS when that option is specified
-        // (which is the case during production build)
-        if (options.extract) {
-            return ExtractTextPlugin.extract({
-                use: loaders,
-                fallback: 'vue-style-loader'
-            })
-        } else {
-            return ['vue-style-loader'].concat(loaders)
-        }
+  // generate loader string to be used with extract text plugin
+  function generateLoaders (loader, loaderOptions) {
+    var loaders = [cssLoader]
+    if (loader) {
+      loaders.push({
+        loader: loader + '-loader',
+        options: Object.assign({}, loaderOptions, {
+          sourceMap: options.sourceMap
+        })
+      })
     }
 
-    // http://vuejs.github.io/vue-loader/en/configurations/extract-css.html
-    return {
-        css: generateLoaders(),
-        postcss: generateLoaders(),
-        less: generateLoaders('less'),
-        sass: generateLoaders('sass', {indentedSyntax: true}),
-        scss: generateLoaders('sass'),
-        stylus: generateLoaders('stylus'),
-        styl: generateLoaders('stylus')
+    // Extract CSS when that option is specified
+    // (which is the case during production build)
+    if (options.extract) {
+      return ExtractTextPlugin.extract({
+        use: loaders,
+        fallback: 'vue-style-loader'
+      })
+    } else {
+      return ['vue-style-loader'].concat(loaders)
     }
+  }
+
+  // https://vue-loader.vuejs.org/en/configurations/extract-css.html
+  return {
+    css: generateLoaders(),
+    postcss: generateLoaders(),
+    less: generateLoaders('less'),
+    sass: generateLoaders('sass', { indentedSyntax: true }),
+    scss: generateLoaders('sass'),
+    stylus: generateLoaders('stylus'),
+    styl: generateLoaders('stylus')
+  }
 }
 
 // Generate loaders for standalone style files (outside of .vue)
 exports.styleLoaders = function (options) {
-    var output = []
-    var loaders = exports.cssLoaders(options)
-    for (var extension in loaders) {
-        var loader = loaders[extension]
-        output.push({
-            test: new RegExp('\\.' + extension + '$'),
-            use: loader
-        })
-    }
-    return output
+  var output = []
+  var loaders = exports.cssLoaders(options)
+  for (var extension in loaders) {
+    var loader = loaders[extension]
+    output.push({
+      test: new RegExp('\\.' + extension + '$'),
+      use: loader
+    })
+  }
+  return output
 }
diff --git a/src/App.vue b/src/App.vue
index 823cad8..61ed51d 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -9,3 +9,7 @@
       name: 'APP'
     }
 </script>
+
+<style lang="scss">
+  @import './styles/index.scss'; // 全局自定义的css样式
+</style>
diff --git a/src/main.js b/src/main.js
index 7656d8d..5f6bb26 100644
--- a/src/main.js
+++ b/src/main.js
@@ -6,11 +6,10 @@ import router from './router';
 import store from './store';
 import ElementUI from 'element-ui';
 import 'element-ui/lib/theme-default/index.css';
-import 'assets/custom-theme/index.css'; // 换肤版本element-ui css https://github.com/PanJiaChen/custom-element-theme
+import 'assets/custom-theme/index.css'; // 换肤版本element-ui css
 import NProgress from 'nprogress'; // Progress 进度条
 import 'nprogress/nprogress.css';// Progress 进度条 样式
 import 'normalize.css/normalize.css';// normalize.css 样式格式化
-import 'styles/index.scss'; // 全局自定义的css样式
 import 'components/Icon-svg/index'; // 封装的svg组件
 import 'assets/iconfont/iconfont'; // iconfont 具体图标见https://github.com/PanJiaChen/vue-element-admin/wiki
 import * as filters from './filters'; // 全局vue filter
diff --git a/src/styles/index.scss b/src/styles/index.scss
index e566c38..5bf93a8 100644
--- a/src/styles/index.scss
+++ b/src/styles/index.scss
@@ -1,6 +1,6 @@
 @import './btn.scss';
 @import './element-ui.scss';
-@import "./mixin.scss";
+@import './mixin.scss';
 body {
   -moz-osx-font-smoothing: grayscale;
   -webkit-font-smoothing: antialiased;
@@ -108,7 +108,6 @@ code {
   margin-top: 30px;
 }
 
-
 .editor-container .CodeMirror {
   height: 100%!important;
 }
-- 
2.21.0