123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- /* eslint-disable no-undef */
- const path = require('path');
- const webpack = require('webpack');
- const ExtractTextPlugin = require('extract-text-webpack-plugin');
- const GitRevisionPlugin = require('git-revision-webpack-plugin');
- const gitRevisionPlugin = new GitRevisionPlugin();
- module.exports = {
- bail: true,
- devtool: 'source-map',
- entry: {
- 'DPlayer': './src/js/index.js'
- },
- output: {
- path: path.resolve(__dirname, '..', 'dist'),
- filename: '[name].min.js',
- library: '[name]',
- libraryTarget: 'umd',
- libraryExport: 'default',
- umdNamedDefine: true,
- publicPath: '/'
- },
- resolve: {
- modules: ['node_modules'],
- extensions: ['.js', '.scss']
- },
- module: {
- strictExportPresence: true,
- rules: [
- {
- test: /\.js$/,
- enforce: 'pre',
- loader: require.resolve('eslint-loader'),
- include: path.resolve(__dirname, '../src/js'),
- },
- {
- test: /\.js$/,
- use: [
- require.resolve('template-string-optimize-loader'),
- {
- loader: require.resolve('babel-loader'),
- options: {
- compact: true,
- presets: ['env']
- }
- }
- ]
- },
- {
- test: /\.scss$/,
- use: ExtractTextPlugin.extract({
- fallback: require.resolve('style-loader'),
- use: [
- {
- loader: require.resolve('css-loader'),
- options: {
- importLoaders: 1,
- minimize: true,
- sourceMap: true
- }
- },
- {
- loader: require.resolve('postcss-loader'),
- options: {
- config: {
- path: path.join(__dirname, 'postcss.config.js')
- }
- }
- },
- require.resolve('sass-loader')
- ]
- })
- },
- {
- test: /\.(png|jpg)$/,
- loader: require.resolve('url-loader'),
- options: {
- 'limit': 40000
- }
- }
- ]
- },
- plugins: [
- new webpack.DefinePlugin({
- DPLAYER_VERSION: `"${require('../package.json').version}"`,
- GIT_HASH: JSON.stringify(gitRevisionPlugin.version())
- }),
- new webpack.optimize.UglifyJsPlugin({
- compress: {
- warnings: false
- },
- output: {
- comments: false,
- ascii_only: true
- },
- sourceMap: true
- }),
- new ExtractTextPlugin({
- filename: '[name].min.css'
- })
- ],
- node: {
- dgram: 'empty',
- fs: 'empty',
- net: 'empty',
- tls: 'empty',
- }
- };
|