Skip to content

Commit d1f7462

Browse files
committed
update and optimize
1 parent 16ff9d5 commit d1f7462

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

65 files changed

+449
-2521
lines changed

.babelrc

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
2-
"presets": ["es2015", "stage-2"],
3-
"plugins": ["transform-runtime", "lodash", ["component", [
2+
"presets": [["env", { "modules": false }], "stage-2"],
3+
"plugins": ["transform-runtime", ["component", [
44
{
55
"libraryName": "element-ui",
66
"styleLibraryName": "theme-default"
@@ -9,6 +9,7 @@
99
"comments": false,
1010
"env": {
1111
"test": {
12+
"presets": ["env", "stage-2"],
1213
"plugins": [ "istanbul" ]
1314
}
1415
}

.eslintrc.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,14 @@
1+
// http://eslint.org/docs/user-guide/configuring
2+
13
module.exports = {
24
root: true,
35
parser: 'babel-eslint',
46
parserOptions: {
57
sourceType: 'module'
68
},
9+
env: {
10+
browser: true,
11+
},
712
// https://github.com/feross/standard/blob/master/RULES.md#javascript-standard-style
813
extends: 'standard',
914
// required to lint *.vue files

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
node_modules/
33
dist/
44
npm-debug.log
5+
yarn-error.log
56
test/unit/coverage
67
test/e2e/reports
78
selenium-debug.log

.postcssrc.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
// https://github.com/michael-ciniawsky/postcss-load-config
2+
3+
module.exports = {
4+
"plugins": {
5+
// to edit target browsers: use "browserlist" field in package.json
6+
"autoprefixer": {}
7+
}
8+
}

build/build.js

Lines changed: 24 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,35 @@
1-
// https://github.com/shelljs/shelljs
21
require('./check-versions')()
3-
require('shelljs/global')
4-
env.NODE_ENV = 'production'
52

6-
var path = require('path')
7-
var config = require('../config')
3+
process.env.NODE_ENV = 'production'
4+
85
var ora = require('ora')
6+
var rm = require('rimraf')
7+
var path = require('path')
8+
var chalk = require('chalk')
99
var webpack = require('webpack')
10+
var config = require('../config')
1011
var webpackConfig = require('./webpack.prod.conf')
1112

12-
console.log(
13-
' Tip:\n' +
14-
' Built files are meant to be served over an HTTP server.\n' +
15-
' Opening index.html over file:// won\'t work.\n'
16-
)
17-
1813
var spinner = ora('building for production...')
1914
spinner.start()
2015

21-
var assetsPath = path.join(config.build.assetsRoot, config.build.assetsSubDirectory)
22-
rm('-rf', assetsPath)
23-
mkdir('-p', assetsPath)
24-
cp('-R', 'static/*', assetsPath)
25-
26-
webpack(webpackConfig, function (err, stats) {
27-
spinner.stop()
16+
rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => {
2817
if (err) throw err
29-
process.stdout.write(stats.toString({
30-
colors: true,
31-
modules: false,
32-
children: false,
33-
chunks: false,
34-
chunkModules: false
35-
}) + '\n')
18+
webpack(webpackConfig, function (err, stats) {
19+
spinner.stop()
20+
if (err) throw err
21+
process.stdout.write(stats.toString({
22+
colors: true,
23+
modules: false,
24+
children: false,
25+
chunks: false,
26+
chunkModules: false
27+
}) + '\n\n')
28+
29+
console.log(chalk.cyan(' Build complete.\n'))
30+
console.log(chalk.yellow(
31+
' Tip: built files are meant to be served over an HTTP server.\n' +
32+
' Opening index.html over file:// won\'t work.\n'
33+
))
34+
})
3635
})

build/build.test.js

Lines changed: 24 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,35 @@
1-
// https://github.com/shelljs/shelljs
21
require('./check-versions')()
3-
require('shelljs/global')
4-
env.NODE_ENV = 'production'
52

6-
var path = require('path')
7-
var config = require('../config')
3+
process.env.NODE_ENV = 'production'
4+
85
var ora = require('ora')
6+
var rm = require('rimraf')
7+
var path = require('path')
8+
var chalk = require('chalk')
99
var webpack = require('webpack')
10+
var config = require('../config')
1011
var webpackConfig = require('./webpack.test.conf')
1112

12-
console.log(
13-
' Tip:\n' +
14-
' Built files are meant to be served over an HTTP server.\n' +
15-
' Opening index.html over file:// won\'t work.\n'
16-
)
17-
1813
var spinner = ora('building for production...')
1914
spinner.start()
2015

21-
var assetsPath = path.join(config.build.assetsRoot, config.build.assetsSubDirectory)
22-
rm('-rf', assetsPath)
23-
mkdir('-p', assetsPath)
24-
cp('-R', 'static/*', assetsPath)
25-
26-
webpack(webpackConfig, function (err, stats) {
27-
spinner.stop()
16+
rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => {
2817
if (err) throw err
29-
process.stdout.write(stats.toString({
30-
colors: true,
31-
modules: false,
32-
children: false,
33-
chunks: false,
34-
chunkModules: false
35-
}) + '\n')
18+
webpack(webpackConfig, function (err, stats) {
19+
spinner.stop()
20+
if (err) throw err
21+
process.stdout.write(stats.toString({
22+
colors: true,
23+
modules: false,
24+
children: false,
25+
chunks: false,
26+
chunkModules: false
27+
}) + '\n\n')
28+
29+
console.log(chalk.cyan(' Build complete.\n'))
30+
console.log(chalk.yellow(
31+
' Tip: built files are meant to be served over an HTTP server.\n' +
32+
' Opening index.html over file:// won\'t work.\n'
33+
))
34+
})
3635
})

build/dev-server.js

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,24 @@
11
require('./check-versions')()
2+
23
var config = require('../config')
3-
if (!process.env.NODE_ENV) process.env.NODE_ENV = JSON.parse(config.dev.env.NODE_ENV)
4+
if (!process.env.NODE_ENV) {
5+
process.env.NODE_ENV = JSON.parse(config.dev.env.NODE_ENV)
6+
}
7+
8+
var opn = require('opn')
49
var path = require('path')
510
var fs = require('fs')
611
var express = require('express')
712
var webpack = require('webpack')
8-
var opn = require('opn')
913
var proxyMiddleware = require('http-proxy-middleware')
1014
var webpackConfig = process.env.NODE_ENV === 'testing'
1115
? require('./webpack.prod.conf')
1216
: require('./webpack.dev.conf')
1317

1418
// default port where dev server listens for incoming traffic
1519
var port = process.env.PORT || config.dev.port
20+
// automatically open browser, if not set will be false
21+
var autoOpenBrowser = !!config.dev.autoOpenBrowser
1622
// Define HTTP proxies to your custom API backend
1723
// https://github.com/chimurai/http-proxy-middleware
1824
var proxyTable = config.dev.proxyTable
@@ -42,7 +48,7 @@ Object.keys(proxyTable).forEach(function (context) {
4248
if (typeof options === 'string') {
4349
options = { target: options }
4450
}
45-
app.use(proxyMiddleware(context, options))
51+
app.use(proxyMiddleware(options.filter || context, options))
4652
})
4753

4854
// mock data
@@ -79,7 +85,7 @@ module.exports = app.listen(port, function (err) {
7985
}
8086

8187
// when env is testing, don't need open it
82-
if (process.env.NODE_ENV !== 'testing') {
88+
if (autoOpenBrowser && process.env.NODE_ENV !== 'testing') {
8389
opn(uri)
8490
}
8591
})

build/utils.js

Lines changed: 32 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -11,38 +11,48 @@ exports.assetsPath = function (_path) {
1111

1212
exports.cssLoaders = function (options) {
1313
options = options || {}
14+
15+
var cssLoader = {
16+
loader: 'css-loader',
17+
options: {
18+
minimize: process.env.NODE_ENV === 'production',
19+
sourceMap: options.sourceMap
20+
}
21+
}
22+
1423
// generate loader string to be used with extract text plugin
15-
function generateLoaders (loaders) {
16-
var sourceLoader = loaders.map(function (loader) {
17-
var extraParamChar
18-
if (/\?/.test(loader)) {
19-
loader = loader.replace(/\?/, '-loader?')
20-
extraParamChar = '&'
21-
} else {
22-
loader = loader + '-loader'
23-
extraParamChar = '?'
24-
}
25-
return loader + (options.sourceMap ? extraParamChar + 'sourceMap' : '')
26-
}).join('!')
24+
function generateLoaders (loader, loaderOptions) {
25+
var loaders = [cssLoader]
26+
if (loader) {
27+
loaders.push({
28+
loader: loader + '-loader',
29+
options: Object.assign({}, loaderOptions, {
30+
sourceMap: options.sourceMap
31+
})
32+
})
33+
}
2734

2835
// Extract CSS when that option is specified
2936
// (which is the case during production build)
3037
if (options.extract) {
31-
return ExtractTextPlugin.extract('vue-style-loader', sourceLoader)
38+
return ExtractTextPlugin.extract({
39+
use: loaders,
40+
fallback: 'vue-style-loader'
41+
})
3242
} else {
33-
return ['vue-style-loader', sourceLoader].join('!')
43+
return ['vue-style-loader'].concat(loaders)
3444
}
3545
}
3646

3747
// http://vuejs.github.io/vue-loader/en/configurations/extract-css.html
3848
return {
39-
css: generateLoaders(['css']),
40-
postcss: generateLoaders(['css']),
41-
less: generateLoaders(['css', 'less']),
42-
sass: generateLoaders(['css', 'sass?indentedSyntax']),
43-
scss: generateLoaders(['css', 'sass']),
44-
stylus: generateLoaders(['css', 'stylus']),
45-
styl: generateLoaders(['css', 'stylus'])
49+
css: generateLoaders(),
50+
postcss: generateLoaders(),
51+
less: generateLoaders('less'),
52+
sass: generateLoaders('sass', { indentedSyntax: true }),
53+
scss: generateLoaders('sass'),
54+
stylus: generateLoaders('stylus'),
55+
styl: generateLoaders('stylus')
4656
}
4757
}
4858

@@ -54,7 +64,7 @@ exports.styleLoaders = function (options) {
5464
var loader = loaders[extension]
5565
output.push({
5666
test: new RegExp('\\.' + extension + '$'),
57-
loader: loader
67+
use: loader
5868
})
5969
}
6070
return output

build/vue-loader.conf.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
var utils = require('./utils')
2+
var config = require('../config')
3+
var isProduction = process.env.NODE_ENV === 'production'
4+
5+
module.exports = {
6+
loaders: utils.cssLoaders({
7+
sourceMap: isProduction
8+
? config.build.productionSourceMap
9+
: config.dev.cssSourceMap,
10+
extract: isProduction
11+
})
12+
}

0 commit comments

Comments
 (0)