mirror of
https://github.com/nuxt/nuxt.git
synced 2024-11-27 16:12:12 +00:00
Merge pull request #1782 from alexananiev/dev
Support for .coffee files for store, middlewares and pretty much anywhere
This commit is contained in:
commit
8182deddfa
13
examples/with-coffee/.editorconfig
Normal file
13
examples/with-coffee/.editorconfig
Normal file
@ -0,0 +1,13 @@
|
||||
# editorconfig.org
|
||||
root = true
|
||||
|
||||
[*]
|
||||
indent_size = 2
|
||||
indent_style = space
|
||||
end_of_line = lf
|
||||
charset = utf-8
|
||||
trim_trailing_whitespace = true
|
||||
insert_final_newline = true
|
||||
|
||||
[*.md]
|
||||
trim_trailing_whitespace = false
|
16
examples/with-coffee/.eslintrc.js
Normal file
16
examples/with-coffee/.eslintrc.js
Normal file
@ -0,0 +1,16 @@
|
||||
module.exports = {
|
||||
root: true,
|
||||
parser: 'babel-eslint',
|
||||
env: {
|
||||
browser: true,
|
||||
node: true
|
||||
},
|
||||
extends: 'standard',
|
||||
// required to lint *.vue files
|
||||
plugins: [
|
||||
'html'
|
||||
],
|
||||
// add your custom rules here
|
||||
rules: {},
|
||||
globals: {}
|
||||
}
|
11
examples/with-coffee/.gitignore
vendored
Normal file
11
examples/with-coffee/.gitignore
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
# dependencies
|
||||
node_modules
|
||||
|
||||
# logs
|
||||
npm-debug.log
|
||||
|
||||
# Nuxt build
|
||||
.nuxt
|
||||
|
||||
# Nuxt generate
|
||||
dist
|
22
examples/with-coffee/README.md
Normal file
22
examples/with-coffee/README.md
Normal file
@ -0,0 +1,22 @@
|
||||
# with-coffee
|
||||
|
||||
> Nuxt.js project
|
||||
|
||||
## Build Setup
|
||||
|
||||
``` bash
|
||||
# install dependencies
|
||||
$ npm install # Or yarn install
|
||||
|
||||
# serve with hot reload at localhost:3000
|
||||
$ npm run dev
|
||||
|
||||
# build for production and launch server
|
||||
$ npm run build
|
||||
$ npm start
|
||||
|
||||
# generate static project
|
||||
$ npm run generate
|
||||
```
|
||||
|
||||
For detailed explanation on how things work, checkout the [Nuxt.js docs](https://github.com/nuxt/nuxt.js).
|
8
examples/with-coffee/assets/README.md
Normal file
8
examples/with-coffee/assets/README.md
Normal file
@ -0,0 +1,8 @@
|
||||
# ASSETS
|
||||
|
||||
This directory contains your un-compiled assets such as LESS, SASS, or JavaScript.
|
||||
|
||||
More information about the usage of this directory in the documentation:
|
||||
https://nuxtjs.org/guide/assets#webpacked
|
||||
|
||||
**This directory is not required, you can delete it if you don't want to use it.**
|
79
examples/with-coffee/components/Logo.vue
Normal file
79
examples/with-coffee/components/Logo.vue
Normal file
@ -0,0 +1,79 @@
|
||||
<template>
|
||||
<div class="VueToNuxtLogo">
|
||||
<div class="Triangle Triangle--two"></div>
|
||||
<div class="Triangle Triangle--one"></div>
|
||||
<div class="Triangle Triangle--three"></div>
|
||||
<div class="Triangle Triangle--four"></div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style>
|
||||
.VueToNuxtLogo {
|
||||
display: inline-block;
|
||||
animation: turn 2s linear forwards 1s;
|
||||
transform: rotateX(180deg);
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
height: 180px;
|
||||
width: 245px;
|
||||
}
|
||||
|
||||
.Triangle {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 0;
|
||||
height: 0;
|
||||
}
|
||||
|
||||
.Triangle--one {
|
||||
border-left: 105px solid transparent;
|
||||
border-right: 105px solid transparent;
|
||||
border-bottom: 180px solid #41B883;
|
||||
}
|
||||
|
||||
.Triangle--two {
|
||||
top: 30px;
|
||||
left: 35px;
|
||||
animation: goright 0.5s linear forwards 3.5s;
|
||||
border-left: 87.5px solid transparent;
|
||||
border-right: 87.5px solid transparent;
|
||||
border-bottom: 150px solid #3B8070;
|
||||
}
|
||||
|
||||
.Triangle--three {
|
||||
top: 60px;
|
||||
left: 35px;
|
||||
animation: goright 0.5s linear forwards 3.5s;
|
||||
border-left: 70px solid transparent;
|
||||
border-right: 70px solid transparent;
|
||||
border-bottom: 120px solid #35495E;
|
||||
}
|
||||
|
||||
.Triangle--four {
|
||||
top: 120px;
|
||||
left: 70px;
|
||||
animation: godown 0.5s linear forwards 3s;
|
||||
border-left: 35px solid transparent;
|
||||
border-right: 35px solid transparent;
|
||||
border-bottom: 60px solid #fff;
|
||||
}
|
||||
|
||||
@keyframes turn {
|
||||
100% {
|
||||
transform: rotateX(0deg);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes godown {
|
||||
100% {
|
||||
top: 180px;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes goright {
|
||||
100% {
|
||||
left: 70px;
|
||||
}
|
||||
}
|
||||
</style>
|
6
examples/with-coffee/components/README.md
Normal file
6
examples/with-coffee/components/README.md
Normal file
@ -0,0 +1,6 @@
|
||||
# COMPONENTS
|
||||
|
||||
The components directory contains your Vue.js Components.
|
||||
Nuxt.js doesn't supercharge these components.
|
||||
|
||||
**This directory is not required, you can delete it if you don't want to use it.**
|
8
examples/with-coffee/layouts/README.md
Normal file
8
examples/with-coffee/layouts/README.md
Normal file
@ -0,0 +1,8 @@
|
||||
# LAYOUTS
|
||||
|
||||
This directory contains your Application Layouts.
|
||||
|
||||
More information about the usage of this directory in the documentation:
|
||||
https://nuxtjs.org/guide/views#layouts
|
||||
|
||||
**This directory is not required, you can delete it if you don't want to use it.**
|
52
examples/with-coffee/layouts/default.vue
Normal file
52
examples/with-coffee/layouts/default.vue
Normal file
@ -0,0 +1,52 @@
|
||||
<template>
|
||||
<div>
|
||||
<nuxt/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style>
|
||||
html {
|
||||
font-family: "Source Sans Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
|
||||
font-size: 16px;
|
||||
word-spacing: 1px;
|
||||
-ms-text-size-adjust: 100%;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
*, *:before, *:after {
|
||||
box-sizing: border-box;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.button--green {
|
||||
display: inline-block;
|
||||
border-radius: 4px;
|
||||
border: 1px solid #3b8070;
|
||||
color: #3b8070;
|
||||
text-decoration: none;
|
||||
padding: 10px 30px;
|
||||
}
|
||||
|
||||
.button--green:hover {
|
||||
color: #fff;
|
||||
background-color: #3b8070;
|
||||
}
|
||||
|
||||
.button--grey {
|
||||
display: inline-block;
|
||||
border-radius: 4px;
|
||||
border: 1px solid #35495e;
|
||||
color: #35495e;
|
||||
text-decoration: none;
|
||||
padding: 10px 30px;
|
||||
margin-left: 15px;
|
||||
}
|
||||
|
||||
.button--grey:hover {
|
||||
color: #fff;
|
||||
background-color: #35495e;
|
||||
}
|
||||
</style>
|
9
examples/with-coffee/middleware/README.md
Normal file
9
examples/with-coffee/middleware/README.md
Normal file
@ -0,0 +1,9 @@
|
||||
# MIDDLEWARE
|
||||
|
||||
This directory contains your Application Middleware.
|
||||
The middleware lets you define custom function to be ran before rendering a page or a group of pages (layouts).
|
||||
|
||||
More information about the usage of this directory in the documentation:
|
||||
https://nuxtjs.org/guide/routing#middleware
|
||||
|
||||
**This directory is not required, you can delete it if you don't want to use it.**
|
33
examples/with-coffee/nuxt.config.js
Normal file
33
examples/with-coffee/nuxt.config.js
Normal file
@ -0,0 +1,33 @@
|
||||
module.exports = {
|
||||
/*
|
||||
** Headers of the page
|
||||
*/
|
||||
head: {
|
||||
title: 'with-coffee',
|
||||
meta: [
|
||||
{ charset: 'utf-8' },
|
||||
{ name: 'viewport', content: 'width=device-width, initial-scale=1' },
|
||||
{ hid: 'description', name: 'description', content: 'Nuxt.js project' }
|
||||
],
|
||||
link: [
|
||||
{ rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }
|
||||
]
|
||||
},
|
||||
/*
|
||||
** Customize the progress bar color
|
||||
*/
|
||||
loading: { color: '#3B8070' },
|
||||
/*
|
||||
** Build configuration
|
||||
*/
|
||||
extensions: ['coffee'],
|
||||
build: {
|
||||
extend (config, ctx) {
|
||||
config.resolve.extensions.push('.ts')
|
||||
config.module.rules.push({
|
||||
test: /\.coffee$/,
|
||||
loader: 'coffee-loader'
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
31
examples/with-coffee/package.json
Normal file
31
examples/with-coffee/package.json
Normal file
@ -0,0 +1,31 @@
|
||||
{
|
||||
"name": "with-coffee",
|
||||
"version": "1.0.0",
|
||||
"description": "Nuxt.js with CoffeeScript",
|
||||
"author": "Alex Ananiev <alex.ananiev.r@gmail.com>",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "nuxt",
|
||||
"build": "nuxt build",
|
||||
"start": "nuxt start",
|
||||
"generate": "nuxt generate",
|
||||
"lint": "eslint --ext .js,.vue --ignore-path .gitignore .",
|
||||
"precommit": "npm run lint"
|
||||
},
|
||||
"dependencies": {
|
||||
"nuxt": "latest"
|
||||
},
|
||||
"devDependencies": {
|
||||
"babel-eslint": "^7.2.3",
|
||||
"coffee-loader": "^0.8.0",
|
||||
"coffeescript": "^2.0.1",
|
||||
"eslint": "^4.3.0",
|
||||
"eslint-config-standard": "^10.2.1",
|
||||
"eslint-loader": "^1.9.0",
|
||||
"eslint-plugin-html": "^3.1.1",
|
||||
"eslint-plugin-import": "^2.7.0",
|
||||
"eslint-plugin-node": "^5.1.1",
|
||||
"eslint-plugin-promise": "^3.5.0",
|
||||
"eslint-plugin-standard": "^3.0.1"
|
||||
}
|
||||
}
|
7
examples/with-coffee/pages/README.md
Normal file
7
examples/with-coffee/pages/README.md
Normal file
@ -0,0 +1,7 @@
|
||||
# PAGES
|
||||
|
||||
This directory contains your Application Views and Routes.
|
||||
The framework reads all the .vue files inside this directory and create the router of your application.
|
||||
|
||||
More information about the usage of this directory in the documentation:
|
||||
https://nuxtjs.org/guide/routing
|
58
examples/with-coffee/pages/index.vue
Normal file
58
examples/with-coffee/pages/index.vue
Normal file
@ -0,0 +1,58 @@
|
||||
<template>
|
||||
<section class="container">
|
||||
<div>
|
||||
<logo/>
|
||||
<h1 class="title">
|
||||
Nuxt.js with Coffee!
|
||||
</h1>
|
||||
<h2 class="subtitle">
|
||||
{{message}}
|
||||
</h2>
|
||||
<div class="links">
|
||||
<a href="https://nuxtjs.org/" target="_blank" class="button--green">Documentation</a>
|
||||
<a href="https://github.com/nuxt/nuxt.js" target="_blank" class="button--grey">GitHub</a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</template>
|
||||
|
||||
<script lang="coffee">
|
||||
import Logo from '~/components/Logo.vue'
|
||||
|
||||
export default {
|
||||
components: { Logo }
|
||||
computed:
|
||||
message: -> @$store.state.message
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.container {
|
||||
min-height: 100vh;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.title {
|
||||
font-family: "Quicksand", "Source Sans Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; /* 1 */
|
||||
display: block;
|
||||
font-weight: 300;
|
||||
font-size: 100px;
|
||||
color: #35495e;
|
||||
letter-spacing: 1px;
|
||||
}
|
||||
|
||||
.subtitle {
|
||||
font-weight: 300;
|
||||
font-size: 42px;
|
||||
color: #526488;
|
||||
word-spacing: 5px;
|
||||
padding-bottom: 15px;
|
||||
}
|
||||
|
||||
.links {
|
||||
padding-top: 15px;
|
||||
}
|
||||
</style>
|
8
examples/with-coffee/plugins/README.md
Normal file
8
examples/with-coffee/plugins/README.md
Normal file
@ -0,0 +1,8 @@
|
||||
# PLUGINS
|
||||
|
||||
This directory contains your Javascript plugins that you want to run before instantiating the root vue.js application.
|
||||
|
||||
More information about the usage of this directory in the documentation:
|
||||
https://nuxtjs.org/guide/plugins
|
||||
|
||||
**This directory is not required, you can delete it if you don't want to use it.**
|
11
examples/with-coffee/static/README.md
Normal file
11
examples/with-coffee/static/README.md
Normal file
@ -0,0 +1,11 @@
|
||||
# STATIC
|
||||
|
||||
This directory contains your static files.
|
||||
Each file inside this directory is mapped to /.
|
||||
|
||||
Example: /static/robots.txt is mapped as /robots.txt.
|
||||
|
||||
More information about the usage of this directory in the documentation:
|
||||
https://nuxtjs.org/guide/assets#static
|
||||
|
||||
**This directory is not required, you can delete it if you don't want to use it.**
|
BIN
examples/with-coffee/static/favicon.ico
Normal file
BIN
examples/with-coffee/static/favicon.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.1 KiB |
10
examples/with-coffee/store/README.md
Normal file
10
examples/with-coffee/store/README.md
Normal file
@ -0,0 +1,10 @@
|
||||
# STORE
|
||||
|
||||
This directory contains your Vuex Store files.
|
||||
Vuex Store option is implemented in the Nuxt.js framework.
|
||||
Creating a index.js file in this directory activate the option in the framework automatically.
|
||||
|
||||
More information about the usage of this directory in the documentation:
|
||||
https://nuxtjs.org/guide/vuex-store
|
||||
|
||||
**This directory is not required, you can delete it if you don't want to use it.**
|
2
examples/with-coffee/store/index.coffee
Normal file
2
examples/with-coffee/store/index.coffee
Normal file
@ -0,0 +1,2 @@
|
||||
export state = ->
|
||||
message: 'Hello CoffeeScript!'
|
@ -35,7 +35,7 @@ module.exports = function webpackBaseConfig({ name, isServer }) {
|
||||
hints: this.options.dev ? false : 'warning'
|
||||
},
|
||||
resolve: {
|
||||
extensions: ['.js', '.json', '.vue', '.ts'],
|
||||
extensions: ['.js', '.json', '.vue'],
|
||||
alias: {
|
||||
'~': join(this.options.srcDir),
|
||||
'~~': join(this.options.rootDir),
|
||||
|
Loading…
Reference in New Issue
Block a user