generator-zeus
Version:
组件脚手架
103 lines (101 loc) • 3.36 kB
JavaScript
/**
* Created by Administrator on 2016/5/9 0009.
*/
console.info("打包中。。。");
var webpack = require("webpack");
var path = require("path");
var ExtractTextPlugin = require("extract-text-webpack-plugin");
var CleanWebpackPlugin = require('clean-webpack-plugin');
var CopyWebpackPlugin = require('copy-webpack-plugin');
var minimize = process.argv.indexOf('--minimize') !== -1;
module.exports = {
entry: [
"./src/index"
],
output: {
path: path.resolve(__dirname, "dist"),
filename: '<%= filename %>.js',
sourceMapFilename: '[file].map',
libraryTarget: "umd",
library: "<%= library %>"
},
module: {
loaders: [
{
test: /\.js/,
loader: "babel-loader",
query: {
"presets": ["react", "es2015"],
plugins: []
},
exclude: /(node_modules)/
},
{
test: /\.css$/,
loader: ExtractTextPlugin.extract(
"style-loader",
"css-loader?modules&importLoaders=1&localIdentName=[name]_[local]_[hash:base64:5]"
)
},
{
test: /\.scss$/,
loader: ExtractTextPlugin.extract(
"style-loader",
"css-loader?modules&importLoaders=1&localIdentName=[name]_[local]_[hash:base64:5]!sass-loader"
)
},
{
test: /\.(png|gif|jpg|jpeg)$/,
loader: "url?name=img/[name].[ext]"
},
{
test: /\.woff(\?v=\d+\.\d+\.\d+)?$/,
loader: 'url?name=font/[name].[ext]&limit=10000&minetype=application/font-woff'
},
{
test: /\.woff2(\?v=\d+\.\d+\.\d+)?$/,
loader: 'url?name=font/[name].[ext]&limit=10&minetype=application/font-woff'
},
{
test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/,
loader: 'url?name=font/[name].[ext]&limit=10&minetype=application/octet-stream'
},
{
test: /\.eot(\?v=\d+\.\d+\.\d+)?$/,
loader: 'file'
},
{
test: /\.svg(\?v=\d+\.\d+\.\d+)?$/,
loader: 'url?limit=10&minetype=image/svg+xml'
}
]
},
plugins: [
new ExtractTextPlugin("css/style.css"),
new CopyWebpackPlugin([
{from: 'node_modules/babel-core/browser-polyfill.min.js', to: 'polyfill.js'}
])
],
externals: {
"react": 'react',
"jquery": 'jquery',
'react-dom': 'react-dom',
"classnames": "classnames",
"react-css-modules": "react-css-modules"
}
};
if(minimize){
module.exports.plugins.push(
// 压缩js文件
new webpack.optimize.UglifyJsPlugin({
mangle: {
except: ['$super', '$', 'exports', 'require']
},
compress: {
warnings: false
}
})
);
module.exports.output.filename = "<%= filename %>.min.js";
module.exports.devtool = "source-map";
}