Permalink
Browse files

init

  • Loading branch information...
0 parents commit 315322a714a0328a5c98e04e015275c6ddb3c72c @lihongxun945 lihongxun945 committed Jun 22, 2016
Showing with 2,833 additions and 0 deletions.
  1. +5 −0 .babelrc
  2. +9 −0 .editorconfig
  3. +19 −0 .eslintrc.js
  4. +9 −0 .gitignore
  5. +27 −0 README.md
  6. +35 −0 build/build.js
  7. +9 −0 build/dev-client.js
  8. +65 −0 build/dev-server.js
  9. +56 −0 build/utils.js
  10. +85 −0 build/webpack.base.conf.js
  11. +34 −0 build/webpack.dev.conf.js
  12. +102 −0 build/webpack.prod.conf.js
  13. +6 −0 config/dev.env.js
  14. +24 −0 config/index.js
  15. +3 −0 config/prod.env.js
  16. +6 −0 config/test.env.js
  17. +13 −0 index.html
  18. +69 −0 package.json
  19. +114 −0 src/App.vue
  20. BIN src/assets/images/icon_nav_actionSheet.png
  21. BIN src/assets/images/icon_nav_article.png
  22. BIN src/assets/images/icon_nav_button.png
  23. BIN src/assets/images/icon_nav_calendar.png
  24. BIN src/assets/images/icon_nav_cell.png
  25. BIN src/assets/images/icon_nav_city.png
  26. BIN src/assets/images/icon_nav_datetime.png
  27. BIN src/assets/images/icon_nav_dialog.png
  28. BIN src/assets/images/icon_nav_icons.png
  29. BIN src/assets/images/icon_nav_msg.png
  30. BIN src/assets/images/icon_nav_noti.png
  31. BIN src/assets/images/icon_nav_panel.png
  32. BIN src/assets/images/icon_nav_photo.png
  33. BIN src/assets/images/icon_nav_picker.png
  34. BIN src/assets/images/icon_nav_progress.png
  35. BIN src/assets/images/icon_nav_ptr.png
  36. BIN src/assets/images/icon_nav_search_bar.png
  37. BIN src/assets/images/icon_nav_select.png
  38. BIN src/assets/images/icon_nav_swiper.png
  39. BIN src/assets/images/icon_nav_tab.png
  40. BIN src/assets/images/icon_nav_toast.png
  41. BIN src/assets/images/icon_nav_up.png
  42. BIN src/assets/images/pic_article.png
  43. BIN src/assets/images/present.png
  44. BIN src/assets/images/swiper-1.jpg
  45. BIN src/assets/images/swiper-2.jpg
  46. BIN src/assets/images/swiper-3.jpg
  47. BIN src/assets/images/swiper-4.jpg
  48. BIN src/assets/images/vcode.jpg
  49. BIN src/assets/logo.png
  50. +3 −0 src/components/WeUI.vue
  51. +2,023 −0 src/lib/weui.css
  52. +8 −0 src/main.js
  53. 0 static/.gitkeep
  54. +9 −0 test/unit/.eslintrc
  55. +13 −0 test/unit/index.js
  56. +75 −0 test/unit/karma.conf.js
  57. +12 −0 test/unit/specs/Hello.spec.js
@@ -0,0 +1,5 @@
+{
+ "presets": ["es2015", "stage-2"],
+ "plugins": ["transform-runtime"],
+ "comments": false
+}
@@ -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
@@ -0,0 +1,19 @@
+module.exports = {
+ root: true,
+ parserOptions: {
+ sourceType: 'module'
+ },
+ // 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 debugger during development
+ 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0
+ }
+}
@@ -0,0 +1,9 @@
+.DS_Store
+node_modules/
+dist/
+npm-debug.log
+selenium-debug.log
+test/unit/coverage
+test/e2e/reports
+
+*.swp
@@ -0,0 +1,27 @@
+# vui
+
+> A UI Framework build with Vue.js
+
+## 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
+
+# run unit tests
+npm run unit
+
+# run e2e tests
+npm run e2e
+
+# run all tests
+npm test
+```
+
+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).
@@ -0,0 +1,35 @@
+// https://github.com/shelljs/shelljs
+require('shelljs/global')
+env.NODE_ENV = 'production'
+
+var path = require('path')
+var config = require('../config')
+var ora = require('ora')
+var webpack = require('webpack')
+var webpackConfig = require('./webpack.prod.conf')
+
+console.log(
+ ' Tip:\n' +
+ ' Built files are meant to be served over an HTTP server.\n' +
+ ' Opening index.html over file:// won\'t work.\n'
+)
+
+var spinner = ora('building for production...')
+spinner.start()
+
+var assetsPath = path.join(config.build.assetsRoot, config.build.assetsSubDirectory)
+rm('-rf', assetsPath)
+mkdir('-p', assetsPath)
+cp('-R', 'static/', assetsPath)
+
+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')
+})
@@ -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()
+ }
+})
@@ -0,0 +1,65 @@
+var path = require('path')
+var express = require('express')
+var webpack = require('webpack')
+var config = require('../config')
+var proxyMiddleware = require('http-proxy-middleware')
+var webpackConfig = process.env.NODE_ENV === 'testing'
+ ? require('./webpack.prod.conf')
+ : require('./webpack.dev.conf')
+
+// default port where dev server listens for incoming traffic
+var port = process.env.PORT || config.dev.port
+// 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,
+ stats: {
+ colors: true,
+ chunks: false
+ }
+})
+
+var hotMiddleware = require('webpack-hot-middleware')(compiler)
+// 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(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.build.assetsPublicPath, config.build.assetsSubDirectory)
+app.use(staticPath, express.static('./static'))
+
+module.exports = app.listen(port, function (err) {
+ if (err) {
+ console.log(err)
+ return
+ }
+ console.log('Listening at http://localhost:' + port + '\n')
+})
@@ -0,0 +1,56 @@
+var path = require('path')
+var config = require('../config')
+var ExtractTextPlugin = require('extract-text-webpack-plugin')
+
+exports.assetsPath = function (_path) {
+ return path.posix.join(config.build.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('!')
+
+ if (options.extract) {
+ return ExtractTextPlugin.extract('vue-style-loader', sourceLoader)
+ } else {
+ return ['vue-style-loader', sourceLoader].join('!')
+ }
+ }
+
+ // http://vuejs.github.io/vue-loader/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
+}
@@ -0,0 +1,85 @@
+var path = require('path')
+var config = require('../config')
+var utils = require('./utils')
+var projectRoot = path.resolve(__dirname, '../')
+
+module.exports = {
+ entry: {
+ app: './src/main.js'
+ },
+ output: {
+ path: config.build.assetsRoot,
+ publicPath: config.build.assetsPublicPath,
+ filename: '[name].js'
+ },
+ resolve: {
+ extensions: ['', '.js', '.vue'],
+ fallback: [path.join(__dirname, '../node_modules')],
+ alias: {
+ 'src': path.resolve(__dirname, '../src'),
+ 'assets': path.resolve(__dirname, '../src/assets'),
+ 'components': path.resolve(__dirname, '../src/components')
+ }
+ },
+ resolveLoader: {
+ fallback: [path.join(__dirname, '../node_modules')]
+ },
+ module: {
+ preLoaders: [
+ {
+ test: /\.vue$/,
+ loader: 'eslint',
+ include: projectRoot,
+ exclude: /node_modules/
+ },
+ {
+ test: /\.js$/,
+ loader: 'eslint',
+ include: projectRoot,
+ exclude: /node_modules/
+ }
+ ],
+ loaders: [
+ {
+ test: /\.vue$/,
+ loader: 'vue'
+ },
+ {
+ test: /\.js$/,
+ loader: 'babel',
+ include: projectRoot,
+ exclude: /node_modules/
+ },
+ {
+ test: /\.json$/,
+ loader: 'json'
+ },
+ {
+ test: /\.html$/,
+ loader: 'vue-html'
+ },
+ {
+ test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
+ loader: 'url',
+ query: {
+ limit: 10000,
+ name: utils.assetsPath('img/[name].[hash:7].[ext]')
+ }
+ },
+ {
+ test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
+ loader: 'url',
+ query: {
+ limit: 10000,
+ name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
+ }
+ }
+ ]
+ },
+ eslint: {
+ formatter: require('eslint-friendly-formatter')
+ },
+ vue: {
+ loaders: utils.cssLoaders()
+ }
+}
@@ -0,0 +1,34 @@
+var config = require('../config')
+var webpack = require('webpack')
+var merge = require('webpack-merge')
+var utils = require('./utils')
+var baseWebpackConfig = require('./webpack.base.conf')
+var HtmlWebpackPlugin = require('html-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: {
+ loaders: utils.styleLoaders()
+ },
+ // eval-source-map is faster for development
+ devtool: '#eval-source-map',
+ plugins: [
+ new webpack.DefinePlugin({
+ 'process.env': config.dev.env
+ }),
+ // https://github.com/glenjamin/webpack-hot-middleware#installation--usage
+ new webpack.optimize.OccurenceOrderPlugin(),
+ new webpack.HotModuleReplacementPlugin(),
+ new webpack.NoErrorsPlugin(),
+ // https://github.com/ampedandwired/html-webpack-plugin
+ new HtmlWebpackPlugin({
+ filename: 'index.html',
+ template: 'index.html',
+ inject: true
+ })
+ ]
+})
Oops, something went wrong.

0 comments on commit 315322a

Please sign in to comment.