module.exports = function (hoo, relative) {
  //以下是所有公共配置
  // 配置按需编译：设置编译范围为 html 文件，不过 html 文件中使用到的资源也会参与编译。
  hoo.set('project.files', ['./*.html', '/entry/images/extras/**', '/extras/**', '/manifest.json', '/mock/**']);
  hoo.set('project.ignore', ['/.hoo_cache/**', '/.idea/**','/dist/**']);

  //发布部署不适用缓存
  hoo.match('**', {
    useCache: false
  });

  //hoo-hook-amd
  hoo.hook('amd', {
    baseUrl: '/',
    paths: {
      "sq.core": "http://ptres.37.com/js/sq/lib/sq.core.js"
    },
    shim: {
      "sq.core": {
        exports: ['SQ', 'jquery']
      }
    },
    packages: []
  });

  if (relative) {
    /*//使用相对路径
    hoo.hook('relative');
    hoo.match('**', {relative: true});*/
  }

  hoo.match('**.js', {
    preprocessor: hoo.plugin('define', {
      // 常量替换
      defines: {
        'process.env.NODE_ENV': process.env.NODE_ENV
      },
      // 正则替换
      /*replacers: [
       {
       pattern: 'hello world !',
       replacer: 'HELLO WORLD !'
       },
       {
       pattern: /hello ([ABCD]) ([ABCD]) ([ABCD]) ([ABCD]) !/ig,
       replacer: function ($0, $1, $2, $3, $4) {
       return 'hello ' + $1 + ' `I AM B` ' + $3 + ' ' + $4 + ' !';
       }
       }
       ]*/
    })
  });

  hoo.match('/*.html', {
    release: '$0'
  });

  hoo.match('/extras/**', {
    release: '$0',
    useHash:false
  });

  hoo.match('/extras/**.html', {
    isHtmlLike: false
  });

  //npm install -g hoo-parser-node-sass
  hoo.match('**.scss', {
    rExt: '.css', // from .scss to .css
    parser: require('@fsteam/fis3-parser-node-sass')
  });

  hoo.match('**.{css,scss}', {
    preprocessor: fis.plugin('autoprefixer', {
      "browsers": ["Android >= 2.1", "iOS >= 4", "ie >= 8", "firefox >= 15"],
      "cascade": true
    })
  });

  // 设置组件库里面的 js 都是模块化 js.
  hoo.match('/components/**.js', {
    isMod: true
  });

  hoo.match('/containers/**.js', {
    isMod: true
  });

// 因为是纯前端项目，依赖不能自动被加载进来，所以这里需要借助一个 loader 来完成，
// 注意：与后端结合的项目不需要此插件!!!
  hoo.match('::package', {
    // npm install [-g] hoo3-postpackager-loader
    // 分析 __RESOURCE_MAP__ 结构，来解决资源加载问题
    postpackager: [hoo.plugin('loader', {
      resourceType: 'amd',
      useInlineMap: true// 资源映射表内嵌
    }, 'prepend'), function (ret, b, c, d) {
      // console.log("postpackager自定义处理");
    }],
    // 启用 hoo-spriter-csssprites 插件
    spriter: hoo.plugin('csssprites', {
      //图之间的边距
      margin: 10,
      //使用矩阵排列方式，默认为线性`linear`
      layout: 'matrix'
    })
  });

  hoo.match('/manifest.json', {
    release: "manifest.json"
  });

  hoo.on('lookup:file', function (info, file) {
    //当查找文件时派送, 可以扩展 hoo 默认的查找文件功能。如：支持无后缀文件查找，支持 components 文件查找。
  });

  hoo.on('standard:js', function (info) {

  })
};

