You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							87 lines
						
					
					
						
							1.8 KiB
						
					
					
				
			
		
		
	
	
							87 lines
						
					
					
						
							1.8 KiB
						
					
					
				const path = require('path') | 
						|
const webpack = require('webpack') | 
						|
function resolve(dir) { | 
						|
  return path.join(__dirname, '..', dir) | 
						|
} | 
						|
module.exports = { | 
						|
  entry: './src/index.js', | 
						|
  output: { | 
						|
    path: path.resolve(__dirname, './dist'), | 
						|
    publicPath: '/dist/', | 
						|
    filename: 'vue-count-to.min.js', | 
						|
    library: 'CountTo', | 
						|
    libraryTarget: 'umd', | 
						|
    umdNamedDefine: true | 
						|
  }, | 
						|
  module: { | 
						|
    rules: [ | 
						|
      { | 
						|
        test: /\.(js|vue)$/, | 
						|
        loader: 'eslint-loader', | 
						|
        enforce: 'pre', | 
						|
        include: [resolve('src'), resolve('test')], | 
						|
        options: { | 
						|
          formatter: require('eslint-friendly-formatter') | 
						|
        } | 
						|
      }, | 
						|
      { | 
						|
        test: /\.vue$/, | 
						|
        loader: 'vue-loader' | 
						|
      }, | 
						|
      { | 
						|
        test: /\.js$/, | 
						|
        loader: 'babel-loader', | 
						|
        exclude: /node_modules/ | 
						|
      }, | 
						|
      { | 
						|
        test: /\.(png|jpg|gif|svg)$/, | 
						|
        loader: 'file-loader', | 
						|
        options: { | 
						|
          name: '[name].[ext]?[hash]' | 
						|
        } | 
						|
      } | 
						|
    ] | 
						|
  }, | 
						|
  resolve: { | 
						|
    alias: { | 
						|
      vue$: 'vue/dist/vue.esm.js' | 
						|
    } | 
						|
  }, | 
						|
  externals: { | 
						|
    vue: { | 
						|
      root: 'Vue', | 
						|
      commonjs: 'vue', | 
						|
      commonjs2: 'vue', | 
						|
      amd: 'vue' | 
						|
    } | 
						|
  }, | 
						|
  devServer: { | 
						|
    historyApiFallback: true, | 
						|
    noInfo: true | 
						|
  }, | 
						|
  performance: { | 
						|
    hints: false | 
						|
  }, | 
						|
  devtool: '#source-map' | 
						|
} | 
						|
 | 
						|
if (process.env.NODE_ENV === 'production') { | 
						|
  module.exports.devtool = '#source-map' | 
						|
  // http://vue-loader.vuejs.org/en/workflow/production.html | 
						|
  module.exports.plugins = (module.exports.plugins || []).concat([ | 
						|
    new webpack.DefinePlugin({ | 
						|
      'process.env': { | 
						|
        NODE_ENV: '"production"' | 
						|
      } | 
						|
    }), | 
						|
    new webpack.optimize.UglifyJsPlugin({ | 
						|
      sourceMap: true, | 
						|
      compress: { | 
						|
        warnings: false | 
						|
      } | 
						|
    }), | 
						|
    new webpack.LoaderOptionsPlugin({ | 
						|
      minimize: true | 
						|
    }) | 
						|
  ]) | 
						|
}
 | 
						|
 |