123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276 |
- module.exports = function(grunt) {
- 'use strict';
- grunt.initConfig({
- pkg: grunt.file.readJSON('package.json'),
- build: {
- options: {
- banner: '/*! WebUploader <%= pkg.version %> */\n'
- },
- all: {
- name: 'webuploader',
- dest: "dist/webuploader.js",
- // 在没有jquery类似的库的前提下可以设置builtin,去除强行依赖。
- builtin: {
- dollar: false,
- promise: false
- }
- },
- nolog: {
- preset: 'all',
- dest: "dist/webuploader.nolog.js",
- // 在没有jquery类似的库的前提下可以设置builtin,去除强行依赖。
- builtin: {
- dollar: false,
- promise: false
- }
- },
- flashonly: {
- preset: 'flashonly',
- dest: "dist/webuploader.flashonly.js",
- },
- html5only: {
- preset: 'html5only',
- dest: "dist/webuploader.html5only.js",
- },
- withoutimage: {
- preset: 'withoutimage',
- dest: "dist/webuploader.noimage.js",
- },
- // 自己配置的实例
- // glob语法。
- // 移动端方案,请搭配 zepto 使用。
- custom: {
- preset: "custom",
- cwd: "src",
- builtin: {
- promise: true
- },
- src: [
- 'widgets/filepicker.js',
- 'widgets/image.js',
- 'widgets/queue.js',
- 'widgets/runtime.js',
- 'widgets/upload.js',
- 'widgets/log.js',
- 'runtime/html5/blob.js',
- 'runtime/html5/filepicker.js',
- 'runtime/html5/imagemeta/exif.js',
- 'runtime/html5/image.js',
- 'runtime/html5/androidpatch.js',
- 'runtime/html5/transport.js'
- ],
- dest: "dist/webuploader.custom.js"
- },
- fis: {
- name: 'webuploader',
- dest: "dist/webuploader.fis.js",
- fis: true,
- // 在没有jquery类似的库的前提下可以设置builtin,去除强行依赖。
- builtin: {
- dollar: false,
- promise: false
- }
- }
- },
- uglify: {
- options: {
- mangle: true,
- banner: '/* WebUploader <%= pkg.version %> */'
- },
- static_mapping: {
- files: [
- {
- src: 'dist/webuploader.js',
- dest: 'dist/webuploader.min.js'
- },
- {
- src: 'dist/webuploader.nolog.js',
- dest: 'dist/webuploader.nolog.min.js'
- },
- {
- src: 'dist/webuploader.flashonly.js',
- dest: 'dist/webuploader.flashonly.min.js'
- },
- {
- src: 'dist/webuploader.html5only.js',
- dest: 'dist/webuploader.html5only.min.js'
- },
- {
- src: 'dist/webuploader.noimage.js',
- dest: 'dist/webuploader.noimage.min.js'
- },
- {
- src: 'dist/webuploader.custom.js',
- dest: 'dist/webuploader.custom.min.js'
- }
- ]
- }
- },
- copy: {
- jekyll: {
- src: 'dist/webuploader.js',
- dest: 'jekyll/js/webuploader.js',
- },
- css: {
- src: 'css/webuploader.css',
- dest: 'dist/webuploader.css'
- },
- css2: {
- src: 'css/webuploader.css',
- dest: 'jekyll/css/webuploader.css'
- }
- },
- watch: {
- options: {
- debounceDelay: 250
- },
- all: {
- files: ['src/**/*.js', 'Gruntfile.js'],
- tasks: ['default'],
- },
- dist: {
- files: ['src/**/*.js', 'Gruntfile.js'],
- tasks: ['dist'],
- },
- doc: {
- files: ['src/**/*.js', 'Gruntfile.js', 'build/docTpl/**/*'],
- tasks: ['doc'],
- },
- dev: {
- files: 'src/**/*.js',
- tasks: 'build:all'
- },
- flashonly: {
- files: 'src/**/*.js',
- tasks: 'build:flashonly'
- }
- },
- jsbint: {
- options: {
- jshintrc: '.jshintrc'
- },
- all: [
- 'src/**/*.js',
- '!src/runtime/html5/jpegencoder.js'
- ]
- },
- size: {
- dist: {
- cwd: 'dist/',
- src: '*.js'
- },
- src: {
- src: 'src/**/*.js'
- }
- },
- doc: {
- options: {
- cwd: './src/',
- files: [
- 'uploader.js',
- 'base.js',
- 'mediator.js',
- '**/*.js'
- ],
- tplDir: './build/docTpl',
- theme: 'gmu',
- outputDir: './jekyll/doc',
- title: 'WebUploader API文档'
- }
- },
- jekyll: {
- options: { // Universal options
- src: 'jekyll'
- },
- dist: { // Target
- options: { // Target options
- dest: 'pages',
- config: 'jekyll/_config.yml'
- }
- }
- },
- 'gh-pages': {
- options: {
- message: '程序自动提交,源码请查看tree/master/jekyll目录',
- base: 'pages',
- repo: 'https://github.com/fex-team/webuploader.git'
- },
- src: ['**/*']
- },
- qunit: {
- all: {
- options: {
- urls: [
- 'http://0.0.0.0:8000/test/index.html'
- ]
- }
- }
- },
- connect: {
- server: {
- options: {
- port: 8000,
- base: '.'
- }
- }
- /*,
- keepalive: {
- options: {
- port: 8000,
- base: '.',
- keepalive: true
- }
- }*/
- },
- });
- require('load-grunt-tasks')(grunt);
- grunt.loadTasks('build/tasks'); // 加载build目录下的所有task
- // Default task(s).
- grunt.registerTask('default', ['jsbint:all', 'dist']);
- grunt.registerTask('dist', ['build', 'uglify', 'copy']);
- grunt.registerTask('deploy', ['doc', 'jekyll', 'gh-pages']);
- grunt.registerTask('test', ['connect', 'qunit']);
- };
|