Skip to content

Commit

Permalink
refactor(transformer): 使用 require 引入 babel 插件
Browse files Browse the repository at this point in the history
  • Loading branch information
yuche committed Sep 14, 2018
1 parent e2e2579 commit f0547b0
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 7 deletions.
13 changes: 12 additions & 1 deletion packages/taro-transformer-wx/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions packages/taro-transformer-wx/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@
"babel-types": "^6.26.0",
"html": "^1.0.0",
"lodash": "^4.17.5",
"prettier": "^1.14.2",
"typescript": "^3.0.1"
},
"devDependencies": {
Expand Down
8 changes: 4 additions & 4 deletions packages/taro-transformer-wx/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -177,13 +177,13 @@ export default function transform (options: Options): TransformResult {
] as any[]
},
plugins: [
'transform-flow-strip-types',
require('babel-plugin-transform-flow-strip-types'),
[require('babel-plugin-danger-remove-unused-import'), { ignore: ['@tarojs/taro', 'react', 'nervjs'] }],
'transform-es2015-template-literals',
['transform-define', {
require('babel-plugin-transform-es2015-template-literals'),
[require('babel-plugin-transform-define').default, {
'process.env.TARO_ENV': 'weapp'
}]
].concat((process.env.NODE_ENV === 'test') ? [] : 'remove-dead-code')
].concat((process.env.NODE_ENV === 'test') ? [] : require('babel-plugin-remove-dead-code').default)
}).ast as t.File
if (options.isNormal) {
return { ast } as any
Expand Down
16 changes: 14 additions & 2 deletions packages/taro-transformer-wx/src/jsx.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import generate from 'babel-generator'
import * as prettier from 'prettier'
import { NodePath } from 'babel-traverse'
import * as t from 'babel-types'
import { kebabCase } from 'lodash'
Expand Down Expand Up @@ -117,7 +118,9 @@ function parseJSXChildren (
return str + parseJSXElement(child.expression)
}
return str + `{${
generate(child)
generate(child, {
quotes: 'single'
})
.code
.replace(/(this\.props\.)|(this\.state\.)/g, '')
.replace(/(props\.)|(state\.)/g, '')
Expand Down Expand Up @@ -157,7 +160,16 @@ export function parseJSXElement (element: t.JSXElement): string {
} else if (t.isJSXExpressionContainer(attrValue)) {
const isBindEvent =
(name.startsWith('bind') && name !== 'bind') || (name.startsWith('catch') && name !== 'catch')
let { code } = generate(attrValue.expression)
let { code } = generate(attrValue.expression, {
quotes: 'single',
concise: true
})
code = prettier.format(code, {
singleQuote: true,
parser: 'babylon',
semi: false,
trailingComma: 'none'
}).slice(0, -1)
code = code
.replace(/(this\.props\.)|(this\.state\.)/g, '')
.replace(/this\./g, '')
Expand Down

0 comments on commit f0547b0

Please sign in to comment.