-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.js
96 lines (82 loc) · 2.13 KB
/
build.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
const template = require('@babel/template').default
const sourceCode = `
test()
`
const result = template.ast(sourceCode)
console.log(result.expression)
// import fs from 'fs'
// import * as parser from "@babel/parser"
// import traverse from '@babel/traverse'
// import template from '@babel/template'
// import generate from '@babel/generator'
// import * as t from '@babel/types'
// import { codeFrameColumns } from '@babel/code-frame'
// const rawLines = `class Foo {
// constructor()
// }`;
// const location = { start: { line: 2, column: 2 } };
// const result = codeFrameColumns(rawLines, location, {
// highlightCode: true,
// message: '这里错啦'
// });
// console.log(result);
//const a = "var a = 1;";
//const b = "var b = 2;";
//const astA = parser.parse(a, {sourceFilename: "a.js"});
//const astB = parser.parse(b, {sourceFilename: "b.js"});
//const ast = {
// type: "Program",
// body: [].concat(astA.program.body, astB.program.body),
//};
//
//const {code, map} = generate.default(
// ast,
// {sourceMaps: true},
// {
// "a.js": a,
// "b.js": b,
// }
//);
//
//console.log(code)
//console.log('-----')
//console.log(map)
//const ast = fs.readFileSync('./ast.json', 'utf8')
//
//const { code, map } = generate.default(JSON.parse(ast), { sourceMaps: true })
//
//console.log(code)
//console.log('-------')
//console.log(map)
//
//
//const name = "my-module";
//const mod = "myModule";
//
//const ast = template.default.ast`
//var ${mod} = require("${name}");
//`;
//
//console.log(generate.default(ast).code);
//
//const buildRequire = template.default.smart(`
//var %%importName%% = require(%%source%%);
//`);
//const ast = buildRequire({
// importName: t.identifier("myModule"),
// source: t.stringLiteral("my-module"),
//});
//
//console.log(generate.default(ast).code);
//const code = fs.readFileSync('./src/index.js', 'utf8')
//const ast = parser.parse(code)
//
//traverse.default(ast, {
// enter(path, state) {
// if (path.isIdentifier({name: "name"})) {
// path.node.name = "xxxxxxx";
// }
// },
//})
//
//fs.writeFileSync('./ast.json', JSON.stringify(ast))