0.4.6 • Published 8 years ago
weex-transformer v0.4.6
Weex DSL Transformer
<template> + <style> + <script> + <element>
Install
npm install weex-transformerUsage
CLI tool
Usage: transformer [options] <file...>
Options:
-h, --help output usage information
-V, --version output the version number
-g, --logLevel [value] specify log output level - `NOTE`, `WARNING`, `ERROR`, `OFF` (default: `NOTE`, equivalent to `ALL`)
-e, --isEntry [value] whether is an entry module which has `bootstrap` (default: true)
-l, --oldFormat [value] whether to transform to old format (default: false)
-o, --output [path] the output file dirnameAPI
transform(name, code, path, elements, config)
var transformer = require('weex-transformer')
var output = transformer.transform('foo', '/* code here */', '.', {})params
name: string, current bundle namecode: string, source codepath: string optional, useful when find custom component in a certain pathelements: object optional, existed custom component mapconfig: object optionallogLevel: specify log output level -NOTE(default, equivalent toALL),WARNING,ERROR,OFF, aranging from low to highisEntry: whether is an entry module which hasbootstrap(default: true)oldFormat: whether to transform to old format (default: false)
returns
- an object with keys
result: string, all custom componentsdefine()and finalbootstrap()logs: array, corresponding warning & error logs
transformOld(...)
same params and different output format for old style: register(name, options) and render(name, data)
transforming content
template: JavaScript Object byparse5style: JSON Object bycssscript: JavaScript AST withtemplate,deps,stylebyesprimaelement: string code map for deeply parsing
workflow
- get template, style, script, elements
- parse and validate style by
styler - parse and validate template by
templaterand get deps - parse script by
scripter - join template, style and script to build a module
- collect element code map
- output
define()string code, deps, element code map and logs - find deps code by name from element code map first and from file system for second
- join all deps code together recursively
- find all required 3rd party javascript and bundle them
- append
bootstrap()string code and bundle at last