2017-10-21 397 views
0

我想获得一个webpack文件与postcss一起工作没有成功。与Webpack Postcss

我在SRC/css文件夹命名我的.pcss扩展postcss文件

我希望得到的.css在蒸馏水/ css文件夹

生成的文件这是的WebPack配置我到目前为止。

var path = require('path'); 
var rootPath = path.join(__dirname, './'); 
const ExtractTextPlugin = require('extract-text-webpack-plugin'); 

module.exports = { 
    entry: { 
     'main':'./src/js/index.js' 
    }, 
    output: { 
     path: path.join(rootPath, 'dist'), 
     filename: '[name].js' 
    }, 
    module: { 
     loaders: [ 
      { 
       test: /\.js$/, 
       exclude: /node_modules/, 
       loader: 'babel' 
      } 
     ], 
     rules: [ 
      { 
       test: /\.pcss$/, 
       exclude: /node_modules/, 
       use: [ 
       { 
        loader: 'postcss-loader' 
       } 
       ] 
      }, 
       { 
        test: /\.css$/, 
        exclude: /node_modules/, 
        use: [ 
         { 
          loader: 'style-loader', 
         }, 
         { 
          loader: 'css-loader', 
          options: { 
           importLoaders: 1, 
          } 
         } 
        ] 
       } 
      ] 
    }, 
    watch: true 
}; 

我postcss.config文件

module.exports = { 
    plugins: [ 
     require('precss'), 
     require('autoprefixer'), 
     require('postcss-simple-vars') 
    ] 
} 

我可以知道我做错了吗?

回答

0

使用extractTextPlugin解决了这个问题。下面的代码。

var path = require('path'); 
var rootPath = path.join(__dirname, './'); 
const ExtractTextPlugin = require('extract-text-webpack-plugin'); 
const extractPCSS = new ExtractTextPlugin('../css/[name].css'); 

module.exports = { 
    entry: { 
     'main':'./src/js/index.js' 
    }, 
    output: { 
     path: path.join(rootPath, 'dist','js'), 
     filename: '[name].js' 
    }, 
    module: { 
     loaders: [ 
      { 
       test: /\.js$/, 
       exclude: /node_modules/, 
       loader: 'babel' 
      } 
     ], 
     rules: [ 
      { 
       test: /\.pcss$/, 
       exclude: /node_modules/, 
       use: extractPCSS.extract([ 'css-loader', 'postcss-loader' ]) 
      } 
      ] 
    }, 
    plugins: [ 
    extractPCSS 
    ], 
    watch: true 
};