2016-07-28 140 views
0


我设法用webpack压缩/编译我的js和scss文件。 scss文件被'extract-text-webpack-plugin'提取到外部css文件中。下面是代码:webpack dev服务器忽略scss变化

var path = require('path'); 
var webpack = require('webpack'); 
var ExtractTextPlugin = require("extract-text-webpack-plugin"); 
require('es6-promise').polyfill(); 

module.exports = { 
    entry: ['./js/app'], 
    output: { 
    path: path.join(__dirname, 'js'), 
    publicPath: 'js', 
    filename: 'app.min.js' 
    }, 
plugins: [ 
    new webpack.optimize.UglifyJsPlugin({ 
    compressor: { 
    warnings: false, 
    }, 
    }), 
    new webpack.optimize.OccurrenceOrderPlugin(), 
    new ExtractTextPlugin("../css/styles.min.css", {allChunks: false}) 
], 
module: { 
    loaders: [{ 
    test: /\.scss$/, 
    loader: ExtractTextPlugin.extract("style-loader", "css-loader!sass-loader") 
    }] 
} 
} 

当我运行现在“的WebPack-DEV-服务器的js/app.js” - 它得到我在js文件的变化本身(警报例如),但不改变此话在css文件中。

这是app.js:

var $ = require('jquery'); 
require('../css/styles.scss'); 

alert('Hi'); 

我想这个问题被连接到ExtractTextPlugin。然后我再也不知道如何解决方法。任何提示或想法?

回答

0

好的,我明白了。当启动的WebPack-dev的服务器,我只是问我们是否是在生产环境:

const live = process.env.NODE_ENV === "production"; 

if(live) { 
... 
} else { 
... 
} 

如果我们不生产,它忽略了ExtractTextPlugin出来。

最后部署我的变化I型:

NODE_ENV=production webpack -p 

你也可以使用一个NPM脚本来缩短这个。

相关问题