前端代码
This commit is contained in:
62
node_modules/bs-recipes/recipes/grunt.sass.autoprefixer/Gruntfile.js
generated
vendored
Normal file
62
node_modules/bs-recipes/recipes/grunt.sass.autoprefixer/Gruntfile.js
generated
vendored
Normal file
@ -0,0 +1,62 @@
|
||||
module.exports = function (grunt) {
|
||||
grunt.initConfig({
|
||||
dirs: {
|
||||
css: "app/css",
|
||||
scss: "app/scss"
|
||||
},
|
||||
watch: {
|
||||
options: {
|
||||
spawn: false
|
||||
},
|
||||
sass: {
|
||||
files: '<%= dirs.scss %>/**/*.scss',
|
||||
tasks: ['sass', 'autoprefixer', 'bsReload:css']
|
||||
},
|
||||
html: {
|
||||
files: 'app/*.html',
|
||||
tasks: ['bsReload:all']
|
||||
}
|
||||
},
|
||||
sass: {
|
||||
dev: {
|
||||
files: {
|
||||
'<%= dirs.css %>/main.css': '<%= dirs.scss %>/main.scss'
|
||||
}
|
||||
}
|
||||
},
|
||||
autoprefixer: {
|
||||
options: {
|
||||
browsers: ['last 5 versions', 'ie 8']
|
||||
},
|
||||
css: {
|
||||
src: '<%= dirs.css %>/main.css',
|
||||
dest: '<%= dirs.css %>/main.css'
|
||||
}
|
||||
},
|
||||
browserSync: {
|
||||
dev: {
|
||||
options: {
|
||||
server: "./app",
|
||||
background: true
|
||||
}
|
||||
}
|
||||
},
|
||||
bsReload: {
|
||||
css: {
|
||||
reload: "main.css"
|
||||
},
|
||||
all: {
|
||||
reload: true
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// load npm tasks
|
||||
grunt.loadNpmTasks('grunt-contrib-sass');
|
||||
grunt.loadNpmTasks('grunt-autoprefixer');
|
||||
grunt.loadNpmTasks('grunt-browser-sync');
|
||||
grunt.loadNpmTasks('grunt-contrib-watch');
|
||||
|
||||
// define default task
|
||||
grunt.registerTask('default', ['browserSync', 'watch']);
|
||||
};
|
44
node_modules/bs-recipes/recipes/grunt.sass.autoprefixer/app/css/main.css
generated
vendored
Normal file
44
node_modules/bs-recipes/recipes/grunt.sass.autoprefixer/app/css/main.css
generated
vendored
Normal file
@ -0,0 +1,44 @@
|
||||
@-webkit-keyframes bounce {
|
||||
0%, 20%, 53%, 80%, 100% {
|
||||
-webkit-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
|
||||
transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
|
||||
-webkit-transform: translate3d(0, 0, 0);
|
||||
transform: translate3d(0, 0, 0); }
|
||||
40%, 43% {
|
||||
-webkit-transition-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
|
||||
transition-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
|
||||
-webkit-transform: translate3d(0, -30px, 0);
|
||||
transform: translate3d(0, -30px, 0); }
|
||||
70% {
|
||||
-webkit-transition-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
|
||||
transition-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
|
||||
-webkit-transform: translate3d(0, -15px, 0);
|
||||
transform: translate3d(0, -15px, 0); }
|
||||
90% {
|
||||
-webkit-transform: translate3d(0, -4px, 0);
|
||||
transform: translate3d(0, -4px, 0); } }
|
||||
@keyframes bounce {
|
||||
0%, 20%, 53%, 80%, 100% {
|
||||
-webkit-transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
|
||||
transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
|
||||
-webkit-transform: translate3d(0, 0, 0);
|
||||
transform: translate3d(0, 0, 0); }
|
||||
40%, 43% {
|
||||
-webkit-transition-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
|
||||
transition-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
|
||||
-webkit-transform: translate3d(0, -30px, 0);
|
||||
transform: translate3d(0, -30px, 0); }
|
||||
70% {
|
||||
-webkit-transition-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
|
||||
transition-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
|
||||
-webkit-transform: translate3d(0, -15px, 0);
|
||||
transform: translate3d(0, -15px, 0); }
|
||||
90% {
|
||||
-webkit-transform: translate3d(0, -4px, 0);
|
||||
transform: translate3d(0, -4px, 0); } }
|
||||
.bounce {
|
||||
-webkit-animation-name: bounce;
|
||||
animation-name: bounce;
|
||||
-webkit-transform-origin: center bottom;
|
||||
-ms-transform-origin: center bottom;
|
||||
transform-origin: center bottom; }
|
11
node_modules/bs-recipes/recipes/grunt.sass.autoprefixer/app/index.html
generated
vendored
Normal file
11
node_modules/bs-recipes/recipes/grunt.sass.autoprefixer/app/index.html
generated
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
<!doctype html>
|
||||
<html lang="en-US">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Browsersync, Grunt + SASS Example</title>
|
||||
<link rel='stylesheet' href='css/main.css'>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Browsersync, Grunt + SASS Example</h1>
|
||||
</body>
|
||||
</html>
|
25
node_modules/bs-recipes/recipes/grunt.sass.autoprefixer/app/scss/main.scss
generated
vendored
Normal file
25
node_modules/bs-recipes/recipes/grunt.sass.autoprefixer/app/scss/main.scss
generated
vendored
Normal file
@ -0,0 +1,25 @@
|
||||
@keyframes bounce {
|
||||
0%, 20%, 53%, 80%, 100% {
|
||||
transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
|
||||
transform: translate3d(0,0,0);
|
||||
}
|
||||
|
||||
40%, 43% {
|
||||
transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
|
||||
transform: translate3d(0, -30px, 0);
|
||||
}
|
||||
|
||||
70% {
|
||||
transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
|
||||
transform: translate3d(0, -15px, 0);
|
||||
}
|
||||
|
||||
90% {
|
||||
transform: translate3d(0,-4px,0);
|
||||
}
|
||||
}
|
||||
|
||||
.bounce {
|
||||
animation-name: bounce;
|
||||
transform-origin: center bottom;
|
||||
}
|
17
node_modules/bs-recipes/recipes/grunt.sass.autoprefixer/desc.md
generated
vendored
Normal file
17
node_modules/bs-recipes/recipes/grunt.sass.autoprefixer/desc.md
generated
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
|
||||
This example shows how you can chain potentially slow-running tasks, but still achieve CSS
|
||||
Injection. The trick, as seen below, is to use the `bsReload` task that now comes
|
||||
bundled with `grunt-browser-sync` since `2.1.0`
|
||||
|
||||
Don't forget the `spawn: false` option for the watch task - it's a requirement
|
||||
that allows Browsersync to work correctly
|
||||
|
||||
```js
|
||||
watch: {
|
||||
options: {
|
||||
spawn: false // Important, don't remove this!
|
||||
},
|
||||
files: 'app/**/*.scss',
|
||||
tasks: ['sass', 'autoprefixer', 'bsReload:css']
|
||||
},
|
||||
```
|
18
node_modules/bs-recipes/recipes/grunt.sass.autoprefixer/package.json
generated
vendored
Normal file
18
node_modules/bs-recipes/recipes/grunt.sass.autoprefixer/package.json
generated
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
{
|
||||
"name": "grunt.sass.autoprefixer",
|
||||
"version": "1.0.0",
|
||||
"description": "Grunt, SASS & Autoprefixer",
|
||||
"main": "Gruntfile.js",
|
||||
"scripts": {
|
||||
"start": "grunt"
|
||||
},
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"devDependencies": {
|
||||
"grunt": "^0.4.5",
|
||||
"grunt-autoprefixer": "^2.2.0",
|
||||
"grunt-browser-sync": "^2.1.1",
|
||||
"grunt-contrib-sass": "^0.9.2",
|
||||
"grunt-contrib-watch": "^0.6.1"
|
||||
}
|
||||
}
|
114
node_modules/bs-recipes/recipes/grunt.sass.autoprefixer/readme.md
generated
vendored
Normal file
114
node_modules/bs-recipes/recipes/grunt.sass.autoprefixer/readme.md
generated
vendored
Normal file
@ -0,0 +1,114 @@
|
||||
#Browsersync - Grunt, SASS & Autoprefixer
|
||||
|
||||
## Installation/Usage:
|
||||
|
||||
To try this example, follow these 4 simple steps.
|
||||
|
||||
**Step 1**: Clone this entire repo
|
||||
```bash
|
||||
$ git clone https://github.com/Browsersync/recipes.git bs-recipes
|
||||
```
|
||||
|
||||
**Step 2**: Move into the directory containing this example
|
||||
```bash
|
||||
$ cd bs-recipes/recipes/grunt.sass.autoprefixer
|
||||
```
|
||||
|
||||
**Step 3**: Install dependencies
|
||||
```bash
|
||||
$ npm install
|
||||
```
|
||||
|
||||
**Step 4**: Run the example
|
||||
```bash
|
||||
$ npm start
|
||||
```
|
||||
|
||||
### Additional Info:
|
||||
|
||||
|
||||
|
||||
This example shows how you can chain potentially slow-running tasks, but still achieve CSS
|
||||
Injection. The trick, as seen below, is to use the `bsReload` task that now comes
|
||||
bundled with `grunt-browser-sync` since `2.1.0`
|
||||
|
||||
Don't forget the `spawn: false` option for the watch task - it's a requirement
|
||||
that allows Browsersync to work correctly
|
||||
|
||||
```js
|
||||
watch: {
|
||||
options: {
|
||||
spawn: false // Important, don't remove this!
|
||||
},
|
||||
files: 'app/**/*.scss',
|
||||
tasks: ['sass', 'autoprefixer', 'bsReload:css']
|
||||
},
|
||||
```
|
||||
|
||||
|
||||
### Preview of `Gruntfile.js`:
|
||||
```js
|
||||
module.exports = function (grunt) {
|
||||
grunt.initConfig({
|
||||
dirs: {
|
||||
css: "app/css",
|
||||
scss: "app/scss"
|
||||
},
|
||||
watch: {
|
||||
options: {
|
||||
spawn: false
|
||||
},
|
||||
sass: {
|
||||
files: '<%= dirs.scss %>/**/*.scss',
|
||||
tasks: ['sass', 'autoprefixer', 'bsReload:css']
|
||||
},
|
||||
html: {
|
||||
files: 'app/*.html',
|
||||
tasks: ['bsReload:all']
|
||||
}
|
||||
},
|
||||
sass: {
|
||||
dev: {
|
||||
files: {
|
||||
'<%= dirs.css %>/main.css': '<%= dirs.scss %>/main.scss'
|
||||
}
|
||||
}
|
||||
},
|
||||
autoprefixer: {
|
||||
options: {
|
||||
browsers: ['last 5 versions', 'ie 8']
|
||||
},
|
||||
css: {
|
||||
src: '<%= dirs.css %>/main.css',
|
||||
dest: '<%= dirs.css %>/main.css'
|
||||
}
|
||||
},
|
||||
browserSync: {
|
||||
dev: {
|
||||
options: {
|
||||
server: "./app",
|
||||
background: true
|
||||
}
|
||||
}
|
||||
},
|
||||
bsReload: {
|
||||
css: {
|
||||
reload: "main.css"
|
||||
},
|
||||
all: {
|
||||
reload: true
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// load npm tasks
|
||||
grunt.loadNpmTasks('grunt-contrib-sass');
|
||||
grunt.loadNpmTasks('grunt-autoprefixer');
|
||||
grunt.loadNpmTasks('grunt-browser-sync');
|
||||
grunt.loadNpmTasks('grunt-contrib-watch');
|
||||
|
||||
// define default task
|
||||
grunt.registerTask('default', ['browserSync', 'watch']);
|
||||
};
|
||||
```
|
||||
|
Reference in New Issue
Block a user