dh-c
Version:
The front-end development engineers jimberton gulp react component
102 lines (101 loc) • 2.45 kB
JavaScript
/**
*
* @author keyy/jimberton.wang@gmail.com 17/4/10 19:53
* @description
*/
const path = require('path');
const webpack = require('webpack');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const marked = require("marked");
const renderer = new marked.Renderer();
let output = {
path: path.resolve(__dirname, 'assets'),
filename: '[name].bundle.js',
chunkFilename: '[id].bundle.js',
publicPath: '/'
};
let plugins = [
new webpack.optimize.CommonsChunkPlugin('common'),
new HtmlWebpackPlugin({
title: 'datahuner-component API',
description: '',
username: 'wangjingbo',
filename: 'index.html',
inject: 'body',
template: './example/index.html_vm',
hash: false
})
]
if (process.env.NODE_ENV === 'production') {
output = {
path: path.resolve(__dirname, 'assets'),
filename: '[hash].[name].bundle.js',
chunkFilename: '[hash].[id].bundle.js'
};
plugins = plugins.concat(plugins, [
new webpack.DefinePlugin({
'process.env': {
NODE_ENV: '"production"'
}
}),
new webpack.optimize.UglifyJsPlugin({
compress: {
warnings: false
}
})
])
}
console.log();
module.exports = {
entry: {
index: './example/entry.js'
},
output,
devtool: 'source-map',
module: {
rules: [
{
test: /\.css$/,
use: ['style-loader/useable', 'css-loader', 'postcss-loader']
}, {
test: /\.less$/,
use: ['style-loader', 'css-loader', 'postcss-loader', 'less-loader']
}, {
test: /\.scss$/,
use: ['style-loader', 'css-loader', 'postcss-loader', 'sass-loader']
}, {
test: /\.(js|jsx)$/,
loader: 'babel-loader',
exclude: /(node_modules)/
}, {
test: /\.json$/,
use: 'json-loader'
}, {
test: /\.(eot|svg|ttf|woff|woff2)\w*/,
use: ['file-loader']
}, {
test: /\.md$/,
use: [{
loader: "html-loader"
}, {
loader: "markdown-loader",
options: {
pedantic: true,
renderer
/* your options here */
}
}
]
}
]
},
resolve: {
extensions:['.js', '.jsx'],
modules: [
path.resolve(__dirname, 'node_modules'),
path.resolve(__dirname),
path.resolve(__dirname, 'example', 'utils', 'lib')
]
},
plugins
};