如何使用Babel在JavaScript中合并多个函数
我有许多JavaScript模块,它们都导出如何使用Babel在JavaScript中合并多个函数,javascript,node.js,parsing,babeljs,abstract-syntax-tree,Javascript,Node.js,Parsing,Babeljs,Abstract Syntax Tree,我有许多JavaScript模块,它们都导出数据和一些其他不同的函数。我想把所有这些文件合并成一个文件。以下是其中一些: File1.js export default { data() { return { f1: 'something 1' } }, foo() { // do something 1 } } export default { data() { r
数据
和一些其他不同的函数。我想把所有这些文件合并成一个文件。以下是其中一些:
File1.js
export default {
data() {
return {
f1: 'something 1'
}
},
foo() {
// do something 1
}
}
export default {
data() {
return {
f2: 'something 2'
}
},
bar() {
// do something 2
}
}
export default {
data() {
return {
f3: 'something 3'
}
},
zoo() {
// do something 3
}
}
export default {
data() {
return {
f1: 'something 1',
f2: 'something 2',
f3: 'something 3'
}
},
foo() {
// do something 1
},
bar() {
// do something 2
},
zoo() {
// do something 3
}
}
File2.js
export default {
data() {
return {
f1: 'something 1'
}
},
foo() {
// do something 1
}
}
export default {
data() {
return {
f2: 'something 2'
}
},
bar() {
// do something 2
}
}
export default {
data() {
return {
f3: 'something 3'
}
},
zoo() {
// do something 3
}
}
export default {
data() {
return {
f1: 'something 1',
f2: 'something 2',
f3: 'something 3'
}
},
foo() {
// do something 1
},
bar() {
// do something 2
},
zoo() {
// do something 3
}
}
File3.js
export default {
data() {
return {
f1: 'something 1'
}
},
foo() {
// do something 1
}
}
export default {
data() {
return {
f2: 'something 2'
}
},
bar() {
// do something 2
}
}
export default {
data() {
return {
f3: 'something 3'
}
},
zoo() {
// do something 3
}
}
export default {
data() {
return {
f1: 'something 1',
f2: 'something 2',
f3: 'something 3'
}
},
foo() {
// do something 1
},
bar() {
// do something 2
},
zoo() {
// do something 3
}
}
预期结果如下:
Result.js
export default {
data() {
return {
f1: 'something 1'
}
},
foo() {
// do something 1
}
}
export default {
data() {
return {
f2: 'something 2'
}
},
bar() {
// do something 2
}
}
export default {
data() {
return {
f3: 'something 3'
}
},
zoo() {
// do something 3
}
}
export default {
data() {
return {
f1: 'something 1',
f2: 'something 2',
f3: 'something 3'
}
},
foo() {
// do something 1
},
bar() {
// do something 2
},
zoo() {
// do something 3
}
}
我看过一些文章,如果使用AST技术,它可能会更可靠。这是一篇很好的文章:
我如何使用Babel做到这一点?使用(使用Babel在绑定之前使用a转换代码),您可以将数据
方法中的任何功能移动到自己的模块中(请记住,这可能意味着在一个模块导出中处理该方法的不同用法)
在其他文件中,您可以根据需要创建和引用新的实用程序函数
Babel将把import
语句转换为require()
表达式,Webpack将使用这些表达式将这些不同的模块捆绑起来分发。在该捆绑包中,您将只看到一个对数据
模块的引用,即使您多次导入它。使用(使用Babel在捆绑前转换代码),您将能够将数据
方法中的任何功能移动到自己的模块中(请记住,这可能意味着在一个模块导出中处理该方法的不同用法)
在其他文件中,您可以根据需要创建和引用新的实用程序函数
Babel将把import
语句转换为require()
表达式,Webpack将使用这些表达式来捆绑这些不同的模块进行分发。在这个捆绑包中,您将只看到一个对数据
模块的引用,即使您多次导入它