UNPKG

esvcp-ui-pc

Version:

ESLink Vue Common Package UI - runtime and build UI on Vue For PC

164 lines (161 loc) 4.89 kB
/** * 公共配置 */ const path = require('path'); const webpack = require('webpack'); const pkg = require('../package.json'); function resolve(dir) { return path.join(__dirname, '..', dir); } module.exports = { // 加载器 module: { // https://doc.webpack-china.org/guides/migrating/#module-loaders-module-rules rules: [ { test: /\.(js|vue)$/, loader: 'eslint-loader', enforce: 'pre', include: [resolve('src'), resolve('test')], options: { formatter: require('eslint-friendly-formatter'), emitWarning: true } }, { // https://vue-loader.vuejs.org/en/configurations/extract-css.html test: /\.vue$/, loader: 'vue-loader', options: { loaders: { css: [ 'vue-style-loader', { loader: 'css-loader', options: { sourceMap: true } } ] }, postLoaders: { html: 'babel-loader?sourceMap' }, sourceMap: true } }, { test: /\.js$/, loader: 'babel-loader', options: { sourceMap: true }, include: [ resolve('src'), resolve('node_modules/webpack-dev-server/client'), // resolve('node_modules/esvcp-pc/src') ] // exclude: /node_modules/ }, { test: /\.css$/, loaders: [ { loader: 'style-loader', options: { sourceMap: true } }, { loader: 'css-loader', options: { sourceMap: true } }, { loader: 'autoprefixer-loader' } ] }, { test: /\.less$/, loaders: [ { loader: 'style-loader', options: { sourceMap: true } }, { loader: 'css-loader', options: { sourceMap: true } }, { loader: 'less-loader', options: { sourceMap: true } } ] }, { test: /\.scss$/, loaders: [ { loader: 'style-loader', options: { sourceMap: true } }, { loader: 'css-loader', options: { sourceMap: true } }, { loader: 'sass-loader', options: { sourceMap: true } } ] }, { test: /\.(html|tpl)$/, loader: 'html-loader' }, { test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, loader: 'url-loader', options: { limit: 10000, name: 'assets/fonts/[name].[ext]?[hash]' } }, { test: /\.(png|jpg|gif|svg)$/, loader: 'url-loader', options: { limit: 50000, name: 'assets/img/[name].[ext]?[hash]' } } ] }, resolve: { extensions: ['.js', '.vue'], alias: { vue: 'vue/dist/vue.esm.js', '@': resolve('src') } }, plugins: [ new webpack.optimize.ModuleConcatenationPlugin(), new webpack.DefinePlugin({ 'process.env.VERSION': `'${pkg.version}'` }) ] };