index.js 925 B

123456789101112131415161718192021222324252627282930313233343536
  1. 'use strict';
  2. var babel = require('babel-core');
  3. var preset2015 = require('babel-preset-es2015');
  4. var presetstage3 = require('babel-preset-stage-3');
  5. var react = require('babel-preset-react');
  6. module.exports = function (content, file, conf) {
  7. // 添加 useBabel 配置项,如果 useBabel 为 false 则不进行编译
  8. if (file.useBabel === false) {
  9. return content;
  10. }
  11. conf = fis.util.extend({
  12. presets: [
  13. preset2015,
  14. presetstage3,
  15. react
  16. ]
  17. }, conf);
  18. // 添加 jsx 的 html 语言能力处理
  19. if (fis.compile.partial && file.ext === '.jsx') {
  20. content = fis.compile.partial(content, file, {
  21. ext: '.html',
  22. isHtmlLike: true
  23. });
  24. }
  25. // 出于安全考虑,不使用原始路径
  26. // conf.filename = file.subpath;
  27. var result = babel.transform(content, conf);
  28. return result.code;
  29. };