@@ -17,6 +17,7 @@ contributors:
1717 - maxloh
1818 - snitin315
1919 - f3ndot
20+ - Yucohny
2021translators :
2122 - QC-L
2223 - jacob-lcs
@@ -27,7 +28,7 @@ T> 本指南继续沿用 [管理输出](/guides/output-management) 指南中的
2728
2829如果你一直跟随之前的指南,应该对一些 webpack 基础知识有着很扎实的理解。在我们继续之前,先来看看如何设置一个开发环境,使我们的开发体验变得更轻松一些。
2930
30- W> 本指南中的工具** 仅用于开发环境** ,请** 不要** 在生产环境中使用它们!
31+ W> 本指南中的工具 ** 仅用于开发环境** ,请 ** 不要** 在生产环境中使用它们!
3132
3233在开始前,我们先将 [ ` mode ` 设置为 ` 'development' ` ] ( /configuration/mode/#mode-development ) ,并将 ` title ` 设置为 ` 'Development' ` 。
3334
@@ -59,13 +60,13 @@ W> 本指南中的工具**仅用于开发环境**,请**不要**在生产环境
5960
6061## 使用 source map $#using-source-maps$
6162
62- 当 webpack 打包源代码时,可能会很难追踪到 error(错误) 和 warning(警告) 在源代码中的原始位置。例如,如果将三个源文件(` a.js ` , ` b.js ` 和 ` c.js ` )打包到一个 bundle(` bundle.js ` )中,而其中一个源文件包含一个错误 ,那么堆栈跟踪就会直接指向到 ` bundle.js ` 。你可能需要准确地知道错误来自于哪个源文件 ,所以这种提示这通常不会提供太多帮助。
63+ 当 webpack 打包源代码时,可能会很难追踪到 error(错误) 和 warning(警告) 在源代码中的原始位置。例如,如果将三个源文件(` a.js ` , ` b.js ` 和 ` c.js ` )打包到一个 bundle(` bundle.js ` )中,而其中一个源文件包含错误 ,那么堆栈跟踪就会直接指向到 ` bundle.js ` 。但是你可能需要准确地知道错误来自于哪个源文件 ,所以这种提示这通常不会提供太多帮助。
6364
64- 为了更容易地追踪 error 和 warning,JavaScript 提供了 [ source maps ] ( http://blog.teamtreehouse.com/introduction-source-maps ) 功能,可以将编译后的代码映射回原始源代码。如果一个错误来自于 ` b.js ` , source map 就会明确的告诉你 。
65+ 为了更容易地追踪 error 和 warning,JavaScript 提供了 [ source map ] ( http://blog.teamtreehouse.com/introduction-source-maps ) 功能,可以将编译后的代码映射回原始源代码。source map 会直接告诉你错误来源于哪一个源代码 。
6566
66- source map 有许多 [ 可用选项] ( /configuration/devtool ) ,请务必仔细阅读它们,以便可以根据需要进行配置 。
67+ source map 有许多 [ 可用选项] ( /configuration/devtool ) ,请务必仔细阅读它们,以便根据需要进行配置 。
6768
68- 对于本指南 ,我们将使用 ` inline-source-map ` 选项,这有助于解释说明示例意图(此配置仅用于示例,不要用于生产环境):
69+ 在本指南中 ,我们将使用 ` inline-source-map ` 选项,这有助于解释说明示例意图(此配置仅用于示例,不要用于生产环境):
6970
7071** webpack.config.js**
7172
@@ -93,7 +94,7 @@ source map 有许多 [可用选项](/configuration/devtool),请务必仔细阅
9394 };
9495```
9596
96- 现在,让我们来做一些调试, 在 ` print.js ` 文件中生成一个错误 :
97+ 现在让我们来试试: 在 ` print.js ` 文件中故意编写有问题的代码 :
9798
9899** src/print.js**
99100
@@ -120,34 +121,34 @@ cacheable modules 530 KiB
120121webpack 5.4.0 compiled successfully in 706 ms
121122```
122123
123- 现在,在浏览器中打开生成的 ` index.html ` 文件,点击按钮,并且在控制台查看显示的错误。错误应该如下 :
124+ 现在,在浏览器中打开生成的 ` index.html ` 文件,点击按钮后控制台将会报错。错误信息应该如下 :
124125
125126``` bash
126127Uncaught ReferenceError: cosnole is not defined
127128 at HTMLButtonElement.printMe (print.js:2)
128129```
129130
130- 我们可以看到 ,此错误包含有发生错误的文件(` print.js ` )和行号(2)的引用。这是非常有帮助的,因为现在我们可以确切地知道,所要解决问题的位置 。
131+ 可以看到 ,此错误包含有发生错误的文件(` print.js ` )和行号(2)的引用。这将帮助我们确切知道所要解决问题的位置 。
131132
132133## 选择一个开发工具 $#choosing-a-development-tool$
133134
134- W> 某些文本编辑器具有 " safe write( 安全写入)" 功能,可能会干扰下面一些工具。阅读 [ 调整文本编辑器] ( #adjusting-your-text-editor ) 以解决这些问题。
135+ W> 某些文本编辑器具有“ safe write( 安全写入)” 功能,可能会干扰下面一些工具。阅读 [ 调整文本编辑器] ( #adjusting-your-text-editor ) 以解决这些问题。
135136
136137在每次编译代码时,手动运行 ` npm run build ` 会显得很麻烦。
137138
138139webpack 提供几种可选方式,帮助你在代码发生变化后自动编译代码:
139140
140- 1 . webpack's [ Watch Mode] ( /configuration/watch/#watch )
141+ 1 . webpack 的 [ Watch Mode(观察模式) ] ( /configuration/watch/#watch )
1411422 . [ webpack-dev-server] ( https://github.com/webpack/webpack-dev-server )
1421433 . [ webpack-dev-middleware] ( https://github.com/webpack/webpack-dev-middleware )
143144
144- 多数场景中,你可能需要使用 ` webpack-dev-server ` ,但是不妨探讨一下以上的所有选项。
145+ 在多数场景中可能会使用 ` webpack-dev-server ` ,但是不妨探讨一下以上的所有选项。
145146
146- ### 使用 watch mode(观察模式) $#using-watch-mode$
147+ ### 使用观察模式 $#using-watch-mode$
147148
148- 你可以指示 webpack "watch" 依赖图中所有文件的更改。如果其中一个文件被更新,代码将被重新编译,所以你不必再去手动运行整个构建 。
149+ 你可以指示 webpack “观察” 依赖图中所有文件的更改。如果其中一个文件被更新,代码将被重新编译,所以不必再去手动运行整个构建 。
149150
150- 我们添加一个用于启动 webpack watch mode 的 npm scripts:
151+ 像下面这样添加一个用于启动 webpack 观察模式的 npm scripts:
151152
152153** package.json**
153154
@@ -176,10 +177,10 @@ webpack 提供几种可选方式,帮助你在代码发生变化后自动编译
176177 }
177178```
178179
179- 现在,你可以在命令行中运行 ` npm run watch ` ,然后就会看到 webpack 是如何编译代码 。
180- 然而,你会发现并没有退出命令行。这是因为此 script 当前还在 watch 你的文件 。
180+ 现在,你可以在命令行中运行 ` npm run watch ` ,然后就会看到 webpack 是如何编译代码的 。
181+ 然而,你会发现它并没有退出命令行,这是因为该脚本当前还在观察你的文件 。
181182
182- 现在,webpack 观察文件的同时,先移除我们之前加入的错误 :
183+ 现在,在 webpack 仍在观察文件的同时,移除我们之前加入的错误 :
183184
184185** src/print.js**
185186
@@ -190,19 +191,19 @@ webpack 提供几种可选方式,帮助你在代码发生变化后自动编译
190191 }
191192```
192193
193- 现在,保存文件并检查 terminal(终端) 窗口。 应该可以看到 webpack 自动地重新编译修改后的模块!
194+ 现在,保存文件并检查 terminal(终端)窗口, 应该可以看到 webpack 自动地重新编译修改后的模块!
194195
195- 唯一的缺点是,为了看到修改后的实际效果,你需要刷新浏览器 。如果能够自动刷新浏览器就更好了,因此接下来我们会尝试通过 ` webpack-dev-server ` 实现此功能。
196+ 唯一的缺点是,为了看到修改后的实际效果,需要手动刷新浏览器 。如果能够自动刷新浏览器就更好了!接下来我们会尝试通过 ` webpack-dev-server ` 实现此功能。
196197
197198### 使用 webpack-dev-server $#using-webpack-dev-server$
198199
199- ` webpack-dev-server ` 为你提供了一个基本的 web server,并且具有 live reloading(实时重新加载) 功能 。设置如下:
200+ ` webpack-dev-server ` 提供了一个基本的 web server,并具有实时重新加载的功能 。设置如下:
200201
201202``` bash
202203npm install --save-dev webpack-dev-server
203204```
204205
205- 修改配置文件,告知 dev server,从什么位置查找文件 :
206+ 接下来修改配置文件,告诉 dev server 应从什么位置开始查找文件 :
206207
207208** webpack.config.js**
208209
@@ -236,15 +237,15 @@ npm install --save-dev webpack-dev-server
236237 };
237238```
238239
239- 以上配置告知 ` webpack-dev-server ` ,将 ` dist ` 目录下的文件 serve 到 ` localhost:8080 ` 下。 (译注:serve,将资源作为 server 的可访问文件)
240+ 以上配置告知 ` webpack-dev-server ` ,将 ` dist ` 目录下的文件 serve 到 ` localhost:8080 ` 下(译注:serve 意即将资源作为 server 的可访问文件)。
240241
241- T> 因为在这个示例中单个 HTML 页面有多个入口,所以添加了 ` optimization.runtimeChunk: 'single' ` 配置。没有这个配置的话,我们可能会遇到 [ 这个问题] ( https://bundlers.tooling.report/code-splitting/multi-entry/ ) 。 查看 [ 代码分割] ( /guides/code-splitting/ ) 章节获取更多细节 。
242+ T> 由于在这个示例中单个 HTML 页面有多个入口,所以添加了 ` optimization.runtimeChunk: 'single' ` 配置,否则可能会遇到 [ 这个问题] ( https://bundlers.tooling.report/code-splitting/multi-entry/ ) 。查看 [ 代码分割] ( /guides/code-splitting/ ) 章节了解更多细节 。
242243
243- T> ` webpack-dev-server ` 会从 [ ` output.path ` ] ( /configuration/output/#outputpath ) 中定义的目录中的 bundle 文件提供服务,即文件将可以通过 ` http://[devServer.host]:[devServer.port]/[output.publicPath]/[output.filename] ` 进行访问。
244+ T> ` webpack-dev-server ` 会从 [ ` output.path ` ] ( /configuration/output/#outputpath ) 中定义的目录中的 bundle 文件提供服务,即文件可以通过 ` http://[devServer.host]:[devServer.port]/[output.publicPath]/[output.filename] ` 进行访问。
244245
245- W> webpack-dev-server 在编译之后不会写入到任何输出文件。 而是将 bundle 文件保留在内存中,然后将它们 serve 到 server 中,就好像它们是挂载在 server 根路径上的真实文件一样。如果你的页面希望在其他不同路径中找到 bundle 文件,则可以通过 dev server 配置中的 [ ` devMiddleware.publicPath ` ] ( /configuration/dev-server/#devserverdevmiddleware ) 选项进行修改。
246+ W> ` webpack-dev-server ` 在编译之后不会写入到任何输出文件, 而是将 bundle 文件保留在内存中,然后将它们 serve 到 server 中,就好像它们是挂载在 server 根路径上的真实文件一样。如果你的页面希望在其他不同路径中找到 bundle 文件,可以通过 dev server 配置中的 [ ` devMiddleware.publicPath ` ] ( /configuration/dev-server/#devserverdevmiddleware ) 选项进行修改。
246247
247- 我们添加一个可以直接运行 dev server 的 script:
248+ 添加一个可以直接运行 dev server 的 script:
248249
249250** package.json**
250251
@@ -275,23 +276,23 @@ W> webpack-dev-server 在编译之后不会写入到任何输出文件。而是
275276 }
276277```
277278
278- 现在,在命令行中运行 ` npm start ` ,我们会看到浏览器自动加载页面 。如果你更改任何源文件并保存它们,web server 将在编译代码后自动重新加载。试试看!
279+ 现在,在命令行中运行 ` npm start ` ,会看到浏览器自动加载页面 。如果你更改任何源文件并保存它们,web server 将在编译代码后自动重新加载。试试看!
279280
280281` webpack-dev-server ` 具有许多可配置的选项。关于其他更多配置,请查看 [ 配置文档] ( /configuration/dev-server ) 。
281282
282- T> 现在,server 正在运行,你可能需要尝试 [ 模块热替换( hot module replacement) ] ( /guides/hot-module-replacement ) !
283+ T> 现在,server 正在运行,你可能需要尝试 [ 模块热替换( hot module replacement) ] ( /guides/hot-module-replacement ) !
283284
284285### 使用 webpack-dev-middleware $#using-webpack-dev-middleware$
285286
286- ` webpack-dev-middleware ` 是一个封装器( wrapper) ,它可以把 webpack 处理过的文件发送到一个 server。` webpack-dev-server ` 在内部使用了它,然而它也可以作为一个单独的 package 来使用 ,以便根据需求进行更多自定义设置。下面是一个 webpack-dev-middleware 配合 express server 的示例。
287+ ` webpack-dev-middleware ` 是一个封装器( wrapper) ,它可以把 webpack 处理过的文件发送到 server。` webpack-dev-server ` 在内部使用了它,然而它也可以作为一个单独的 package 使用 ,以便根据需求进行更多自定义设置。下面是一个 ` webpack-dev-middleware ` 配合 express server 的示例。
287288
288289首先,安装 ` express ` 和 ` webpack-dev-middleware ` :
289290
290291``` bash
291292npm install --save-dev express webpack-dev-middleware
292293```
293294
294- 现在,我们需要调整 webpack 配置文件,以确保 middleware( 中间件) 功能能够正确启用:
295+ 现在,我们需要调整 webpack 配置文件,以确保 middleware( 中间件) 功能能够正确启用:
295296
296297** webpack.config.js**
297298
@@ -323,7 +324,7 @@ npm install --save-dev express webpack-dev-middleware
323324 };
324325```
325326
326- 我们将会在 server 脚本使用 ` publicPath ` ,以确保文件资源能够正确地 serve 在 ` http://localhost:3000 ` 下,稍后我们会指定 port number(端口号) 。接下来是设置自定义 ` express ` server:
327+ 我们将会在 server 脚本使用 ` publicPath ` ,以确保文件资源能够正确地 serve 在 ` http://localhost:3000 ` 下,稍后我们会指定端口号 。接下来是设置自定义 ` express ` server:
327328
328329** project**
329330
@@ -365,7 +366,7 @@ app.listen(3000, function () {
365366});
366367```
367368
368- 现在,添加一个 npm script,以使我们更方便地运行 server:
369+ 现在,添加一个 npm script,以使更方便地运行 server:
369370
370371** package.json**
371372
@@ -399,7 +400,7 @@ app.listen(3000, function () {
399400 }
400401```
401402
402- 现在,在 terminal(终端) 中执行 ` npm run server ` ,将会有类似如下信息输出:
403+ 现在,在终端执行 ` npm run server ` ,将会有类似如下信息输出:
403404
404405``` bash
405406Example app listening on port 3000!
@@ -421,20 +422,20 @@ Example app listening on port 3000!
421422< i> [webpack-dev-middleware] Compiled successfully.
422423```
423424
424- 现在,打开浏览器,访问 ` http://localhost:3000 ` 。 应该看到 webpack 应用程序已经运行!
425+ 现在,打开浏览器,访问 ` http://localhost:3000 ` , 应该看到 webpack 应用程序已经运行!
425426
426- T> 如果想要了解更多关于模块热替换(hot module replacement)的运行机制,我们推荐你查看 [ 模块热替换(hot module replacement) ] ( /guides/hot-module-replacement/ ) 指南。
427+ T> 如果想要了解更多关于模块热替换的运行机制,我们推荐你参阅 [ 模块热替换] ( /guides/hot-module-replacement/ ) 指南。
427428
428429## 调整文本编辑器 $#adjusting-your-text-editor$
429430
430- 使用自动编译代码时,可能会在保存文件时遇到一些问题。某些编辑器具有 " safe write( 安全写入)" 功能,会影响重新编译。
431+ 使用自动编译代码时,可能会在保存文件时遇到一些问题。某些编辑器具有“ safe write( 安全写入)” 功能,会影响重新编译。
431432
432433在一些常见的编辑器中禁用此功能,查看以下列表:
433434
434- - ** Sublime Text 3** :在用户首选项( user preferences) 中添加 ` atomic_save: 'false' ` 。
435- - ** JetBrains IDEs (e.g. WebStorm) ** :在 ` Preferences > Appearance & Behavior > System Settings ` 中取消选中 " Use safe write" 。
436- - ** Vim** :在设置(settings)中增加 ` :set backupcopy=yes ` 。
435+ - ** Sublime Text 3** :在“用户首选项( user preferences)” 中添加 ` atomic_save: 'false' ` 。
436+ - ** JetBrains IDE(如 WebStorm) ** :在 ` Preferences > Appearance & Behavior > System Settings ` 中取消选中“使用安全写入( Use safe write)” 。
437+ - ** Vim** :在设置中增加 ` :set backupcopy=yes ` 。
437438
438- ## 结论 $#conclusion$
439+ ## 总结 $#conclusion$
439440
440- 现在,你已经学会了如何自动编译代码,并运行一个简单的 development server, 查看下一个指南,其中将介绍 [ 代码分割(Code Splitting)] ( /guides/code-splitting/ ) 。
441+ 现在,你已经学会了如何自动编译代码,并运行一个简单的开发环境 server。 查看下一个指南,学习 [ 代码分割(Code Splitting)] ( /guides/code-splitting/ ) 。
0 commit comments