@tarojs/plugin-inject 1.0.1 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -52,6 +52,7 @@ const config = {
52
52
  | componentsMap | object | 新增组件时的名称映射 |
53
53
  | voidComponents | array, function | 设置组件是否可以渲染子元素 |
54
54
  | nestElements | object, function | 设置组件模版的循环次数 |
55
+ | thirdPartyComponents | object | 设置第三方自定义组件的属性的默认值 |
55
56
 
56
57
  #### 1. syncApis
57
58
 
@@ -139,6 +140,29 @@ const config = {
139
140
  }
140
141
  ```
141
142
 
143
+ 新增事件属性:
144
+ > 新增一个事件属性有两种方式,一种是像上面例子那样属性以`bind`开头,一种是像下面例子这样将属性值设为`eh` [查看详细PR](https://github.com/NervJS/taro/pull/11478)
145
+ ```js
146
+ const config = {
147
+ plugins: [
148
+ [
149
+ '@tarojs/plugin-inject',
150
+ {
151
+ components: {
152
+ // 新增一个 'CustomComponent' 组件并支持 'catchtouchend' 事件
153
+ CustomComponent: {
154
+ catchtouchend: 'eh',
155
+ },
156
+ },
157
+ componentsMap: {
158
+ CustomComponent: 'custom-component',
159
+ },
160
+ },
161
+ ],
162
+ ],
163
+ }
164
+ ```
165
+
142
166
  #### 4. voidComponents
143
167
 
144
168
  在 `voidComponents` 里的组件**不可以渲染子组件**。
@@ -231,6 +255,44 @@ const config = {
231
255
  }
232
256
  ```
233
257
 
258
+ #### 6. thirdPartyComponents
259
+
260
+ > v1.0.2+ 开始支持,且需要 Taro v3.4.10+
261
+
262
+ 在默认情况下,第三方自定义组件的属性会被编译为形如:`<van-empty image="{{i.image}}" />`。
263
+
264
+ 这时自定义组件声明的默认值会失效(详情请浏览 [#11575](https://github.com/NervJS/taro/issues/11575))。
265
+
266
+ ```js
267
+ Component({
268
+ props: {
269
+ image: {
270
+ type: String,
271
+ value: 'default'
272
+ }
273
+ }
274
+ })
275
+ ```
276
+
277
+ 所以我们需要为此属性增加默认值,把它编译为形如:`<van-empty image="{{i.image===undefined?'default':i.image}}" />`。
278
+
279
+ 用法:
280
+
281
+ ```js
282
+ const config = {
283
+ plugins: [
284
+ ['@tarojs/plugin-inject', {
285
+ thirdPartyComponents: {
286
+ // 为 `van-empty` 组件的 image 属性设置默认值 'default'
287
+ 'van-empty': {
288
+ 'image': "'default'"
289
+ }
290
+ }
291
+ }]
292
+ ]
293
+ }
294
+ ```
295
+
234
296
  ### 模块补充
235
297
 
236
298
  在前面的 components 示例中,给Text组件添加了新属性x-props后,@tarojs/components的类型文件中没有新定义的属性,typescript无法识别Text组件的x-props属性,导致vscode提示属性不存在,可以通过[模块补充](https://docs.taro.zone/docs/platform-plugin-how#%E7%B1%BB%E5%9E%8B)的方式来修正
package/dist/apis-list.js CHANGED
@@ -1,6 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.needPromiseApis = exports.noPromiseApis = void 0;
4
- exports.noPromiseApis = new Set([]);
5
- exports.needPromiseApis = new Set([]);
6
- //# sourceMappingURL=apis-list.js.map
1
+
2
+ export const noPromiseApis = new Set([]);
3
+ export const needPromiseApis = new Set([]);
@@ -1,5 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.components = void 0;
4
- exports.components = {};
5
- //# sourceMappingURL=components.js.map
1
+
2
+ export const components = {"VanEmpty":{"image":"'default'"}};
package/dist/index.js CHANGED
@@ -7,7 +7,7 @@ exports.default = (ctx, options) => {
7
7
  ctx.registerMethod({
8
8
  name: 'onSetupClose',
9
9
  fn(platform) {
10
- const { voidComponents, nestElements, components, syncApis, asyncApis, componentsMap } = options;
10
+ const { voidComponents, nestElements, components, syncApis, asyncApis, componentsMap, thirdPartyComponents } = options;
11
11
  const template = platform.template;
12
12
  if (shared_1.isArray(voidComponents)) {
13
13
  voidComponents.forEach(el => template.voidElements.add(el));
@@ -35,6 +35,9 @@ exports.default = (ctx, options) => {
35
35
  injectComponents(fs, components);
36
36
  injectApis(fs, syncApis, asyncApis);
37
37
  }
38
+ if (thirdPartyComponents) {
39
+ template.mergeThirdPartyComponents(thirdPartyComponents);
40
+ }
38
41
  }
39
42
  });
40
43
  };
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tarojs/plugin-inject",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "description": "Taro 小程序端平台中间层插件",
5
5
  "main": "index.js",
6
6
  "scripts": {
package/src/index.ts CHANGED
@@ -13,6 +13,7 @@ interface IOptions {
13
13
  componentsMap: Record<string, string>
14
14
  syncApis: string[]
15
15
  asyncApis: string[]
16
+ thirdPartyComponents: Record<string, Record<string, any>>
16
17
  }
17
18
 
18
19
  export default (ctx: IPluginContext, options: IOptions) => {
@@ -27,7 +28,8 @@ export default (ctx: IPluginContext, options: IOptions) => {
27
28
  components,
28
29
  syncApis,
29
30
  asyncApis,
30
- componentsMap
31
+ componentsMap,
32
+ thirdPartyComponents
31
33
  } = options
32
34
 
33
35
  const template = platform.template
@@ -61,6 +63,10 @@ export default (ctx: IPluginContext, options: IOptions) => {
61
63
  injectComponents(fs, components)
62
64
  injectApis(fs, syncApis, asyncApis)
63
65
  }
66
+
67
+ if (thirdPartyComponents) {
68
+ template.mergeThirdPartyComponents(thirdPartyComponents)
69
+ }
64
70
  }
65
71
  })
66
72
  }