提交 e2cce820 编写于 作者: Y yylgit

cmlparse

上级 e76a3c13
......@@ -4,7 +4,7 @@ const Log = require('./log.js');
const EventEmitter = require('events');
const cmlUtils = require('chameleon-tool-utils');
const parser = require('../mvvm-babel-parser/lib');
const merge = require('webpack-merge');
const amd = require('./lib/amd.js');
class Compiler {
constructor(webpackCompiler, plugin) {
......@@ -37,6 +37,8 @@ class Compiler {
this.moduleRule = this.moduleRule.concat(plugin.moduleRule);
}
this.amd = amd; // amd的工具方法
}
......
const amdWrapModule = require('./amdwrapper.js');
const path = require('path');
const fs = require('fs');
const globalBootstrap = fs.readFileSync(path.join(__dirname, 'amdbootstrap.global.js'), {encoding: 'utf8'})
const moduleBootstrap = fs.readFileSync(path.join(__dirname, 'amdbootstrap.module.js'), {encoding: 'utf8'})
function getGlobalBootstrap(globalName) {
return globalBootstrap.replace('$GLOBAL', globalName);
}
function getModuleBootstrap() {
return moduleBootstrap;
}
module.exports = {
amdWrapModule,
getGlobalBootstrap,
getModuleBootstrap
}
module.exports = function(content, modId) {
module.exports = function({content, modId}) {
if (!/^\s*cmldefine\s*\(/.test(content)) {
content = 'cmldefine(\'' + modId + '\', function(require, exports, module){ ' + content +
' \r\n});';
}
return content;
}
\ No newline at end of file
const {vueToCml} = require('./common/process-template.js');
const {vueToCml} = require('./lib/process-template.js');
const parser = require('mvvm-babel-parser');
const generator = require('mvvm-babel-generator/lib')
const types = require('@babel/types');
const traverse = require('@babel/traverse');
exports.vueToCml = vueToCml;
exports.parser = parser;
exports.generator = generator["default"];
exports.types = types;
exports.traverse = traverse["default"];
exports.vueToCml = vueToCml;
exports.cmlparse = function(content) {
return parser.parse(content, {
plugins: ['jsx']
})
}
......@@ -10,7 +10,6 @@ const {ast} = standardParser({
source: template,
lang: 'cml'
})
debugger
traverse(ast, {
enter: (path) => {
let node = path.node;
......
const processTemplate = require('./process-template.js');
const {vueToCml, cmlparse} = require('../index.js');
let source = `<template>
<view>
<!-- 事件 -->
......@@ -41,5 +41,8 @@ let options = {lang: 'cml',
}]
};
// let source = `<view style="{{item.id}}">{{item.id}}{{item[11]}}</view>`
let result = processTemplate.vueToCml(source,options);
console.log('sss', result)
let result = vueToCml(source, options);
let ast = cmlparse(result.source);
debugger
console.log(ast)
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册