| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- var webpack = require('webpack');
- var path = require('path');
- var config = require('./custom.json');
- var ExtractTextPlugin = require('extract-text-webpack-plugin');
- var CopyWebpackPlugin = require('copy-webpack-plugin');
- var UglifyJsPlugin = require('uglifyjs-webpack-plugin');
- var autoprefixer = require('autoprefixer');
- var webpackConfig = module.exports = {};
- webpackConfig.entry = {
- nutui: './src/nutui-custom.js'
- };
- webpackConfig.output = {
- path: path.resolve(__dirname, 'dist'),
- publicPath: "/",
- filename: 'nutui.js',
- library: 'nutui',
- libraryTarget: 'umd',
- umdNamedDefine: true
- };
- webpackConfig.module = {
- rules: [{
- test: /\.css$/,
- use: ['style-loader', 'css-loader', 'postcss-loader']
- }, {
- test: /\.scss$/,
- use: ['style-loader', 'css-loader', 'sass-loader', 'postcss-loader']
- }, {
- test: /\.vue$/,
- loader: 'vue-loader',
- options: {
- postcss: [autoprefixer()]
- }
- }, {
- test: /\.svg$/,
- loader: 'svg-sprite-loader'
- }, {
- test: /\.js$/,
- loader: 'babel-loader',
- exclude: /node_modules/,
- }, {
- test: /\.(png|jpg|gif|webp)$/,
- loader: 'url-loader',
- options: {
- limit: 3000,
- name: 'img/[name].[ext]',
- }
- }, ]
- };
- webpackConfig.externals = {
- 'vue': {
- root: 'Vue',
- commonjs: 'vue',
- commonjs2: 'vue',
- amd: 'vue'
- }
- };
- webpackConfig.plugins = [
- new webpack.LoaderOptionsPlugin({
- minimize: false
- }),
- new UglifyJsPlugin({
- uglifyOptions: {
- ecma: 8,
- warnings: false
- }
- }),
- new webpack.BannerPlugin('NutUI v' + config.version + ' ' + new Date().toString()),
- new webpack.DefinePlugin({
- 'process.env': {
- NODE_ENV: '"production"'
- },
- 'CONFIG': config
- }),
- new webpack.LoaderOptionsPlugin({
- minimize: false
- })
- ];
- webpackConfig.devtool = '#cheap-module-source-map';
|