UNPKG

4.13 kBMarkdownView Raw
1<h1 style="font-weight: normal"> 配置 </h1>
2
3<h2 style="font-weight: normal"> ykit.{type}.js 文件示例 </h2>
4
5```js
6exports.config = function() {
7 return {
8 export: [
9 // 项目资源入口
10 './scripts/index.js',
11 './styles/index.scss',
12
13 // 项目资源分组
14 {
15 name: 'common',
16 export: [
17 './common_dir/util.js',
18 './common_dir/common.css'
19 ]
20 }
21 ],
22 modifyWebpackConfig: function(baseConfig) {
23 // 修改 webpack 编译配置
24 // ...
25
26 return baseConfig
27 },
28 sync: {
29 // sync到开发机配置
30 host: "192.168.237.71",
31 path: "/home/q/www/qunarzz.com/#_name"
32 },
33 command: [{
34 name: '#_name_cmd',
35 module: {
36 usage: '项目自定义命令',
37 run: function() {}
38 }
39 }]
40 }
41};
42
43```
44
45<h2 style="font-weight: normal"> 配置项 </h2>
46
47- export - 设置资源入口。与 Fekit 相同,其中所有路径均默认相对于`src`目录,在**本地请求 / 打包阶段**,将会导出至 **prd / dev** 目录。同时也支持设置入口分组,打包时可针对分组进行打包。
48- sync - 设置同步开发机的配置,需要设置开发机的 IP,以及项目要存储的路径。
49- command - 设置项目自定义命令,在项目目录下执行`ykit {cmd}`即可运行。
50
51<h3 style="font-weight: normal"> modifyWebpackConfig </h3>
52
53`modifyWebpackConfig`是一个可选的配置方法,来修改当前默认的 webpack 配置。比如添加新的 webpack 插件,修改某种类型文件的 loader 等等。如果涉及比较复杂的操作(如替换 loader),可使用 **[webpack-merge][2]**
54
55*老版本的 ykit 项目中可能会有 setCompiler 方法,和 modifyWebpackConfig 功能是一样的*
56
57- 示例 - 添加 plugins:
58
59```js
60var self = this;
61return {
62 ...,
63 modifyWebpackConfig: function(baseConfig) {
64 var webpack = self.webpack;
65 var newPlugin = new webpack.DefinePlugin({
66 "process.env": {
67 NODE_ENV: JSON.stringify("production")
68 }
69 })
70
71 baseConfig.plugins.push(newPlugin);
72 return baseConfig;
73 }
74}
75```
76
77- 示例 - 修改 output:
78
79```js
80modifyWebpackConfig: function(baseConfig) {
81 baseConfig.output: {
82 /**
83 * output 是 webpack 中对于编译结果的配置
84 * 在 ykit 中,根据每个环境(local / dev / prd)有特定的编译结果配置
85 * 可以对特定环境下的 output 进行修改或重置
86 */
87
88 local: {
89 // 重置本地 server 环境下配置
90 },
91 dev: baseConfig.output.dev, // 沿用 dev 环境下配置
92 prd: baseConfig.output.prd // 沿用 prd 环境下配置
93 }
94 return baseConfig;
95}
96```
97
98<h2 style="font-weight: normal"> 配置函数上下文 </h2>
99
100业务在 ykit.{type}.js 中的配置函数上下文可以获取到当前的环境信息。
101
102- env: 当前 ykit 的执行环境,分为 `local / dev / prd`,示例:
103
104```js
105var self = this;
106return {
107 ...,
108 modifyWebpackConfig: function(baseConfig) {
109 switch (self.env) {
110 case 'local':
111 // 修改本地环境配置,在 ykit server 中访问项目会生效
112 break;
113 case 'dev':
114 // 修改开发环境配置,在 ykit pack 时生效
115 break;
116 case 'prd':
117 // 修改生产环境配置,在 ykit pack -m 时生效
118 break;
119 default:
120 }
121
122 return baseConfig;
123 }
124}
125```
126
127- webpack: 当前 ykit 内部 webapck,示例:
128
129```js
130var self = this;
131return {
132 ...,
133 modifyWebpackConfig: function(baseConfig) {
134 var webpack = self.webpack;
135 // 调用 webpack 内部插件等
136 return baseConfig;
137 }
138}
139```
140
141[1]: https://webpack.github.io/docs/configuration.html
142[2]: https://github.com/survivejs/webpack-merge