create-elmer-ui-app
Version:
create an develop envirnment for elmer-ui-core
114 lines (112 loc) • 3.46 kB
JavaScript
const htmlWebpackPlugin = require("html-webpack-plugin");
const ExtractTextWebpackPlugin = require("extract-text-webpack-plugin");
const nodeExternals = require('webpack-node-externals')
const webpack = require("webpack");
const path = require("path");
// 对babel的配置,内容同.babelrc文件
const babelOptions = {
"presets": [
["env", {
"targets": {
"browsers": ["last 2 versions", "safari >= 7"]
}
}]
]
}
module.exports = {
entry: {
"./script/main": './src/index.ts',
},
resolve:{
extensions: ['.ts', '.js', '.json']
},
plugins:[
new htmlWebpackPlugin({
filename: "index.html",
template: "./src/index.html",
inject: true,
title: "Document",
minify:{
removeComments:true //是否压缩时 去除注释
}
}),
new ExtractTextWebpackPlugin('css/style[chunkhash:8].css', {
allChunks: false
}),
new webpack.DefinePlugin({
template: function(path){
return require(path);
}
})
],
module: {
rules: [
{
test: /\.ts$/,
exclude: /node_modules/,
enforce: 'pre',
use: [
{loader: 'tslint-loader'}
]
},
{
test: /\.ts(x?)$/,
exclude: /node_modules/,
use: [
{
loader: 'babel-loader',
options: babelOptions
},
{
loader: 'ts-loader'
}
]
},{
test:/\.css$/i,
exclude: /node_modules/,
use: ExtractTextWebpackPlugin.extract({
fallback: "style-loader",
use: [
"css-loader",
'postcss-loader'
],
filename: "[name][hash:8].css"
})
},
{
test: /\.less$/i,
exclude: /node_modules/,
use: ExtractTextWebpackPlugin.extract({
use: [
"css-loader",
'postcss-loader',
'less-loader'
],
filename: "[name][hash:8].css"
})
},{
test: /\.(woff|woff2|ttf|eot)/,
exclude: /node_modules/,
use: [
{loader: 'url-loader?limit=400&outputPath=font/&publicPath=../font/'}
]
},{
test: /\.(jpg|bmp|gif|png|svg)/,
exclude: /node_modules/,
use: [
{loader: 'url-loader?limit=400&outputPath=img/&publicPath=../img/'}
]
},{
test: /\.(html|htm)$/i,
exclude: /node_modules/,
use : 'text-loader'
},{
test: /\.d\.ts$/,
loader: 'ignore-loader'
}
]
},
externals: [
nodeExternals()
]
};