Skip to content

Commit

Permalink
init
Browse files Browse the repository at this point in the history
  • Loading branch information
airyland committed Feb 15, 2016
0 parents commit c40dd01
Show file tree
Hide file tree
Showing 27 changed files with 986 additions and 0 deletions.
5 changes: 5 additions & 0 deletions .babelrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"presets": ["es2015", "stage-2"],
"plugins": ["transform-runtime"],
"comments": false
}
185 changes: 185 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,185 @@
var production = process.env.NODE_ENV === 'test'

module.exports = {
'root': true,

'env': {
'browser': true,
'node': true
},

'ecmaFeatures': {
'arrowFunctions': true,
'destructuring': true,
'classes': true,
'defaultParams': true,
'blockBindings': true,
'modules': true,
'objectLiteralComputedProperties': true,
'objectLiteralShorthandMethods': true,
'objectLiteralShorthandProperties': true,
'restParams': true,
'spread': true,
'forOf': true,
'generators': true,
'templateStrings': true,
'superInFunctions': true,
'experimentalObjectRestSpread': true
},

'rules': {
'accessor-pairs': 2,
'array-bracket-spacing': 0,
'block-scoped-var': 0,
'brace-style': [2, '1tbs', { 'allowSingleLine': true }],
'camelcase': 0,
'comma-dangle': [2, 'never'],
'comma-spacing': [2, { 'before': false, 'after': true }],
'comma-style': [2, 'last'],
'complexity': 0,
'computed-property-spacing': 0,
'consistent-return': 0,
'consistent-this': 0,
'constructor-super': 2,
'curly': [2, 'multi-line'],
'default-case': 0,
'dot-location': [2, 'property'],
'dot-notation': 0,
'eol-last': 2,
'eqeqeq': [2, 'allow-null'],
'func-names': 0,
'func-style': 0,
'generator-star-spacing': [2, { 'before': true, 'after': true }],
'guard-for-in': 0,
'handle-callback-err': [2, '^(err|error)$' ],
'indent': [2, 2, { 'SwitchCase': 1 }],
'key-spacing': [2, { 'beforeColon': false, 'afterColon': true }],
'linebreak-style': 0,
'lines-around-comment': 0,
'max-nested-callbacks': 0,
'new-cap': [2, { 'newIsCap': true, 'capIsNew': false }],
'new-parens': 2,
'newline-after-var': 0,
'no-alert': 0,
'no-array-constructor': 2,
'no-caller': 2,
'no-catch-shadow': 0,
'no-cond-assign': 2,
'no-console': 0,
'no-constant-condition': 0,
'no-continue': 0,
'no-control-regex': 2,
'no-debugger': production ? 2 : 0,
'no-delete-var': 2,
'no-div-regex': 0,
'no-dupe-args': 2,
'no-dupe-keys': 2,
'no-duplicate-case': 2,
'no-else-return': 0,
'no-empty': 0,
'no-empty-character-class': 2,
'no-empty-label': 2,
'no-eq-null': 0,
'no-eval': 2,
'no-ex-assign': 2,
'no-extend-native': 2,
'no-extra-bind': 2,
'no-extra-boolean-cast': 2,
'no-extra-parens': 0,
'no-extra-semi': 0,
'no-fallthrough': 2,
'no-floating-decimal': 2,
'no-func-assign': 2,
'no-implied-eval': 2,
'no-inline-comments': 0,
'no-inner-declarations': [2, 'functions'],
'no-invalid-regexp': 2,
'no-irregular-whitespace': 2,
'no-iterator': 2,
'no-label-var': 2,
'no-labels': 2,
'no-lone-blocks': 2,
'no-lonely-if': 0,
'no-loop-func': 0,
'no-mixed-requires': 0,
'no-mixed-spaces-and-tabs': 2,
'no-multi-spaces': 2,
'no-multi-str': 2,
'no-multiple-empty-lines': [2, { 'max': 1 }],
'no-native-reassign': 2,
'no-negated-in-lhs': 2,
'no-nested-ternary': 0,
'no-new': 2,
'no-new-func': 0,
'no-new-object': 2,
'no-new-require': 2,
'no-new-wrappers': 2,
'no-obj-calls': 2,
'no-octal': 2,
'no-octal-escape': 2,
'no-param-reassign': 0,
'no-path-concat': 0,
'no-process-env': 0,
'no-process-exit': 0,
'no-proto': 0,
'no-redeclare': 2,
'no-regex-spaces': 2,
'no-restricted-modules': 0,
'no-return-assign': 2,
'no-script-url': 0,
'no-self-compare': 2,
'no-sequences': 2,
'no-shadow': 0,
'no-shadow-restricted-names': 2,
'no-spaced-func': 0,
'no-sparse-arrays': 2,
'no-sync': 0,
'no-ternary': 0,
'no-this-before-super': 2,
'no-throw-literal': 2,
'no-trailing-spaces': 2,
'no-undef': 2,
'no-undef-init': 2,
'no-undefined': 0,
'no-underscore-dangle': 0,
'no-unexpected-multiline': 2,
'no-unneeded-ternary': 2,
'no-unreachable': 2,
'no-unused-expressions': 0,
'no-unused-vars': [2, { 'vars': 'all', 'args': 'none' }],
'no-use-before-define': 0,
'no-var': 0,
'no-void': 0,
'no-warning-comments': 0,
'no-with': 2,
'object-curly-spacing': 0,
'object-shorthand': 0,
'one-var': [2, { 'initialized': 'never' }],
'operator-assignment': 0,
'operator-linebreak': [2, 'after', { 'overrides': { '?': 'before', ':': 'before' } }],
'padded-blocks': 0,
'prefer-const': 0,
'quote-props': 0,
'quotes': [2, 'single', 'avoid-escape'],
'radix': 2,
'semi': [2, 'never'],
'semi-spacing': 0,
'sort-vars': 0,
'space-after-keywords': [2, 'always'],
'space-before-blocks': [2, 'always'],
'space-before-function-paren': [2, 'always'],
'space-in-parens': [2, 'never'],
'space-infix-ops': 2,
'space-return-throw-case': 2,
'space-unary-ops': [2, { 'words': true, 'nonwords': false }],
'spaced-comment': [2, 'always', { 'markers': ['global', 'globals', 'eslint', 'eslint-disable', '*package', '!'] }],
'strict': 0,
'use-isnan': 2,
'valid-jsdoc': 0,
'valid-typeof': 2,
'vars-on-top': 0,
'wrap-iife': [2, 'any'],
'wrap-regex': 0,
'yoda': [2, 'never']
}
}
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
.DS_Store
node_modules/
dist/static/
npm-debug.log
21 changes: 21 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# vue

> momi
## 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 test
```

For detailed explanation on how things work, consult the [docs for vue-loader](http://vuejs.github.io/vue-loader).
30 changes: 30 additions & 0 deletions build/dev-server.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
var express = require('express')
var webpack = require('webpack')
var config = require('./webpack.dev.conf')

var app = express()
var compiler = webpack(config)

// handle fallback for HTML5 history API
app.use(require('connect-history-api-fallback')())

// serve webpack bundle output
app.use(require('webpack-dev-middleware')(compiler, {
publicPath: config.output.publicPath,
stats: {
colors: true,
chunks: false
}
}))

// enable hot-reload and state-preserving
// compilation error display
app.use(require('webpack-hot-middleware')(compiler))

app.listen(8080, 'localhost', function (err) {
if (err) {
console.log(err)
return
}
console.log('Listening at http://localhost:8080')
})
18 changes: 18 additions & 0 deletions build/karma.conf.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
var webpackConf = require('./webpack.base.conf')
delete webpackConf.entry

module.exports = function (config) {
config.set({
browsers: ['PhantomJS'],
frameworks: ['jasmine'],
reporters: ['spec'],
files: ['../test/unit/index.js'],
preprocessors: {
'../test/unit/index.js': ['webpack']
},
webpack: webpackConf,
webpackMiddleware: {
noInfo: true
}
})
}
54 changes: 54 additions & 0 deletions build/webpack.base.conf.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
var path = require('path')

module.exports = {
entry: {
app: './src/main.js'
},
output: {
path: path.resolve(__dirname, '../dist/static'),
publicPath: '/static/',
filename: '[name].js'
},
resolve: {
extensions: ['', '.js', '.vue'],
alias: {
'src': path.resolve(__dirname, '../src')
}
},
resolveLoader: {
root: path.join(__dirname, 'node_modules')
},
module: {
loaders: [
{
test: /\.vue$/,
loader: 'vue'
},
{
test: /\.js$/,
loader: 'babel!eslint',
exclude: /node_modules/
},
{
test: /\.json$/,
loader: 'json'
},
{
test: /\.(png|jpg|gif|svg)$/,
loader: 'url',
query: {
limit: 10000,
name: '[name].[ext]?[hash:7]'
}
}
]
},
vue: {
loaders: {
//js: 'babel!eslint'
}
},
eslint: {
formatter: require('eslint-friendly-formatter')
}
}
32 changes: 32 additions & 0 deletions build/webpack.dev.conf.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
var webpack = require('webpack')
var config = require('./webpack.base.conf')
var HtmlWebpackPlugin = require('html-webpack-plugin')

// eval-source-map is faster for development
config.devtool = 'eval-source-map'

// add hot-reload related code to entry chunks
var polyfill = 'eventsource-polyfill'
var hotClient = 'webpack-hot-middleware/client?noInfo=true&reload=true'
Object.keys(config.entry).forEach(function (name, i) {
var extras = i === 0 ? [polyfill, hotClient] : [hotClient]
config.entry[name] = extras.concat(config.entry[name])
})

// necessary for the html plugin to work properly
// when serving the html from in-memory
config.output.publicPath = '/'

config.plugins = (config.plugins || []).concat([
// 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: 'src/index.html'
})
])

module.exports = config
Loading

0 comments on commit c40dd01

Please sign in to comment.