Skip to content

Commit 1cd7176

Browse files
authored
Merge pull request webpack#5 from webpack-china/cn
merge from webpack-china
2 parents 3148449 + 9ef133a commit 1cd7176

40 files changed

+697
-534
lines changed

antwar.config.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ function root(contentCb) {
191191
};
192192
}
193193

194-
function section(title, contentCb) {
194+
function section(title, contentCb, redirects = {}) {
195195
return {
196196
title: title,
197197
path: function() {
@@ -209,7 +209,7 @@ function section(title, contentCb) {
209209
return require('./components/page/page.jsx').default
210210
}
211211
},
212-
redirects: {} // <from>: <to>
212+
redirects: redirects // <from>: <to>
213213
};
214214
}
215215

components/splash-viz/splash-viz-style.scss

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
@import 'functions';
2+
@import 'vars';
23
@import 'mixins';
34

45
.splash-viz {
5-
position:relative;
6-
display:flex;
7-
height:calc(100vh - 55px);
8-
min-height:320px;
9-
max-height:720px;
10-
background:getColor(elephant);
6+
position: relative;
7+
display: flex;
8+
height: calc(100vh - 55px);
9+
min-height: 320px;
10+
max-height: 720px;
11+
background: getColor(elephant);
1112
flex-direction: column;
1213

1314
&__heading {
@@ -28,8 +29,9 @@
2829
right: 0;
2930
top: 0;
3031
bottom: 0;
31-
width: 65vw;
32+
width: 75vw;
3233
min-width: 550px;
34+
max-width: map-get($screens, large);
3335
margin: auto;
3436
display: none;
3537

content/api/cli.md

Lines changed: 115 additions & 117 deletions
Large diffs are not rendered by default.

content/api/loaders.md

Lines changed: 67 additions & 63 deletions
Large diffs are not rendered by default.

content/concepts/loaders.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ module.exports = {
9090
require('style-loader!css-loader?modules!./styles.css');
9191
```
9292

93-
通过前置整个规则及使用 `!`可以覆盖到配置中的任意 loader。
93+
通过前置所有规则及使用 `!`可以对应覆盖到配置中的任意 loader。
9494

9595
选项可以传递查询参数,就像在 web 中那样(`?key=value&foo=bar`)。也可以使用 JSON 对象(`?{"key":"value","foo":"bar"}`)。
9696

@@ -108,24 +108,24 @@ webpack --module-bind jade --module-bind 'css=style!css'
108108

109109
## Loader 特性
110110

111-
* loader 支持链式传递。能够对资源使用流水线( pipeline)。loader 链式按照时间先后顺序进行编译。loader 链中的第一个 loader 返回值给下一个 loader。在最后一个 loader,webpack 按照预期的 JavaScript 返回
111+
* loader 支持链式传递。能够对资源使用流水线(pipeline)。loader 链式地按照先后顺序进行编译。loader 链中的第一个 loader 返回值给下一个 loader。在最后一个 loader,返回 webpack 所预期的 JavaScript。
112112
* loader 可以是同步或异步函数。
113113
* loader 运行在 Node.js 中,并且能够执行任何可能的操作。
114114
* loader 接收查询参数。用于 loader 间传递配置。
115115
* loader 也能够使用 `options` 对象进行配置。
116-
* 除了直接使用 `package.json` `main` 属性,还可以将普通的 npm 模块导出为 loader,做法是在 `package.json` 里定义一个 loader 字段。
117-
* 插件可以给 loader 带来更多功能
116+
* 除了使用 `package.json` 常见的 `main` 属性,还可以将普通的 npm 模块导出为 loader,做法是在 `package.json` 里定义一个 loader 字段。
117+
* 插件(plugin)可以为 loader 带来更多特性
118118
* loader 能够产生额外的任意文件。
119119

120-
loader 通过 loader 预处理函数,为 JavaScript 生态系统提供了更多有力功能。用户现在可以更加灵活的引入细粒度逻辑,例如压缩、打包、语言翻译和[其他更多](/loaders)
120+
loader 通过loader预处理函数,为 JavaScript 生态系统提供了更多有力功能。用户现在可以更加灵活的引入细粒度逻辑,例如压缩(compression)、打包(package)、语言翻译(language translation)和[其他更多](/loaders)
121121

122122
## 解析 Loader
123123

124124
loader 遵循标准的[模块解析](/concepts/module-resolution/)。多数情况下,loader 将从[模块路径](/concepts/module-resolution/#module-paths)(通常将模块路径认为是 `npm install`, `node_modules`)解析。
125125

126-
[如何编写模块?](/development/how-to-write-a-loader)loader 模块需要导出为一个函数,并且使用 Node.js 兼容的 JavaScript 编写。在多数情况下,你会使用 npm 来管理 loader,但是你也可以将应用程序中的文件作为 loader。
126+
[如何编写模块?](/development/how-to-write-a-loader)loader 模块需要导出为一个函数,并且使用 Node.js 兼容的 JavaScript 编写。在通常情况下,你会使用 npm 来管理 loader,但是你也可以将 loader 模块作为应用程序中的文件
127127

128-
按照约定,loader 通常被命名为 `XXX-loader``XXX` 是上下文的名称,例如 `json-loader`
128+
按照约定,loader 通常被命名为 `XXX-loader`其中 `XXX` 是上下文的名称,例如 `json-loader`
129129

130130
loader 的名称约定和优先搜索顺序,由 webpack 配置 API 中的 [`resolveLoader.moduleTemplates`](/configuration/resolve#resolveloader) 定义。
131131

content/concepts/plugins.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@ contributors:
1010

1111
插件是 wepback 的[支柱](https://github.com/webpack/tapable)功能。在你使用 webpack 配置时,webpack 自身也构建于**同样的插件系统**上!
1212

13-
插件目的在于解决 [loader](/concepts/loaders) 无法实现的其他事
13+
插件目的在于解决 [loader](/concepts/loaders) 无法实现的**其他事**
1414

1515
## 剖析
1616

17-
webpack **插件**是一个具有 [`apply`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply) 属性的 JavaScript 对象。 `apply` 属性会被 webpack 解析器(compiler)调用,并且可在整个编译生命周期(compilation lifecycle)访问
17+
webpack **插件**是一个具有 [`apply`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply) 属性的 JavaScript 对象。 `apply` 属性会被 webpack compiler 调用,并且 compiler 对象可在**整个** compilation 生命周期访问
1818

1919

2020
**ConsoleLogOnBuildWebpackPlugin.js**
@@ -26,20 +26,20 @@ function ConsoleLogOnBuildWebpackPlugin() {
2626

2727
ConsoleLogOnBuildWebpackPlugin.prototype.apply = function(compiler) {
2828
compiler.plugin('run', function(compiler, callback) {
29-
console.log("The webpack build process is starting!!!");
29+
console.log("webpack 构建过程开始!!!");
3030

3131
callback();
3232
});
3333
};
3434
```
3535

36-
T> 作为一个聪明的 JavaScript 开发者,你可能还记得 `Function.prototype.apply` 方法。通过这个方法你可以把任意函数作为插件传递(`this` 将指向 `compiler`)。你可以在你的配置中使用内联样式的自定义插件
36+
T> 作为一个聪明的 JavaScript 开发者,你可能还记得 `Function.prototype.apply` 方法。通过这个方法你可以把任意函数作为插件传递(`this` 将指向 `compiler`)。你可以在配置中使用这样的方式来内联自定义插件
3737

3838
## 用法
3939

40-
由于**插件**可以接收参数/选项,你必须在wepback配置中,向 `plugins` 属性传入 `new` 实例。
40+
由于 **plugin** 可以携带参数/选项,你必须在 wepback 配置中,向 `plugins` 属性传入 `new` 实例。
4141

42-
基于您如何使用 webpack,有多种使用插件的方式
42+
根据你如何使用 webpack,这里有多种方式使用插件
4343

4444
### 配置
4545

@@ -91,7 +91,7 @@ module.exports = config;
9191
});
9292
```
9393

94-
T> 你知道吗:以上看到的例子和 [webpack 本身运行时](https://github.com/webpack/webpack/blob/e7087ffeda7fa37dfe2ca70b5593c6e899629a2c/bin/webpack.js#L290-L292)极其类似。[wepback 源码](https://github.com/webpack/webpack)中隐藏有大量使用示例,你可以应用到自己的配置和脚本中
94+
T> 你知道吗:以上看到的示例和 [webpack 自身运行时(runtime)](https://github.com/webpack/webpack/blob/e7087ffeda7fa37dfe2ca70b5593c6e899629a2c/bin/webpack.js#L290-L292) 极其类似。[wepback 源码](https://github.com/webpack/webpack)中隐藏有大量使用示例,你可以用在自己的配置和脚本中
9595

9696
***
9797

content/configuration/dev-server.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ content is served from dist/
3838

3939
这将给出一些背景知识,就能知道服务器的访问位置,并且知道服务已启动。
4040

41-
如果你通过 Node.js API 来使用 dev-server, `devServer` 中的选项将被忽略。将选项作为第二个参数传入: `new WebpackDevServer(compiler, {...})`
41+
如果你通过 Node.js API 来使用 dev-server, `devServer` 中的选项将被忽略。将选项作为第二个参数传入: `new WebpackDevServer(compiler, {...})`关于如何通过 Node.js API 使用 webpack-dev-server 的示例,请[查看此处](https://github.com/webpack/webpack-dev-server/blob/master/examples/node-api-simple/server.js)
4242

4343

4444
## `devServer.clientLogLevel`

content/configuration/environment.md

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
---
2+
title: 环境(Environment)
3+
contributors:
4+
- simon04
5+
---
6+
7+
最终,你会发现需要在[开发](/guides/development)[生产构建](/guides/production-build)之间,消除 `webpack.config.js` 的差异。你(至少)需要两个选项:
8+
9+
## 使用 `--env`
10+
11+
webpack CLI 支持通过 `--cli` 指定构建环境键(build environment key)(如 `--env.production``--env.platform=web`)。要使用这些设置,请将 `webpack.config.js` 中的配置对象(configuration object)更改为一个函数:
12+
13+
```diff
14+
-module.exports = {
15+
+module.exports = function(env) {
16+
+ return {
17+
plugins: [
18+
new webpack.optimize.UglifyJsPlugin({
19+
+ compress: env.production // 只在生产环境构建时压缩
20+
})
21+
]
22+
+ };
23+
};
24+
```
25+
26+
## 使用环境变量
27+
28+
或者,可以使用 Node.js 中的标准方式:在运行 webpack 时设置环境变量,并且使用 Node.js 的 [`process.env`](https://nodejs.org/api/process.html#process_process_env) 引用变量。`NODE_ENV` 变量通常被视为事实标准(查看[这里](https://dzone.com/articles/what-you-should-know-about-node-env))。
29+
30+
**webpack.config.js**
31+
```diff
32+
module.exports = {
33+
plugins: [
34+
new webpack.optimize.UglifyJsPlugin({
35+
+ compress: process.env.NODE_ENV === 'production'
36+
})
37+
]
38+
};
39+
```
40+
41+
使用 [`cross-env`](https://www.npmjs.com/package/cross-env) 包来跨平台设置(cross-platform-set)环境变量:
42+
43+
**package.json**
44+
```json
45+
{
46+
"scripts": {
47+
"build": "cross-env NODE_ENV=production PLATFORM=web webpack"
48+
}
49+
}
50+
```
51+
52+
## References
53+
* https://blog.flennik.com/the-fine-art-of-the-webpack-2-config-dc4d19d7f172#.297u8iuz1

content/configuration/external-configs.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ contributors:
77
- tarang9211
88
---
99

10-
webpack lets you define you configuration files in any language. The list of supported file extensions can be found at the [node-interpret](https://github.com/js-cli/js-interpret) package. webpack with the help of [node-interpret](https://github.com/js-cli/js-interpret) will run your configuration through the language of your choice.
10+
webpack 允许使用任意语言定义配置文件。文件扩展支持列表 [node-interpret](https://github.com/js-cli/js-interpret) 包中找到。webpack 将通过你选择的语言运行你的配置。
1111

12-
For example if you use **coffeescript**, your file would be as follows:
12+
例如,如果你使用 **coffeescript**,你的文件将如下所示:
1313

1414
**webpack.config.coffee**
1515

content/configuration/module.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ parser: {
140140
amd: false, // 禁用 AMD
141141
commonjs: false, // 禁用 CommonJS
142142
system: false, // 禁用 SystemJS
143-
harmony: false, // 禁用 ES6 Harmony import/export
143+
harmony: false, // 禁用 ES2015 Harmony import/export
144144
requireInclude: false, // 禁用 require.include
145145
requireEnsure: false, // 禁用 require.ensure
146146
requireContext: false, // 禁用 require.context

content/configuration/plugins.md

Lines changed: 34 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ contributors:
1212

1313
`array`
1414

15-
A list of webpack plugins. For example, when multiple bundles share some of the same dependencies, the `CommonsChunkPlugin` could be useful to extract those dependencies into a shared bundle to avoid duplication. This could be added like so:
15+
webpack 插件列表。例如,当多个 bundle 共享一些相同的依赖,`CommonsChunkPlugin` 有助于提取这些依赖到共享的 bundle 中,来避免重复打包。可以像这样添加:
1616

1717
```js
1818
plugins: [
@@ -22,9 +22,40 @@ plugins: [
2222
]
2323
```
2424

25-
A more complex example, using multiple plugins, might look something like this:
25+
一个复杂示例,使用多个插件,可能看起来就像这样:
26+
```js
27+
// 导入非 webpack 默认自带插件
28+
var ExtractTextPlugin = require('extract-text-webpack-plugin');
29+
var DashboardPlugin = require('webpack-dashboard/plugin');
2630

27-
?> Add a more detailed example
31+
// 在配置中添加插件
32+
plugins: [
33+
// 构建优化插件
34+
new webpack.optimize.CommonsChunkPlugin({
35+
name: 'vendor',
36+
filename: 'vendor-[hash].min.js',
37+
}),
38+
new webpack.optimize.UglifyJsPlugin({
39+
minimize: true,
40+
compress: {
41+
warnings: false,
42+
drop_console: false,
43+
}
44+
}),
45+
new ExtractTextPlugin({
46+
filename: 'build.min.css',
47+
allChunks: true,
48+
}),
49+
new webpack.IgnorePlugin(/^\.\/locale$/, [/moment$/]),
50+
// 编译时(compile time)插件
51+
new webpack.DefinePlugin({
52+
'process.env.NODE_ENV': '"production"',
53+
}),
54+
// webpack-dev-server 强化插件
55+
new DashboardPlugin(),
56+
new webpack.HotModuleReplacementPlugin(),
57+
]
58+
```
2859

2960
***
3061

0 commit comments

Comments
 (0)