-
Notifications
You must be signed in to change notification settings - Fork 15
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
9d52363
commit 8ce2861
Showing
46 changed files
with
9,642 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
{ | ||
"presets": [ | ||
["es2015", { "modules": false }], | ||
"stage-2" | ||
], | ||
"plugins": ["transform-runtime"], | ||
"comments": false, | ||
"env": { | ||
"test": { | ||
"plugins": [ "istanbul" ] | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
root = true | ||
|
||
[*] | ||
charset = utf-8 | ||
indent_style = space | ||
indent_size = 4 | ||
end_of_line = lf | ||
insert_final_newline = true | ||
trim_trailing_whitespace = true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
// https://github.com/shelljs/shelljs | ||
require('./check-versions')() | ||
|
||
process.env.NODE_ENV = 'production' | ||
|
||
var ora = require('ora') | ||
var path = require('path') | ||
var chalk = require('chalk') | ||
var shell = require('shelljs') | ||
var webpack = require('webpack') | ||
var config = require('../config') | ||
var webpackConfig = require('./webpack.prod.conf') | ||
|
||
var spinner = ora('building for production...') | ||
spinner.start() | ||
|
||
var assetsPath = path.join(config.build.assetsRoot, config.build.assetsSubDirectory) | ||
shell.rm('-rf', assetsPath) | ||
shell.mkdir('-p', assetsPath) | ||
shell.config.silent = true | ||
shell.cp('-R', 'static/*', assetsPath) | ||
shell.config.silent = false | ||
|
||
webpack(webpackConfig, function (err, stats) { | ||
spinner.stop() | ||
if (err) throw err | ||
process.stdout.write(stats.toString({ | ||
colors: true, | ||
modules: false, | ||
children: false, | ||
chunks: false, | ||
chunkModules: false | ||
}) + '\n\n') | ||
|
||
console.log(chalk.cyan(' Build complete.\n')) | ||
console.log(chalk.yellow( | ||
' Tip: built files are meant to be served over an HTTP server.\n' + | ||
' Opening index.html over file:// won\'t work.\n' | ||
)) | ||
}) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
var chalk = require('chalk') | ||
var semver = require('semver') | ||
var packageConfig = require('../package.json') | ||
|
||
function exec (cmd) { | ||
return require('child_process').execSync(cmd).toString().trim() | ||
} | ||
|
||
var versionRequirements = [ | ||
{ | ||
name: 'node', | ||
currentVersion: semver.clean(process.version), | ||
versionRequirement: packageConfig.engines.node | ||
}, | ||
{ | ||
name: 'npm', | ||
currentVersion: exec('npm --version'), | ||
versionRequirement: packageConfig.engines.npm | ||
} | ||
] | ||
|
||
module.exports = function () { | ||
var warnings = [] | ||
for (var i = 0; i < versionRequirements.length; i++) { | ||
var mod = versionRequirements[i] | ||
if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) { | ||
warnings.push(mod.name + ': ' + | ||
chalk.red(mod.currentVersion) + ' should be ' + | ||
chalk.green(mod.versionRequirement) | ||
) | ||
} | ||
} | ||
|
||
if (warnings.length) { | ||
console.log('') | ||
console.log(chalk.yellow('To use this template, you must update following to modules:')) | ||
console.log() | ||
for (var i = 0; i < warnings.length; i++) { | ||
var warning = warnings[i] | ||
console.log(' ' + warning) | ||
} | ||
console.log() | ||
process.exit(1) | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
/* eslint-disable */ | ||
require('eventsource-polyfill') | ||
var hotClient = require('webpack-hot-middleware/client?noInfo=true&reload=true') | ||
|
||
hotClient.subscribe(function (event) { | ||
if (event.action === 'reload') { | ||
window.location.reload() | ||
} | ||
}) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
require('./check-versions')() | ||
|
||
var config = require('../config') | ||
if (!process.env.NODE_ENV) { | ||
process.env.NODE_ENV = JSON.parse(config.dev.env.NODE_ENV) | ||
} | ||
|
||
var opn = require('opn') | ||
var path = require('path') | ||
var express = require('express') | ||
var webpack = require('webpack') | ||
var proxyMiddleware = require('http-proxy-middleware') | ||
var webpackConfig = require('./webpack.dev.conf') | ||
|
||
// default port where dev server listens for incoming traffic | ||
var port = process.env.PORT || config.dev.port | ||
// automatically open browser, if not set will be false | ||
var autoOpenBrowser = !!config.dev.autoOpenBrowser | ||
// Define HTTP proxies to your custom API backend | ||
// https://github.com/chimurai/http-proxy-middleware | ||
var proxyTable = config.dev.proxyTable | ||
|
||
var app = express() | ||
var compiler = webpack(webpackConfig) | ||
|
||
var devMiddleware = require('webpack-dev-middleware')(compiler, { | ||
publicPath: webpackConfig.output.publicPath, | ||
quiet: true | ||
}) | ||
|
||
var hotMiddleware = require('webpack-hot-middleware')(compiler, { | ||
log: () => {} | ||
}) | ||
// force page reload when html-webpack-plugin template changes | ||
compiler.plugin('compilation', function (compilation) { | ||
compilation.plugin('html-webpack-plugin-after-emit', function (data, cb) { | ||
hotMiddleware.publish({ action: 'reload' }) | ||
cb() | ||
}) | ||
}) | ||
|
||
// proxy api requests | ||
Object.keys(proxyTable).forEach(function (context) { | ||
var options = proxyTable[context] | ||
if (typeof options === 'string') { | ||
options = { target: options } | ||
} | ||
app.use(proxyMiddleware(options.filter || context, options)) | ||
}) | ||
|
||
// handle fallback for HTML5 history API | ||
app.use(require('connect-history-api-fallback')()) | ||
|
||
// serve webpack bundle output | ||
app.use(devMiddleware) | ||
|
||
// enable hot-reload and state-preserving | ||
// compilation error display | ||
app.use(hotMiddleware) | ||
|
||
// serve pure static assets | ||
var staticPath = path.posix.join(config.dev.assetsPublicPath, config.dev.assetsSubDirectory) | ||
app.use(staticPath, express.static('./static')) | ||
|
||
var uri = 'http://localhost:' + port | ||
|
||
devMiddleware.waitUntilValid(function () { | ||
console.log('> Listening at ' + uri + '\n') | ||
}) | ||
|
||
module.exports = app.listen(port, function (err) { | ||
if (err) { | ||
console.log(err) | ||
return | ||
} | ||
|
||
// when env is testing, don't need open it | ||
if (autoOpenBrowser && process.env.NODE_ENV !== 'testing') { | ||
opn(uri) | ||
} | ||
}) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
var path = require('path'); | ||
var config = require('../config'); | ||
var ExtractTextPlugin = require('extract-text-webpack-plugin'); | ||
|
||
exports.assetsPath = function (_path) { | ||
var assetsSubDirectory = process.env.NODE_ENV === 'production' | ||
? config.build.assetsSubDirectory | ||
: config.dev.assetsSubDirectory | ||
return path.posix.join(assetsSubDirectory, _path) | ||
} | ||
|
||
exports.cssLoaders = function (options) { | ||
options = options || {} | ||
// generate loader string to be used with extract text plugin | ||
function generateLoaders (loaders) { | ||
var sourceLoader = loaders.map(function (loader) { | ||
var extraParamChar | ||
if (/\?/.test(loader)) { | ||
loader = loader.replace(/\?/, '-loader?') | ||
extraParamChar = '&' | ||
} else { | ||
loader = loader + '-loader' | ||
extraParamChar = '?' | ||
} | ||
return loader + (options.sourceMap ? extraParamChar + 'sourceMap' : '') | ||
}).join('!') | ||
|
||
// Extract CSS when that option is specified | ||
// (which is the case during production build) | ||
if (options.extract) { | ||
return ExtractTextPlugin.extract({ | ||
use: sourceLoader, | ||
fallback: 'vue-style-loader' | ||
}) | ||
} else { | ||
return ['vue-style-loader', sourceLoader].join('!') | ||
} | ||
} | ||
|
||
// http://vuejs.github.io/vue-loader/en/configurations/extract-css.html | ||
return { | ||
css: generateLoaders(['css']), | ||
postcss: generateLoaders(['css']), | ||
less: generateLoaders(['css', 'less']), | ||
sass: generateLoaders(['css', 'sass?indentedSyntax']), | ||
scss: generateLoaders(['css', 'sass']), | ||
stylus: generateLoaders(['css', 'stylus']), | ||
styl: generateLoaders(['css', 'stylus']) | ||
} | ||
} | ||
|
||
// Generate loaders for standalone style files (outside of .vue) | ||
exports.styleLoaders = function (options) { | ||
var output = [] | ||
var loaders = exports.cssLoaders(options) | ||
for (var extension in loaders) { | ||
var loader = loaders[extension] | ||
output.push({ | ||
test: new RegExp('\\.' + extension + '$'), | ||
loader: loader | ||
}) | ||
} | ||
return output | ||
} |
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
var utils = require('./utils') | ||
var config = require('../config') | ||
var isProduction = process.env.NODE_ENV === 'production' | ||
|
||
module.exports = { | ||
loaders: utils.cssLoaders({ | ||
sourceMap: isProduction | ||
? config.build.productionSourceMap | ||
: config.dev.cssSourceMap, | ||
extract: isProduction | ||
}), | ||
postcss: [ | ||
require('autoprefixer')({ | ||
browsers: ['last 2 versions'] | ||
}) | ||
] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,76 @@ | ||
var path = require('path') | ||
var utils = require('./utils') | ||
var webpack = require('webpack') | ||
var config = require('../config') | ||
var vueLoaderConfig = require('./vue-loader.conf') | ||
|
||
function resolve (dir) { | ||
return path.join(__dirname, '..', dir) | ||
} | ||
|
||
module.exports = { | ||
entry: { | ||
app: ['babel-polyfill','./src/main.js'] | ||
}, | ||
//后期添加(当引入fs报错时) | ||
node: { | ||
fs: "empty" | ||
}, | ||
///////添加完毕 | ||
|
||
output: { | ||
path: config.build.assetsRoot, | ||
filename: '[name].js', | ||
publicPath: process.env.NODE_ENV === 'production' | ||
? config.build.assetsPublicPath | ||
: config.dev.assetsPublicPath | ||
}, | ||
resolve: { | ||
extensions: ['.js', '.vue', '.json'], | ||
modules: [ | ||
resolve('src'), | ||
resolve('node_modules') | ||
], | ||
alias: { | ||
'vue$': 'vue/dist/vue.common.js', | ||
'src': resolve('src'), | ||
'assets': resolve('src/assets'), | ||
'components': resolve('src/components') | ||
} | ||
}, | ||
module: { | ||
rules: [ | ||
{ | ||
test: /\.vue$/, | ||
loader: 'vue-loader' | ||
}, | ||
{ | ||
test: /\.js$/, | ||
loader: 'babel-loader', | ||
include: [resolve('src'), resolve('test')] | ||
}, | ||
{ | ||
test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, | ||
loader: 'url-loader', | ||
query: { | ||
limit: 10000, | ||
name: utils.assetsPath('img/[name].[hash:7].[ext]') | ||
} | ||
}, | ||
{ | ||
test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, | ||
loader: 'url-loader', | ||
query: { | ||
limit: 10000, | ||
name: utils.assetsPath('fonts/[name].[hash:7].[ext]') | ||
} | ||
} | ||
] | ||
}, | ||
// plugins: [ | ||
// new webpack.DllReferencePlugin({ | ||
// context: path.resolve(__dirname, '..'), | ||
// manifest: require('./vendor-manifest.json') | ||
// }) | ||
// ] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
var utils = require('./utils') | ||
var webpack = require('webpack') | ||
var config = require('../config') | ||
var merge = require('webpack-merge') | ||
var baseWebpackConfig = require('./webpack.base.conf') | ||
var HtmlWebpackPlugin = require('html-webpack-plugin') | ||
var FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin') | ||
|
||
// add hot-reload related code to entry chunks | ||
Object.keys(baseWebpackConfig.entry).forEach(function (name) { | ||
baseWebpackConfig.entry[name] = ['./build/dev-client'].concat(baseWebpackConfig.entry[name]) | ||
}) | ||
|
||
module.exports = merge(baseWebpackConfig, { | ||
module: { | ||
rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap }) | ||
}, | ||
// cheap-module-eval-source-map is faster for development | ||
devtool: '#cheap-module-eval-source-map', | ||
plugins: [ | ||
new webpack.DefinePlugin({ | ||
'process.env': config.dev.env | ||
}), | ||
// https://github.com/glenjamin/webpack-hot-middleware#installation--usage | ||
new webpack.HotModuleReplacementPlugin(), | ||
new webpack.NoEmitOnErrorsPlugin(), | ||
// https://github.com/ampedandwired/html-webpack-plugin | ||
new HtmlWebpackPlugin({ | ||
filename: 'index.html', | ||
template: 'index.html', | ||
inject: true | ||
}), | ||
new FriendlyErrorsPlugin() | ||
] | ||
}) |
Oops, something went wrong.