define(function(){ var PI = 3.14; function multiple(num1,num2){//定義一個乘法, return num1 * num2; } function square(n){//定義平方 return Math.pow(n,2); } return {//將數據導出 PI : PI, multiple : multiple, square : square } })
define(['./math'],function(m1){//用中括號定義依賴模塊的名字,而且要傳入一個參數m1表明這個math模塊,若是引用了多個模塊,要按照順序寫入對應的參數, function circle(r){//定義一個圓的面積,r表明半徑 return m1.multiple(m1.PI,m1.square(r)); } return{ s_circle : circle;//返回這個方法 } })
(function(){//當即執行函數 require(['./s],function(s1){//定義依賴s.js的模塊,經過參數s1傳遞 console.log(s1.s_circle(10)); }) })()
var s = require('./s'); console.log(s.s_circle(10)); math.js的定義的方式 var PI = 3.14; function multiple(num1,num2){ return num1 * num2 ; } function square(n){ return Math.pow(n,2); } module.exports = { PI : PI, multiple : multiple, square : square }
var m = require('./math'); function circle(r){ return m.multiple(m.PI,m.square(r)); } module.exports = { s_circle : circle }
var gulp = require('gulp'); gulp.task('default',function(){ //place default code })
var gulp = require('gulp');//請求這個模塊 gulp.task('copy-index',function(){//第一個參數copy-index,這裏由於是一個獨立的任務,沒有其餘依賴任務,因此是獨立的,不須要第二個參數 gulp.src('./src/index.html')//取到指定的文件。 .pipe(gulp.dest('./dist'))//pipe是管道的意思,做用是取得pipe以前的文件流做爲pipe的參數內函數執行的輸入,gulp.dest的做用是將輸入的文件流寫入到指定的路徑下,如今輸入的文件流就是src取到的文件流, }); gulp.task('copy-html',function(){ gulp.src('./src/html/*.html')//*表明html文件下的全部文件 .pipe(gulp.dest('./dist/html')) }); gulp.task('copy-vendor',function(){ gulp.src('./src/vendor/**/*.*')//**表明我要遞歸的選到全部的文件,*.*表明不論是什麼文件 .pipe(gulp.dest('./dist/vendor')) }); gulp.task('copy-assets',function(){ gulp.src('./assets/**/*.*') .pipe(gulp.dest('./dist/assets')) }); //一個命令一個命令是很是繁瑣的,能夠將這四個命令進行合成,cmd中的相應路徑中輸入gulp copy就能夠了 gulp('copy',['copy-index','copy-html','copy-vendor','copy-assets']);
var uglify = require('gulp-uglify');//請求這個模塊 gulp.task('concat',function(){ gulp.src('./src/script/**/*.js') .pipe(concat('output.js'))//連接js,而後設置文件名 .pipe(uglify())//將鏈接以後的文件進行壓縮 .pipe(gulp.dest('./dist/js')); })
gulp.task('sass',function(){ gulp.src('./src/style/*.scss') .pipe(sass()) .pipe(gulp.dest('./dist/style'))//編譯後的文件保存 .pipe(minify())//壓縮 .pipe(rename(function(filename){//由於源文件有多個,因此須要一個函數去重命名 filename.basename += '.min';//basename是表示源文件的名字 })) .pipe(gulp.dest('./dist/style')); })
gulp.task('watch',function(){ gulp.watch('./src/index.html',['copy-index']);//監聽src下的index.html有任何的變化,執行copy-index任務 gulp.watch('./src/script/**/*.js',['concat']); gulp.watch('./src/vendor/**/*.*',['copy-vendor']); gulp.watch('./src/html/**/*.html',['copy-vendor']); gulp.watch('./assets/**/*.*',['copy-assets']); gulp.watch('./src/style/**/*.scss',['sass']); })
var connect = require('gulp-connect'); gulp.task('server',function(){ connect.server({//創建一個服務器 root:'./dist',//創建兩個參數,服務器的源地址 livereload:true//這個服務器自動刷新true }) }) gulp.watch('./dist/**/*.*',['reload']);//這是gulp.task下的一個方法,監聽dist下的全部文件,執行reload任務 gulp.task('reload',function(){//若是文件有了任何改變,用watch來調用來進行自動的刷新 gulp.src('./dist/*.html') .pipe(connect.reload());//調用方法, }) gulp.task('default',['server','watch'],function(){//能夠在cmd中直接輸入gulp,這是默認的任務,回調兩個任務,而不須要一個一個進行任務的運行 })
var plumber = require('gulp-plumber');//調用gulp-plumber //好比在sass任務中加入錯誤處理 gulp.task('sass',function(){ gulp.src('./src/style/*.scss') .pipe(plumber())//加入錯誤處理,這樣後臺出錯的時候,也不會致使監聽服務中斷 .pipe(sass())//編譯scss .pipe(gulp.dest('./dist/style')) .pipe(minify()) .pipe(rename(function(filename){ filename.basename += '.min';//basename是表示源文件的名字 })) .pipe(gulp.dest('./dist/style')); })