UNPKG

3.28 kBMarkdownView Raw
1# widgetOutputName标签
2
3## 介绍
4
5widgetOutputName可以将页面中引用的`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
36jdf会将各个页面设置的widgetOutputName都生成至./css目录中,因此,如果两个页面的widget不一致,而widgetOutputName同名的话,两个页面就会生成两个不同内容的css文件,就会导致后面生成的文件覆盖前面生成的文件。
37
38从正常开发角度来说,如果两个页面引用了同名css,那么两个页面访问的css内容是一致的。如果想为每个页面单独生成一份独立的文件,请保证页面间widgetOutputName名不一致。如果想为页面引用同一个widgetOutputName,jdf也提供了一个配置选项。
39
40jdf提供在`config.json`文件中配置一个全局widgetOutputName的能力。所有页面均可以引用这个全局widgetOutputName。
41
42config.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
54myPage.html
55
56```
57{%widgetOutputName="globalPureSource" type="js,css" %}
58```
59
60我们在config.json中定义了widgetOutputName字段,同时提供三个控制字段:widgetOutputMode, widgetWhiteList, widgetBlackList来控制全局widgetOutputName的文件生成。
61
62widgetOutputMode这个属性值可选`1|2|3`,1代表合并所有widget,2代表合并widgetWhiteList,3代表合并排除widgetBlackList的其他widget。