Skip to content

Commit

Permalink
Merge branch 'master' of github.com:NervJS/taro
Browse files Browse the repository at this point in the history
  • Loading branch information
Pines-Cheng committed Oct 9, 2018
2 parents c785278 + ef8d16e commit 5c0a59c
Show file tree
Hide file tree
Showing 47 changed files with 346 additions and 154 deletions.
26 changes: 25 additions & 1 deletion CHANGELOG.md
@@ -1,5 +1,29 @@
<a name=""></a>
# [](https://github.com/NervJS/taro/compare/v1.1.0-beta.1...v) (2018-09-29)
# [](https://github.com/NervJS/taro/compare/v1.1.0-beta.2...v) (2018-10-08)



<a name="1.1.0-beta.2"></a>
# [1.1.0-beta.2](https://github.com/NervJS/taro/compare/v1.1.0-beta.1...v1.1.0-beta.2) (2018-10-08)


### Bug Fixes

* **cli:** 处理 lodash/fp 的小程序端兼容问题 ([fb10108](https://github.com/NervJS/taro/commit/fb10108))
* **cli:** 百度小程序以及 rn 的 TARO_ENV 不正确 ([337b2b1](https://github.com/NervJS/taro/commit/337b2b1))
* **components:** 修复不传className时类名为undefined的情况 ([103df23](https://github.com/NervJS/taro/commit/103df23))
* **transformer:** 多层循环的 JSX 引用会多编译一个数组 ([7cfef07](https://github.com/NervJS/taro/commit/7cfef07))
* **transformer:** 访问原始循环 item 减少一个 $ ([1f4e2d0](https://github.com/NervJS/taro/commit/1f4e2d0))


### Features

* **cli:** 优化 npm 安装包资源分析,允许引入 npm 安装包自身依赖资源 close [#423](https://github.com/NervJS/taro/issues/423) ([14af040](https://github.com/NervJS/taro/commit/14af040))
* **cli:** 增加支付宝小程序编译类型 ([6619011](https://github.com/NervJS/taro/commit/6619011))
* **cli:** 处理支付宝小程序配置的差异 ([4633277](https://github.com/NervJS/taro/commit/4633277))
* **cli:** 支持编译样式文件中 import 的样式文件,closes [#746](https://github.com/NervJS/taro/issues/746),closes [#758](https://github.com/NervJS/taro/issues/758) ([86cc770](https://github.com/NervJS/taro/commit/86cc770))
* **cli:** 文件中使用 import 引入的模板不再需要 copy ([9af132a](https://github.com/NervJS/taro/commit/9af132a))
* **taro-alipay:** 增加支付宝小程序运行时框架 ([2a558fe](https://github.com/NervJS/taro/commit/2a558fe))



Expand Down
2 changes: 1 addition & 1 deletion docs/best-practice.md
Expand Up @@ -53,7 +53,7 @@ const { property } = this.props
const property = this.props.property
```

但是一千个人心中有一千个哈姆雷特,不同人的代码写法肯定也不尽相同,所以 Taro 的编译肯定不能覆盖到所有的写法,而同时可能会有某一属性没有使用而是直接传递给子组件的情况,这种情况是编译时无论如何也处理不到的,这时候就需要大家在编码时给组件设置 [`defaultProps`](https://nervjs.github.io/taro/component.html#%E7%B1%BB%E5%B1%9E%E6%80%A7) 来解决了。
但是一千个人心中有一千个哈姆雷特,不同人的代码写法肯定也不尽相同,所以 Taro 的编译肯定不能覆盖到所有的写法,而同时可能会有某一属性没有使用而是直接传递给子组件的情况,这种情况是编译时无论如何也处理不到的,这时候就需要大家在编码时给组件设置 [`defaultProps`](https://nervjs.github.io/taro/docs/component.html#defaultprops) 来解决了。

组件设置的 `defaultProps` 会在运行时用来弥补编译时处理不到的情况,里面所有的属性都会被设置到 `properties` 中初始化组件,正确设置 `defaultProps` 可以避免很多异常的情况的出现。

Expand Down
44 changes: 0 additions & 44 deletions docs/jsx.md
Expand Up @@ -209,47 +209,3 @@ const element = <Content footer={<View />} />
```

这样的代码在 Nerv/React 中使用是没有问题的,但是在 Taro 中不能这么做。


### 自定义组件的名称必须和引入时一致

考虑如下代码:

```jsx
// Tabs.js
export default class Tabs extends Componenet {
render () {
return <View> {this.props.children} </View>
}
}
// App.js
import Tabset from './tabs'
class App extends Componenet {
render () {
return (
<Tabset >
)
}
}
```

在 React/Nerv 中,你可以把组件的名称命名为任何遵循 JavaScript 规范的名字,通过 `export default` 导出时再通过 `import` 引入,又可以给他命名为一个不同的名字。但在 Taro 中你不能这么做,当转换成小程序时,自定义组件实际上会包一层 `template` 组件,而 `template``name` 属性必须是和 `class` 定义的名称一致的,否则 Taro 无法找到对应的组件:

```jsx
// Tabs.js
export default class Tabs extends Componenet {
render () {
return <View> {this.props.children} </View>
}
}
// App.js
// 定义 `Tabs`,引入名称也必须是 `Tabs`
import Tabs from './tabs'
class App extends Componenet {
render () {
return (
<Tabs >
)
}
}
```
18 changes: 18 additions & 0 deletions docs/static-reference.md
Expand Up @@ -61,3 +61,21 @@ import namedJson from '../../json/path/named.json'

console.log(namedJson.x)
```

## 小程序样式中引用本地资源

在小程序的样式中,默认不能直接引用本地资源,只能通过网络地址、Base64 的方式来进行资源引用,为了方便开发,Taro 提供了直接在样式文件中引用本地资源的方式,其原理是通过 `PostCSS`[`postcss-url`](https://github.com/postcss/postcss-url) 插件将样式中本地资源引用转换成 Base64 格式,从而能正常加载。

Taro 默认会对 `10kb` 大小以下的资源进行转换,如果需要修改配置,可以在 `config/index.js` 中进行修改,配置位于 [`weapp.module.postcss`](https://nervjs.github.io/taro/docs/config-detail.html#weappmodulepostcss)

具体配置如下

```javascript
// 小程序端样式引用本地资源内联
url: {
enable: true,
config: {
limit: 10240 // 设定转换尺寸上限
}
}
```
2 changes: 1 addition & 1 deletion lerna.json
Expand Up @@ -38,6 +38,6 @@
"message": "chore(release): publish %s"
}
},
"version": "1.1.0-beta.1",
"version": "1.1.0-beta.2",
"npmClient": "npm"
}
@@ -1,6 +1,6 @@
{
"name": "babel-plugin-transform-jsx-to-stylesheet",
"version": "1.1.0-beta.1",
"version": "1.1.0-beta.2",
"description": "Transform stylesheet selector to style in JSX Elements.",
"license": "MIT",
"main": "src/index.js",
Expand Down
4 changes: 2 additions & 2 deletions packages/eslint-config-taro/package.json
@@ -1,6 +1,6 @@
{
"name": "eslint-config-taro",
"version": "1.1.0-beta.1",
"version": "1.1.0-beta.2",
"description": "Taro specific linting rules for ESLint",
"main": "index.js",
"files": [
Expand All @@ -27,6 +27,6 @@
"author": "O2Team",
"license": "MIT",
"dependencies": {
"eslint-plugin-taro": "1.1.0-beta.1"
"eslint-plugin-taro": "1.1.0-beta.2"
}
}
2 changes: 1 addition & 1 deletion packages/eslint-plugin-taro/package.json
@@ -1,6 +1,6 @@
{
"name": "eslint-plugin-taro",
"version": "1.1.0-beta.1",
"version": "1.1.0-beta.2",
"description": "Taro specific linting plugin for ESLint",
"main": "index.js",
"files": [
Expand Down
2 changes: 1 addition & 1 deletion packages/postcss-plugin-constparse/package.json
@@ -1,6 +1,6 @@
{
"name": "postcss-plugin-constparse",
"version": "1.1.0-beta.1",
"version": "1.1.0-beta.2",
"description": "parse constants defined in config",
"main": "index.js",
"author": "Simba",
Expand Down
2 changes: 1 addition & 1 deletion packages/postcss-pxtransform/package.json
@@ -1,6 +1,6 @@
{
"name": "postcss-pxtransform",
"version": "1.1.0-beta.1",
"version": "1.1.0-beta.2",
"description": "PostCSS plugin px 转小程序 rpx及h5 rem 单位",
"keywords": [
"postcss",
Expand Down
2 changes: 1 addition & 1 deletion packages/taro-alipay/package.json
@@ -1,6 +1,6 @@
{
"name": "@tarojs/taro-alipay",
"version": "1.1.0-beta.1",
"version": "1.1.0-beta.2",
"description": "Taro alipay framework",
"main": "index.js",
"files": [
Expand Down
4 changes: 3 additions & 1 deletion packages/taro-alipay/src/create-component.js
Expand Up @@ -64,7 +64,9 @@ function processEvent (eventHandlerName, obj) {
event.preventDefault = function () {}
event.stopPropagation = function () {}
event.currentTarget = event.currentTarget || event.target || {}
Object.assign(event.target, event.detail)
if (event.target) {
Object.assign(event.target, event.detail)
}
Object.assign(event.currentTarget, event.detail)
}

Expand Down
2 changes: 1 addition & 1 deletion packages/taro-async-await/package.json
@@ -1,6 +1,6 @@
{
"name": "@tarojs/async-await",
"version": "1.1.0-beta.1",
"version": "1.1.0-beta.2",
"description": "taro async await",
"main": "index.js",
"scripts": {
Expand Down
8 changes: 4 additions & 4 deletions packages/taro-cli/package.json
@@ -1,6 +1,6 @@
{
"name": "@tarojs/cli",
"version": "1.1.0-beta.1",
"version": "1.1.0-beta.2",
"description": "cli tool for taro",
"main": "index.js",
"scripts": {
Expand All @@ -23,15 +23,15 @@
"author": "O2Team",
"license": "MIT",
"dependencies": {
"@tarojs/transformer-wx": "1.1.0-beta.1",
"@tarojs/transformer-wx": "1.1.0-beta.2",
"autoprefixer": "^8.4.1",
"babel-core": "^6.26.3",
"babel-generator": "^6.26.1",
"babel-plugin-danger-remove-unused-import": "^1.0.13",
"babel-plugin-remove-dead-code": "^1.3.2",
"babel-plugin-transform-decorators-legacy": "^1.3.4",
"babel-plugin-transform-define": "^1.3.0",
"babel-plugin-transform-jsx-to-stylesheet": "1.1.0-beta.1",
"babel-plugin-transform-jsx-to-stylesheet": "1.1.0-beta.2",
"babel-plugin-transform-react-jsx": "^6.24.1",
"babel-template": "^6.26.0",
"babel-traverse": "^6.26.0",
Expand All @@ -54,7 +54,7 @@
"minimatch": "^3.0.4",
"ora": "^2.0.0",
"postcss": "^6.0.22",
"postcss-pxtransform": "1.1.0-beta.1",
"postcss-pxtransform": "1.1.0-beta.2",
"postcss-url": "^7.3.2",
"prop-types": "^15.6.2",
"resolve": "^1.6.0",
Expand Down
38 changes: 38 additions & 0 deletions packages/taro-cli/src/weapp.js
Expand Up @@ -920,6 +920,40 @@ function buildProjectConfig () {
Util.printLog(Util.pocessTypeEnum.GENERATE, '工具配置', `${outputDirName}/${projectConfigFileName}`)
}

function buildWorkers (worker) {
Util.printLog(Util.pocessTypeEnum.COMPILE, 'Workers', '编译 worker 相关文件')
const workerDir = path.join(sourceDir, worker)
function fileRecursiveSearch (fileDir) {
fs.readdir(fileDir, (err, files) => {
if (err) {
console.warn(err)
} else {
files.forEach(filename => {
const filePath = path.join(fileDir, filename)
fs.stat(filePath, (err, stats) => {
if (err) {
console.warn(err)
} else {
const isFile = stats.isFile()
const isDir = stats.isDirectory()
if (isFile) {
if (Util.REG_SCRIPTS.test(filePath)) {
compileDepScripts([filePath])
} else {
copyFilesFromSrcToOutput([filePath])
}
} else if (isDir) {
fileRecursiveSearch(filePath)
}
}
})
})
}
})
}
fileRecursiveSearch(workerDir)
}

async function buildEntry () {
Util.printLog(Util.pocessTypeEnum.COMPILE, '入口文件', `${sourceDirName}/${entryFileName}`)
const entryFileCode = fs.readFileSync(entryFilePath).toString()
Expand Down Expand Up @@ -954,6 +988,9 @@ async function buildEntry () {
fs.writeFileSync(path.join(outputDir, 'app.js'), resCode)
Util.printLog(Util.pocessTypeEnum.GENERATE, '入口文件', `${outputDirName}/app.js`)
}
if (res.configObj.workers) {
buildWorkers(res.configObj.workers)
}
const fileDep = dependencyTree[entryFilePath] || {}
// 编译依赖的脚本文件
if (Util.isDifferentArray(fileDep['script'], res.scriptFiles)) {
Expand Down Expand Up @@ -1518,6 +1555,7 @@ async function buildSingleComponent (componentObj, buildConfig = {}) {
}
return item
}).filter(item => item)
realComponentsPathList = realComponentsPathList.filter(item => hasBeenBuiltComponents.indexOf(item.path) < 0)
buildDepComponentsResult = await buildDepComponents(realComponentsPathList)
}
if (!Util.isEmptyObject(componentExportsMap) && realComponentsPathList.length) {
Expand Down
28 changes: 0 additions & 28 deletions packages/taro-cli/templates/default/config/index
Expand Up @@ -20,34 +20,6 @@ const config = {
'transform-decorators-legacy',
'transform-object-rest-spread'
]
},
typescript: {
compilerOptions: {
allowSyntheticDefaultImports: true,
baseUrl: '.',
declaration: false,
experimentalDecorators: true,
jsx: 'preserve',
jsxFactory: 'Nerv.createElement',
module: 'commonjs',
moduleResolution: 'node',
noImplicitAny: false,
noUnusedLocals: true,
outDir: './dist/',
preserveConstEnums: true,
removeComments: false,
rootDir: '.',
sourceMap: true,
strictNullChecks: true,
target: 'es6'
},
include: [
'src/**/*'
],
exclude: [
'node_modules'
],
compileOnSave: false
}
},
defineConstants: {
Expand Down
1 change: 1 addition & 0 deletions packages/taro-cli/templates/default/gitignore
Expand Up @@ -2,3 +2,4 @@ dist/
.temp/
.rn_temp/
node_modules/
.DS_Store
28 changes: 0 additions & 28 deletions packages/taro-cli/templates/redux/config/index
Expand Up @@ -15,34 +15,6 @@ const config = {
'transform-decorators-legacy',
'transform-object-rest-spread'
]
},
typescript: {
compilerOptions: {
allowSyntheticDefaultImports: true,
baseUrl: '.',
declaration: false,
experimentalDecorators: true,
jsx: 'preserve',
jsxFactory: 'Nerv.createElement',
module: 'commonjs',
moduleResolution: 'node',
noImplicitAny: false,
noUnusedLocals: true,
outDir: './dist/',
preserveConstEnums: true,
removeComments: false,
rootDir: '.',
sourceMap: true,
strictNullChecks: true,
target: 'es6'
},
include: [
'src/**/*'
],
exclude: [
'node_modules'
],
compileOnSave: false
}
},
defineConstants: {
Expand Down
1 change: 1 addition & 0 deletions packages/taro-cli/templates/redux/gitignore
Expand Up @@ -2,3 +2,4 @@ dist/
.temp/
.rn_temp/
node_modules/
.DS_Store
2 changes: 1 addition & 1 deletion packages/taro-components-rn/package.json
@@ -1,6 +1,6 @@
{
"name": "@tarojs/components-rn",
"version": "1.1.0-beta.1",
"version": "1.1.0-beta.2",
"description": "多端解决方案基础组件(RN)",
"main": "./dist/index.js",
"scripts": {
Expand Down
2 changes: 1 addition & 1 deletion packages/taro-components/package.json
@@ -1,6 +1,6 @@
{
"name": "@tarojs/components",
"version": "1.1.0-beta.1",
"version": "1.1.0-beta.2",
"description": "",
"main": "./dist/index.js",
"typings": "./types/index.d.ts",
Expand Down

0 comments on commit 5c0a59c

Please sign in to comment.