1 | # widgetOutputName标签
|
2 |
|
3 | ## 介绍
|
4 |
|
5 | widgetOutputName可以将页面中引用的`widget的js/css`内容合并,并在js文件夹或css文件夹中生成指定名称(myOutputName)的js/css文件,这样页面针对widget就只会引入一个资源文件。在服务器没有部署combo服务,或者前端需要频繁改动css文件时特别有用。
|
6 |
|
7 | ## 示例
|
8 |
|
9 | ```
|
10 | page1.html page1.html(jdf output --debug)
|
11 | +-------------------------------------+ +----------------------------------+
|
12 | | head | | head |
|
13 | | link.href=jdf/unit/2.0.0/base.css | | link.href=jdf/unit/2.0.0/base.css|
|
14 | | /head | | link.href=../css/myPureSource.css|
|
15 | | body | | /head |
|
16 | | {%widget="pureWidget1"%} | | body |
|
17 | | {%widget="pureWidget2"%} +->| |
|
18 | | {%widget="pureWidget3"%} | | script.src=../js/myPureSource.js |
|
19 | | {%widgetOutputName="myPureSource" %}| | /body |
|
20 | | /body | | |
|
21 | | | | |
|
22 | | | | |
|
23 | +-------------------------------------+ +----------------------------------+
|
24 | ```
|
25 |
|
26 | 如果给widgetOutputName指定type属性(css或js),那么只会将对应的type合并成myPureSource文件并引入。比如:
|
27 |
|
28 | ```
|
29 | {%widgetOutputName="myPureSource" type="css" %}
|
30 | ```
|
31 |
|
32 | 那么生成的页面就只会引用myPureSource.css,而不会引用myPureSource.js,js依旧引用widget中的js。
|
33 |
|
34 | ## 如何在多个页面引用同一个widgetOutputName?
|
35 |
|
36 | jdf会将各个页面设置的widgetOutputName都生成至./css目录中,因此,如果两个页面的widget不一致,而widgetOutputName同名的话,两个页面就会生成两个不同内容的css文件,就会导致后面生成的文件覆盖前面生成的文件。
|
37 |
|
38 | 从正常开发角度来说,如果两个页面引用了同名css,那么两个页面访问的css内容是一致的。如果想为每个页面单独生成一份独立的文件,请保证页面间widgetOutputName名不一致。如果想为页面引用同一个widgetOutputName,jdf也提供了一个配置选项。
|
39 |
|
40 | jdf提供在`config.json`文件中配置一个全局widgetOutputName的能力。所有页面均可以引用这个全局widgetOutputName。
|
41 |
|
42 | config.json
|
43 |
|
44 | ```
|
45 | {
|
46 | "projectPath": "myProject",
|
47 | "widgetOutputName": "globalPureSource",
|
48 | "widgetOutputMode": 2, // 1: all widgets|2: white list|3: black list
|
49 | "widgetWhiteList": ["pureWidget1", "pureWidget3"],
|
50 | "widgetBlackList": ["pureWidget1", "pureWidget3"],
|
51 | }
|
52 | ```
|
53 |
|
54 | myPage.html
|
55 |
|
56 | ```
|
57 | {%widgetOutputName="globalPureSource" type="js,css" %}
|
58 | ```
|
59 |
|
60 | 我们在config.json中定义了widgetOutputName字段,同时提供三个控制字段:widgetOutputMode, widgetWhiteList, widgetBlackList来控制全局widgetOutputName的文件生成。
|
61 |
|
62 | widgetOutputMode这个属性值可选`1|2|3`,1代表合并所有widget,2代表合并widgetWhiteList,3代表合并排除widgetBlackList的其他widget。
|