Webpack没有重建css更改,缺少一些设置?

时间:2016-10-25 22:42:02

标签: css node.js webpack webpack-dev-server

我在webpack上设置了postcss-loader + style-loader,我正在使用webpack-dev-server,但每次更改css时,webpack都不会重建。

我在脚本npm上使用

脚本webpack dev服务器:

webpack-dev-server --hot

webpack.config.js

const path = require('path')
const webpack = require('webpack')
const lost = require('lost')
const mqpacker = require('css-mqpacker')
const precss = require('precss')
const cssnano = require('cssnano')
const nested = require('postcss-nested')
const cssnext = require('postcss-cssnext')
const atImport = require('postcss-import')
const postCSSFocus = require('postcss-focus')
const pxtorem = require('postcss-pxtorem')
const flexBugsFixes = require('postcss-flexbugs-fixes')
const rucksack = require('rucksack-css')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const ExtractTextPlugin = require('extract-text-webpack-plugin')
const objectFit = require('postcss-object-fit-images')
const CopyWebpackPlugin = require('copy-webpack-plugin')
const StatsPlugin = require('stats-webpack-plugin')

const environment = process.env.NODE_ENV

module.exports = {

  devServer: {
    colors: true,
    historyApiFallback: true,
    inline: false,
    port: 8080,
  },

  entry: [
    'webpack/hot/dev-server?reload=true',
    path.join(__dirname, 'src/script/app.js')
  ],

  output: {
    path: path.join(__dirname, '/build/'),
    filename: 'index.js',
    publicPath: '/'
  },

  resolve: {
    extensions: ['', '.js', '.css', '.json']
  },

  plugins: [
    new HtmlWebpackPlugin({
      template: 'src/index.html',
      inject: 'body',
      filename: 'index.html'
    }),
    new webpack.optimize.OccurenceOrderPlugin(),
    new webpack.HotModuleReplacementPlugin(),
    new ExtractTextPlugin('[name].min.css'),
    new webpack.optimize.UglifyJsPlugin({
      compressor: {
        warnings: false,
        screw_ie8: true
      }
    }),
    new StatsPlugin('webpack.stats.json', {
      source: false,
      modules: false
    }),
    new CopyWebpackPlugin([{
      context: 'src/svg',
      from: '*.svg',
      to: 'svg'
    }])
  ],

  module: {
    loaders: [{
      test: /\.worker\.js$/,
      loader: 'babel!worker?inline!'
    }, {
      test: /\.js?$/,
      exclude: [/node_modules/, /\.worker\.js$/],
      loader: 'babel'
    }, {
      test: /\.mod\.css$/,
      loader: ExtractTextPlugin.extract('style', 'css?modules!postcss')
    }, {
      test: /\.css$/,
      exclude: /\.mod\.css$/,
      loader: ExtractTextPlugin.extract('style-loader', 'css-loader!postcss-loader')
    }, {
      test: /\.(png|jpe?g|svg|gif)$/,
      loaders: [
        'file?hash=sha512&digest=hex&name=[hash].[ext]',
        'image-webpack?{progressive:true, optimizationLevel: 7, interlaced: false, pngquant:{quality: "65-90", speed: 4}}'
      ]
    }, {
      test: /\.svg$/,
      loader: 'url?limit=65000&mimetype=image/svg+xml&name=fonts/[name].[ext]'
    }, {
      test: /\.woff$/,
      loader: 'url?limit=65000&mimetype=application/font-woff&name=fonts/[name].[ext]'
    }, {
      test: /\.woff2$/,
      loader: 'url?limit=65000&mimetype=application/font-woff2&name=fonts/[name].[ext]'
    }, {
      test: /\.[ot]tf$/,
      loader: 'url?limit=65000&mimetype=application/octet-stream&name=fonts/[name].[ext]'
    }, {
      test: /\.eot$/,
      loader: 'url?limit=65000&mimetype=application/vnd.ms-fontobject&name=fonts/[name].[ext]'
    }],
    resolve: {
      extensions: ['', '.js', '.css', '.json']
    }
  },

  postcss: compiler => [
    atImport({
      addDependencyTo: compiler
    }),
    precss,
    cssnext({
      browsers: ['last 2 versions']
    }),
    pxtorem({
      propWhiteList: ['font', 'font-size', 'line-height', 'letter-spacing'],
      selectorBlackList: []
    }),
    lost,
    postCSSFocus,
    flexBugsFixes,
    rucksack,
    objectFit,
    nested,
    mqpacker,
    cssnano({
      autoprefixer: false
    })
  ]
}

缺乏配置?因为在Webpack文档中,找不到任何关于

的信息

1 个答案:

答案 0 :(得分:0)

您是否在主javascript文件中需要css文件?例如,在index.jsx中:

require("somestyle.css");

css-loader只会知道应用程序所需的CSS文件。有关详细信息,请参阅:https://github.com/webpack/css-loader