@@ -92,62 +92,64 @@ package.json 各项含义参考 [这里](http://docs.spmjs.org/en/package), 一
92
92
93
93
``` js
94
94
module .exports = function (grunt ) {
95
- var pkg = grunt .file .readJSON (' package.json' );
96
-
97
- grunt .initConfig ({
98
- pkg: pkg,
99
-
100
- download: {
101
- options: {
102
- dest: ' src'
103
- },
104
- highcharts: {
105
- options: {
106
- transform : function (code ) {
107
- // 根据需要对下载下来的 js 代码进行修改, 大致有以下几点
108
- // - 模块已有依赖的库, 如 jquery, 需要统一 require('$')
109
- // - 如果模块有返回的话, 需要在末尾通过 module.exports 方式返回
110
- // - 有些模块内部有判断 amd / cmd 的逻辑的话, 则无须包裹 define, 直接采用它的即可, 例如 jquery/jquery
111
- return [
112
- ' define(function(require, exports, module) {' ,
113
- ' var previousJQuery = this.jQuery;' ,
114
- " this.jQuery = require('$');" ,
115
- code,
116
- " module.exports = window.Highcharts;" ,
117
- " this.jQuery = previousJQuery;" ,
118
- " });"
119
- ].join (' \n ' );
120
- }
121
- },
122
- // 设置文件所在地址, 版本号替换成变量, 这样之后只需修改 package.json 的版本信息
123
- url: ' https://raw.github.com/highslide-software/highcharts.com/v<%= pkg.version%>/js/highcharts.src.js' ,
124
- // 设置文件名字, 可参考原来源仓库中的名字来
125
- name: ' highcharts.js'
126
- },
127
- // ....
128
- exporting: {
129
- options: {
130
- transform : function (code ) {
131
- return [
132
- ' define(function(require, exports, module) {' ,
133
- code,
134
- " });"
135
- ].join (' \n ' );
136
- }
137
- },
138
- url: ' https://raw.github.com/highslide-software/highcharts.com/v<%= pkg.version%>/js/modules/exporting.src.js' ,
139
- name: ' exporting.js'
140
- }
141
- }
142
- });
95
+ var pkg = grunt .file .readJSON (' package.json' );
96
+
97
+ grunt .initConfig ({
98
+ pkg: pkg,
99
+
100
+ download: {
101
+ options: {
102
+ dest: ' src'
103
+ },
104
+ highcharts: {
105
+ options: {
106
+ transform : function (code ) {
107
+ // 根据需要对下载下来的 js 代码进行修改, 大致有以下几点
108
+ // - 模块已有依赖的库, 如 jquery, 需要统一 require('$')
109
+ // - 如果模块有返回的话, 需要在末尾通过 module.exports 方式返回
110
+ // - 有些模块内部有判断 amd / cmd 的逻辑的话, 则无须包裹 define, 直接采用它的即可, 例如 jquery/jquery
111
+ return [
112
+ ' define(function(require, exports, module) {' ,
113
+ ' var previousJQuery = this.jQuery;' ,
114
+ " this.jQuery = require('$');" ,
115
+ code,
116
+ " module.exports = window.Highcharts;" ,
117
+ " this.jQuery = previousJQuery;" ,
118
+ " });"
119
+ ].join (' \n ' );
120
+ }
121
+ },
122
+ // 设置文件所在地址, 版本号替换成变量, 这样之后只需修改 package.json 的版本信息
123
+ url: ' https://raw.github.com/highslide-software/highcharts.com/v<%= pkg.version%>/js/highcharts.src.js' ,
124
+ // 设置文件名字, 可参考原来源仓库中的名字来
125
+ name: ' highcharts.js'
126
+ },
127
+ // ....
128
+ exporting: {
129
+ options: {
130
+ transform : function (code ) {
131
+ return [
132
+ ' define(function(require, exports, module) {' ,
133
+ code,
134
+ " });"
135
+ ].join (' \n ' );
136
+ }
137
+ },
138
+ url: ' https://raw.github.com/highslide-software/highcharts.com/v<%= pkg.version%>/js/modules/exporting.src.js' ,
139
+ name: ' exporting.js'
140
+ }
141
+ }
142
+ });
143
143
144
- grunt .loadTasks (' ../_tasks/download/tasks' );
145
- grunt .registerTask (' default' , [' download' ]);
146
- };
144
+ grunt .loadGlobalTasks (' spm-build' );
145
+ grunt .util ._ .merge (grunt .config .data , require (' spm-build' ).config );
147
146
147
+ grunt .loadTasks (' ../_tasks/download/tasks' );
148
+ grunt .registerTask (' build' , [' download' , ' spm-build' ]);
149
+ };
148
150
```
149
151
150
- 写完之后, 就可以执行 grunt , 下载对应文件并按照需要修改代码.
152
+ 写完之后, 就可以执行 ` spm build ` , 下载对应文件并按照需要修改代码.
151
153
下载的文件保存在 src/ 下, 可打开看下各个文件是否正确.
152
154
153
155
这个过程, 主要是做了从源仓库中下载 js/css 文件, 并对下载下来的代码进行处理, 比如 js 文件, 可以设置 transform 封装成 `` define(factory) `` 的形式.
0 commit comments