forked from qianyinghuanmie/vue2.0-demos
-
Notifications
You must be signed in to change notification settings - Fork 0
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
0 parents
commit dc7829f
Showing
34 changed files
with
981 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,14 @@ | ||
{ | ||
"presets": [ | ||
["env", { "modules": false }], | ||
"stage-2" | ||
], | ||
"plugins": ["transform-runtime"], | ||
"comments": false, | ||
"env": { | ||
"test": { | ||
"presets": ["env", "stage-2"], | ||
"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 = 2 | ||
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,2 @@ | ||
build/*.js | ||
config/*.js |
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,27 @@ | ||
// http://eslint.org/docs/user-guide/configuring | ||
|
||
module.exports = { | ||
root: true, | ||
parser: 'babel-eslint', | ||
parserOptions: { | ||
sourceType: 'module' | ||
}, | ||
env: { | ||
browser: true, | ||
}, | ||
// https://github.com/feross/standard/blob/master/RULES.md#javascript-standard-style | ||
extends: 'standard', | ||
// required to lint *.vue files | ||
plugins: [ | ||
'html' | ||
], | ||
// add your custom rules here | ||
'rules': { | ||
// allow paren-less arrow functions | ||
'arrow-parens': 0, | ||
// allow async-await | ||
'generator-star-spacing': 0, | ||
// allow debugger during development | ||
'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0 | ||
} | ||
} |
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,6 @@ | ||
.DS_Store | ||
node_modules/ | ||
dist/ | ||
npm-debug.log* | ||
yarn-debug.log* | ||
yarn-error.log* |
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,8 @@ | ||
// https://github.com/michael-ciniawsky/postcss-load-config | ||
|
||
module.exports = { | ||
"plugins": { | ||
// to edit target browsers: use "browserlist" field in package.json | ||
"autoprefixer": {} | ||
} | ||
} |
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,21 @@ | ||
# demo | ||
|
||
> 例子 | ||
## Build Setup | ||
|
||
``` bash | ||
# install dependencies | ||
npm install | ||
|
||
# serve with hot reload at localhost:8080 | ||
npm run dev | ||
|
||
# build for production with minification | ||
npm run build | ||
|
||
# build for production and view the bundle analyzer report | ||
npm run build --report | ||
``` | ||
|
||
For detailed explanation on how things work, checkout the [guide](http://vuejs-templates.github.io/webpack/) and [docs for vue-loader](http://vuejs.github.io/vue-loader). |
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 @@ | ||
require('./check-versions')() | ||
|
||
process.env.NODE_ENV = 'production' | ||
|
||
var ora = require('ora') | ||
var rm = require('rimraf') | ||
var path = require('path') | ||
var chalk = require('chalk') | ||
var webpack = require('webpack') | ||
var config = require('../config') | ||
var webpackConfig = require('./webpack.prod.conf') | ||
|
||
var spinner = ora('building for production...') | ||
spinner.start() | ||
|
||
rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => { | ||
if (err) throw err | ||
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,48 @@ | ||
var chalk = require('chalk') | ||
var semver = require('semver') | ||
var packageConfig = require('../package.json') | ||
var shell = require('shelljs') | ||
function exec (cmd) { | ||
return require('child_process').execSync(cmd).toString().trim() | ||
} | ||
|
||
var versionRequirements = [ | ||
{ | ||
name: 'node', | ||
currentVersion: semver.clean(process.version), | ||
versionRequirement: packageConfig.engines.node | ||
}, | ||
] | ||
|
||
if (shell.which('npm')) { | ||
versionRequirements.push({ | ||
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,89 @@ | ||
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 | ||
|
||
var _resolve | ||
var readyPromise = new Promise(resolve => { | ||
_resolve = resolve | ||
}) | ||
|
||
console.log('> Starting dev server...') | ||
devMiddleware.waitUntilValid(() => { | ||
console.log('> Listening at ' + uri + '\n') | ||
// when env is testing, don't need open it | ||
if (autoOpenBrowser && process.env.NODE_ENV !== 'testing') { | ||
opn(uri) | ||
} | ||
_resolve() | ||
}) | ||
|
||
var server = app.listen(port) | ||
|
||
module.exports = { | ||
ready: readyPromise, | ||
close: () => { | ||
server.close() | ||
} | ||
} |
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,98 @@ | ||
var path = require('path') | ||
var config = require('../config') | ||
var ExtractTextPlugin = require('extract-text-webpack-plugin') | ||
var glob = require('glob'); | ||
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 || {} | ||
|
||
var cssLoader = { | ||
loader: 'css-loader', | ||
options: { | ||
minimize: process.env.NODE_ENV === 'production', | ||
sourceMap: options.sourceMap | ||
} | ||
} | ||
|
||
// generate loader string to be used with extract text plugin | ||
function generateLoaders (loader, loaderOptions) { | ||
var loaders = [cssLoader] | ||
if (loader) { | ||
loaders.push({ | ||
loader: loader + '-loader', | ||
options: Object.assign({}, loaderOptions, { | ||
sourceMap: options.sourceMap | ||
}) | ||
}) | ||
} | ||
|
||
// Extract CSS when that option is specified | ||
// (which is the case during production build) | ||
if (options.extract) { | ||
return ExtractTextPlugin.extract({ | ||
use: loaders, | ||
fallback: 'vue-style-loader' | ||
}) | ||
} else { | ||
return ['vue-style-loader'].concat(loaders) | ||
} | ||
} | ||
|
||
// https://vue-loader.vuejs.org/en/configurations/extract-css.html | ||
return { | ||
css: generateLoaders(), | ||
postcss: generateLoaders(), | ||
less: generateLoaders('less'), | ||
sass: generateLoaders('sass', { indentedSyntax: true }), | ||
scss: generateLoaders('sass'), | ||
stylus: generateLoaders('stylus'), | ||
styl: generateLoaders('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 + '$'), | ||
use: loader | ||
}) | ||
} | ||
return output | ||
} | ||
/*用于多页面的模板*/ | ||
exports.getEntries = function (globPath) { | ||
var entries = {} | ||
/** | ||
* 读取src目录,并进行路径裁剪 | ||
*/ | ||
glob.sync(globPath).forEach(function (entry) { | ||
/** | ||
* path.basename 提取出用 ‘/' 隔开的path的最后一部分,除第一个参数外其余是需要过滤的字符串 | ||
* path.extname 获取文件后缀 | ||
*/ | ||
var basename = path.basename(entry, path.extname(entry), 'router.js') // 过滤router.js | ||
// ***************begin*************** | ||
// 当然, 你也可以加上模块名称, 即输出如下: { module/main: './src/module/index/index.js', module/test: './src/module/test/test.js' } | ||
// 最终编译输出的文件也在module目录下, 访问路径需要时 localhost:8080/module/index.html | ||
// slice 从已有的数组中返回选定的元素, -3 倒序选择,即选择最后三个 | ||
// var tmp = entry.split('/').splice(-3) | ||
// var pathname = tmp.splice(0, 1) + '/' + basename; // splice(0, 1)取tmp数组中第一个元素 | ||
// console.log(pathname) | ||
// entries[pathname] = entry | ||
// ***************end*************** | ||
entries[basename] = entry | ||
}); | ||
// console.log(entries); | ||
// 获取的主入口如下: { main: './src/module/index/index.js', test: './src/module/test/test.js' } | ||
return entries; | ||
} |
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,12 @@ | ||
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 | ||
}) | ||
} |
Oops, something went wrong.