gulp.task('vue',function () {
const config = {
output: {
filename: "[name].bundle.js"
},
resolve: {
extensions: ['.js', '.vue', '.json'],
alias: {
'vue$': 'vue/dist/vue.esm.js',
'@': resolve('views'),
'components': resolve('views/components')
},
},
module: {
rules: [
{
test: /\.(js|vue)$/,
loader: 'eslint-loader',
enforce: 'pre',
include: [resolve('views'), resolve('test')],
options: {
formatter: require('eslint-friendly-formatter')
}
},
{
test: /\.js$/,
loader: 'babel-loader',
include: [resolve('views')]
},
{
test: /\.vue$/,
loader: 'vue-loader',
options: {
loaders: {
css: ExtractTextPlugin.extract({
use: 'css-loader',
fallback: 'vue-style-loader'
})
}
}
},
{
test: /\.css$/,
use: ['style-loader', 'css-loader']
},
{
test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
loader: 'url-loader',
options: {
limit: 10000,
name: 'img/[name]_[hash:7].[ext]'
}
},
{
test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
loader: 'url-loader',
options: {
limit: 10000,
name: 'font/[name]_[hash:7].[ext]'
}
}
]
},
devtool: 'source-map',
plugins: [
// 自动注入引入文件
new HtmlWebpackPlugin({
filename: 'ui.html',
template: 'views/ui.html',
inject: true
})
]
};
if (!dev) {
//生产环境不声称sourcemap
delete config.devtool;
}
let result = gulp.src('views/scripts/es6/ui.js')
.pipe(named())
.pipe(webpackStream(config),webpack);
return result
.pipe(gulp.dest('public/js/'));
})

