@c-sheep/i18n-extract-cli
Version:
这是一款能够自动将代码里的中文转成i18n国际化标记的命令行工具。当然,你也可以用它实现将中文语言包自动翻译成其他语言。适用于vue2、vue3和react
52 lines (51 loc) • 2.36 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.initParse = void 0;
const transform_code_1 = require("./transform-code");
const babel = require("@babel/core");
const pluginSyntaxJSX = require("@babel/plugin-syntax-jsx");
const pluginSyntaxProposalOptionalChaining = require("@babel/plugin-proposal-optional-chaining");
const pluginSyntaxClassProperties = require("@babel/plugin-syntax-class-properties");
const pluginSyntaxDecorators = require("@babel/plugin-syntax-decorators");
const pluginSyntaxObjectRestSpread = require("@babel/plugin-syntax-object-rest-spread");
const pluginSyntaxAsyncGenerators = require("@babel/plugin-syntax-async-generators");
const pluginSyntaxDoExpressions = require("@babel/plugin-syntax-do-expressions");
const pluginSyntaxDynamicImport = require("@babel/plugin-syntax-dynamic-import");
const pluginSyntaxExportExtensions = require("@babel/plugin-syntax-export-extensions");
const pluginSyntaxFunctionBind = require("@babel/plugin-syntax-function-bind");
function initParse(babelPresets = [], babelPlugins = []) {
return function (code) {
return (0, transform_code_1.parseSync)(code, [], [
pluginSyntaxJSX,
pluginSyntaxProposalOptionalChaining,
pluginSyntaxClassProperties,
[pluginSyntaxDecorators, { decoratorsBeforeExport: true }],
pluginSyntaxObjectRestSpread,
pluginSyntaxAsyncGenerators,
pluginSyntaxDoExpressions,
pluginSyntaxDynamicImport,
pluginSyntaxExportExtensions,
pluginSyntaxFunctionBind,
...babelPlugins,
], babelPresets);
// return babel.parseSync(code, {
// ast: true,
// configFile: false,
// presets: babelPresets,
// plugins: [
// pluginSyntaxJSX,
// pluginSyntaxProposalOptionalChaining,
// pluginSyntaxClassProperties,
// [pluginSyntaxDecorators, { decoratorsBeforeExport: true }],
// pluginSyntaxObjectRestSpread,
// pluginSyntaxAsyncGenerators,
// pluginSyntaxDoExpressions,
// pluginSyntaxDynamicImport,
// pluginSyntaxExportExtensions,
// pluginSyntaxFunctionBind,
// ...babelPlugins,
// ],
// })
};
}
exports.initParse = initParse;