UNPKG

1.57 kBJavaScriptView Raw
1'use strict';
2
3// 外部模块
4const path = require('path');
5
6// jdf内置模块
7const jdfUtils = require('jdf-utils');
8const $ = jdfUtils.base;
9const jdf = require('./jdf');
10const vfs = require('./VFS/VirtualFileSystem');
11const logger = require('jdf-log');
12
13module.exports.init = () => {
14 const files = vfs.queryFileByType(['babel', 'es6']);
15 if(files.length > 0) {
16 logger.profile('parse es6');
17 const babel = require('babel-core');
18 files.forEach((item) => {
19 const result = babel.transform(item.originContent, {
20 presets: $.uniq(jdf.config.babel.defaultPresets.concat(jdf.config.babel.presets || [])),
21 plugins: $.uniq(jdf.config.babel.defaultPlugins.concat(jdf.config.babel.plugins || [])),
22 sourceRoot: path.resolve(__dirname, '../node_modules'),
23 sourceMaps: true
24 });
25 logger.verbose(`build ES6: ${item.originPath}`);
26 var fileName = path.basename(item.originPath, '.babel');
27 fileName = path.basename(fileName, '.es6');
28 const sourcemapFileName = `${fileName}.js.map`;
29 item.targetContent = `${result.code}\n//# sourceMappingURL=./${sourcemapFileName}`;
30 result.map.file = `${fileName}}.js`;
31 logger.verbose(`generate sourcemap ${sourcemapFileName}`);
32 const sourcemapFilePath = path.join(path.dirname(item.originPath), sourcemapFileName);
33 vfs.addFile(sourcemapFilePath, JSON.stringify(result.map));
34 });
35 logger.profile('parse es6');
36 }
37}