Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Guides - Progressive Web Apps #1145

Closed
addyosmani opened this issue Apr 22, 2017 · 14 comments · Fixed by #1737
Closed

Guides - Progressive Web Apps #1145

addyosmani opened this issue Apr 22, 2017 · 14 comments · Fixed by #1737
Assignees

Comments

@addyosmani
Copy link

addyosmani commented Apr 22, 2017

A consistent piece of feedback I hear from teams building PWAs is that Webpack configs are a major pain point. In particular, knowing what Webpack-specific performance best practices (and plugins) to follow are or what to use for patterns like PRPL.

Is there value in us having a dedicated page to this topic in the docs, even if some of it involves linking out to existing docs? 🙃

I might loosely break these up into a few different buckets:

  • "Ship the minimal code to make a page useful"
    • Code-splitting (basic, vendor, aggressive, avoiding module duplication)
    • Using webpack-bundle-analyzer to find and fix low hanging fruit in bundles
    • Staying on top of your perf over time with the Webpack 2.x perf budgets feature
  • "Prioritize resources you know are important"
    • Preload bundles to improve perf with link rel=preload. How to do this manually or with a webpack plugin
    • HTTP/2 Server Push to fill up server think time. We have the aggressive splitting plugin, but nothing Webpack specific I can think of that helps with Push manifest generation. Maybe just directly use https://github.com/GoogleChrome/http2-push-manifest?
  • "Be network resilient!" with Service Workers
    • Offline static asset caching (sw-precache-webpack-plugin, offline-plugin)
  • "Don't double up your parse costs with CSS-in-JavaScript"
    • Use the ExtractTextPlugin to extract CSS into separate files. Avoids 2x memory costs, parse costs and invalidating cachability of JS each time your CSS changes. Some projects (e.g styled components) don't tackle this problem well just yet.
  • "Effectively use the browser cache"
    • Long-term caching (Working around runtime/chunk lookups being moved into the vendor bundle & losing long-term caching on each build/deploy)

Related

We're working on some related scaffolding + PWA pieces over on webpack-cli

References

Some PWA teams have been documenting their Webpack configs in public, like this one. We've also got quite a few Webpack configs in use for the HN apps over here: https://github.com/tastejs/hacker-news-pwas

Wrote about some of this stuff in the PWAs with React series.

Twitter Lite's isn't too different but they're on WP1. They're using DedupePlugin(), OccurrenceOrderPlugin, BundleAnalyzer, CircularDependencyPlugin, StatsPlugin.

@evenstensberg
Copy link
Member

evenstensberg commented Apr 27, 2017

I'd like very much to discuss somewhere how we want to layer the documentation for the CLI. @skipjack. CC-ing @bebraw for input.

Agenda:

  • Where to put documentation
  • What should be included in respective locations ( for instance, PWA in webpack.js and regular documentation in the github repo)
  • What sections to include in the documentation apart from this
  • How to promote best practises for an scaffold

@addyosmani
Copy link
Author

I think there would be a lot of value in that. I'm less familiar with the information architecture for webpack.js.org, but I see general "here are Webpack patterns, plugins and best practices for building a PWA" being a (maybe) top-level guide on https://webpack.js.org/guides/? Under "Progressive Web Apps".

And then the Webpack CLI docs at https://webpack.js.org/api/cli/ (eventually?) being updated to reference webpack-cli as a default as well and the interaction + scaffolding + migration features it exposes more clearly. Right now it seems to just have a callout pointing to the repository. I think it would be interesting to figure out whether any official add-ons/scaffolds also get documented on there.

I'll defer to @bebraw and @skipjack for more nuanced advice.

@skipjack
Copy link
Collaborator

skipjack commented Apr 28, 2017

Ok so as for this issue and the PWA content I think that definitely fits in the guides section (as you suggested @addyosmani). If you'd be interested in submitting a PR to start this guide off, that would be awesome.

@ev1stensberg re the cli the current /content set up is still a bit chaotic but I have a rough plan (laid out here as to a more organized setup). I'm currently working on a PR (#1153) to synchronize the content and routing structure which is kind of a "step one" to getting that plan in action.

As you probably already know, we are pulling content dynamically for loaders and plugins. It sounds like this is what you were thinking about doing with the webpack-cli repo as well so we don't have to document things in two places? In this case I'd say we should either create CLI group of pages within the API section or have it live in under Documentation in it's own section.

Let's talk more offline (maybe the documentation-team slack group?) so this issue can stay dedicated to the PWA discussion. Sorry for the delay on this btw, the last couple days have been very chaotic for me.

@skipjack skipjack changed the title Guide: Progressive Web Apps with Webpack Guides - Progressive Web Apps Jun 14, 2017
@skipjack
Copy link
Collaborator

skipjack commented Nov 25, 2017

@johnnyreilly so actually it probably makes more sense to just discuss here...

So as a quick walkthrough for the existing guides they basically all follow this structure:

  • Use a simpler guide as a base so you don't have to re-document a bunch of setup.
  • Include full diff blocks in each section so it's crystal clear what is changing.
  • Finish up with a simple conclusion that re-iterates what's been done and why.
  • Include any suggestion of next steps either in the conclusion or under the related YAML frontmatter.

Other things to keep in mind:

  • Keep the guide targeted, i.e. keep the config and examples related to the topic at hand. Don't digress into unnecessary additional configuration if it isn't directly related to what's being discussed.
  • Don't duplicate docs. Link to other sections of the documentation instead. Remember that these are guides, not an API/config reference.

That pretty much sums up what we've tried to do with them. There's a few pages at the end of list that still need to be moved or rethought so you should ignore those as you poke around. In terms of your existing content here, the main things I'd say are that we should:

  • Continue using NPM instead of Yarn.
  • Use vanilla JS vs. TypeScript.
  • Exclude the additional HTMLWebpackPlugin minify config unless it's directly related to making the app a PWA.

To that last point, I think stemming from Output Management might make the most sense for your guide as it walks people through the HTMLWebpackPlugin. However, if you feel there's another that would make more sense as a base, that's fine as well.

@johnnyreilly
Copy link
Collaborator

Thanks for this @skipjack - I'll try and take a look at this soon. Pointers appreciated - I may well have questions along the way!

@johnnyreilly
Copy link
Collaborator

johnnyreilly commented Dec 9, 2017

I'm working on this right now @skipjack - (WIP here). I'll send a PR hopefully within the next week or so. I'm following your advice and using Output Management as my starting point.

Feel free to mark this issue as in progress and assign me.

BTW Do you have an idea when you might publish the Medium post I wrote? https://medium.com/@johnny_reilly/148f43e142f9

@skipjack
Copy link
Collaborator

skipjack commented Dec 9, 2017

I'm working on this right now @skipjack - (WIP here). I'll send a PR hopefully within the next week or so. I'm following your advice and using Output Management as my starting point.

Fantastic, thanks again for your help on this.

Feel free to mark this issue as in progress and assign me.

Just sent you a collaborator invite, once you accept I'd be happy to assign you.

BTW Do you have an idea when you might publish the Medium post I wrote?

Not sure, I don't really manage the Medium content but I'll ping @TheLarkInn and ask him to take a look.

@johnnyreilly
Copy link
Collaborator

Cool - thanks!

@evenstensberg
Copy link
Member

evenstensberg commented Dec 17, 2017

@johnnyreilly Would you be interested in creating a webpack-addons pwa? See webpack/webpack-cli#101

@johnnyreilly
Copy link
Collaborator

@ev1stensberg I'm afraid I'm not sure I know what you mean. I've read the linked issue but that hasn't clued me up sufficiently. Could you elaborate please?

skipjack pushed a commit that referenced this issue Dec 18, 2017
Add `progressive-web-application.md` guide which documents how
to use the `workbox-webpack-plugin` to build an offline app. More
on PWAs in webpack can be added here by future contributors.

Resolves #1145
@evenstensberg
Copy link
Member

@johnnyreilly Sure! To make it short: what we'd like, is a scaffold for a PWA that would help people get started fast with PWA's and with best practises,

I can help you to get to know the scaffolding system if you're up for the task 👍

@johnnyreilly
Copy link
Collaborator

@ev1stensberg I'd be interested in learning more about what's involved. I can't say right now that I'll definitely have time for this but I'd certainly consider it if you have the time to take me through the scaffolding system.

@evenstensberg
Copy link
Member

@johnnyreilly Definitely! Would it be okay if we schedule this after christmas?

@johnnyreilly
Copy link
Collaborator

Fine with me!

dear-lizhihua referenced this issue in docschina/webpack.js.org Jan 13, 2018
* update /content/loaders & /content/plugins

* update /content/loaders & /content/plugins

* update /content/loaders & /content/plugins

* update contributors

* update /content/loaders & /content/plugins

* fix LinkDropdown

* 修复 npm 命令错误导致编译不成功的问题

* update /content/loaders & /content/plugins

* update /content/loaders & /content/plugins

* update /content/loaders & /content/plugins

* docs(plugins): fix typo in module-concatenation-plugin.md (#1683)

* docs(concepts): simplify the introduction (#1673)

Make the `index` page more beginner friendly with less technical
lingo and complex details.

Resolves #1416

* docs(plugins): add “scope hoisting” intro in module-concatenation-plugin (#1684)

This adds a link between “concatenation behavior” and “scope hoisting”. Without this, 
a new person might be confused what exactly “scope hoisting” is (because it appears 
without any visible connection to the previous content).

* docs(api): fix some method signatures in loaders.md (#1685)

In actual fact the parameters passed to `emitWarning` / `emitError` must 
be an instance of Error.

* update /content/loaders & /content/plugins

* docs(guides): consistent quoute use in typescript.md (#1687)

* docs(api/guides): document new --concatenate-modules flag (#1686)

Document the new `--concatenate-modules` flag in both the CLI documentation
and production guide. Add section on the `ModuleConcatenationPlugin` in the 
production guide (as we include this plugin under `-p`, it also makes sense to 
mention it in this guide.

* docs(guides): fix issues with examples in shimming.md (#1680)

Rename plugin identifier and require webpack when it is used in the
configuration examples.

* docs(guides): add middleware tip to the hmr guide

Resolves #1682

* Revert "A new --concatenate-modules flag" (#1692)

* update master

* update /content/loaders & /content/plugins

* docs(concepts): fix grammar in output.md (#1694)

* docs(contribute): update writing-a-loader (#1691)

Use normal function instead of arrow function to fix scope in loader
example.

* docs(plugins): add external example in SourceMapDevToolPlugin (#1676)

Demonstrate how one might use the plugin to host source maps externally.

* docs(config): update dev-server open option (#1693)

State the ability to open in specific browser.

* fix bugs

* update /content/loaders & /content/plugins

* docs(api): improve formatting and grammar in loaders.md

* docs(api): clarify fourth parameter of `this.callback` in loaders.md

Add some lead in descriptions to the `Examples` section and clarify that meta
data can be passed along via the fourth parameter to `this.callback` and accepted
as the third parameter to a loader function.

Resolves #1607

* docs(api): populate missing link in loaders.md

* docs(plugins): correct example in html-webpack-plugin (#1698)

* docs(guides): update an example in production.md (#1696)

Switch to shortened form when using the `DefinePlugin` to define the 
`process.env.NODE_ENV` value. This avoids a bug which is mentioned
in the plugin's documentation:

https://webpack.js.org/plugins/define-plugin/#feature-flags

* fix(markdown): fix overflowing inline code (#1701)

Change the css to fix the text inside code tag which was overflowing 
the parent div.

* docs(concepts): update concepts wording (#1702)

Add "static" to "module bundler". Some feedback here was given to me 
on twitter to make sure we are clear with what these terms mean.

* update /content/loaders & /content/plugins

* docs(config): fix dead link to webpack-dev-server example (#1704)

* docs(concepts): use fragment links in usage instructions (#1705)

This is just a quality of life adjustment that updates the list of ways to 
use loaders with fragment links to the relevant section in the docs.  In 
their current state, the section feels like a dead end, abruptly cutting off 
with three bullet points and no examples. While one can read on and 
figure it out, there is a break in focus that is quite distracting.

* docs(guides): add windows usage tip in getting-started (#1671)

* doc(guides): fix grammatical error in build-performance (#1709)

Change "less" to "fewer".

* docs(guides): correct two small typos

* docs(api): remove inadvertent double verb (#1714)

* docs(contribute): fix grammar in writing-a-plugin (#1715)

* docs(config): add semicolon for consistency (#1716)

The final code block was missing a semicolon from the end of the 
first line; added it in to match the other require statements.

* docs(contributing): add note about debian OS (#1721)

Related issue: #1718

* docs(guides): add output example to shimming doc (#1720)

* docs(plugins): use `.includes` over `.indexOf` (#1719)

Really minor but I think `.includes` is more readable to the unfamiliar 
with javascript.

* docs(guides): use `npx` in getting-started (#1708)

Keep the mention the webpack binary's path but use the `npx` utility
now that it ships with Node. Fix some punctuation and grammar. Clarify 
why npm scripts are still useful even over `npx`.

* update /src/content/loaders & /src/content/plugins

* docs(contribute): link compiler docs in writing-a-plugin (#1700)

While authoring plugins the list of hooks is essential knowledge, so a 
link to hooks documentation page should be accessible in the top of 
writing a plugin guide.

* docs(guides): fix `source-map` discrepancy in production.md (#1711)

The `webpack.prod.js` code example in the "Specify the Evironment"
section shows `cheap-module-source-map` for the `devtool` field which is
not recommended for production. This section should show `source-map`
to be consistent with the webpack.prod.js in the previous
"Source Mapping" section.

* docs(guides): rename 'runtime' to 'manifest' in caching.md (#1713)

Preserve CommonsChunkPlugin boilerplate naming consistency as
referenced in the CommonsChunkPlugin documentation (see below)
when extracting webpack runtime and manifest boilerplate.

https://webpack.js.org/plugins/commons-chunk-plugin#manifest-file

* docs(guides): update output to webpack 3.9.1 (#1724)

* docs(plugins): update the source-map-devtool-plugin (#1707)

Clean up formatting a bit and add undocumented options from 
webpack/webpack#5986. Update the external source maps example
to demonstrate path stripping.

* docs(contribute): correct an example in the writers-guide (#1727)

In a section which states the properties must be sorted alphabetically, sort 
the examples alphabetically.

* docs(config): improve formatting and add note about library entry points in output.md

* docs(guides): mention complex entry point configuration in author-libraries

Note that `entry` arrays are not recommended, provide a way to properly expose
stylesheets, and add a link to an `entry` object example.

* docs(config): improve formatting and clarify the string usage in externals

Resolves #1726

* docs(config): fix minor proselint error in externals

* docs(api): clarify the `pitch` method and how it can be used in loaders.md

Resolves #449
Resolves webpack#116

Refactored and enhanced the existing section using much of @sokra's
explanation from:

webpack/webpack#360

* docs(contribute): fix `import` statement in writing-a-loader.md (#1732)

`validateOptions` is exported as a default module.

* docs(config): update devtool production recommendations

* docs(api): remove obsolete cli flag (#1733)

The `--save` option has been removed from webpack's CLI. See the
following pull request for reference:

webpack/webpack#3896

* docs(concepts): add warning about incompatible `import` statements

Resolves #1736

*  docs(config): fix typescript setup in configuration-languages (#1734)

Resolves #1735

* docs: use full `npm install` over `npm i` (#1740)

Most of the guides use the full command, so it's best to stay
consistent.

* docs(guides): fix diff display for webpack.config.js entry object

Resolves #1743

* docs: fix typos

* docs: add tbroadley to contributor lists

* docs(contribute): correct schema example in `writing-a-loader.md` (#1753)

* docs(guides): add pwa guide (#1737)

Add `progressive-web-application.md` guide which documents how
to use the `workbox-webpack-plugin` to build an offline app. More
on PWAs in webpack can be added here by future contributors.

Resolves #1145

* docs(guides): highlight css splitting in production

Resolves #1741

* docs(plugins): use `.includes` over `.indexOf`

Consistent usage of `.includes`

* docs(config): omit invalid `detailed` option in stats.md (#1757)

* fix(mobile): correctly sort pages in mobile sidebar (#1759)

* chore(vote): port voting app, update deps, and simplify config (#1717)

Port the voting app to a it's own repository and expose that section
of the site more prominently (in the header). This commit also...

- Simplifies the webpack config slightly and allows external styles.
- Updates issue template to highlight content from other repositories.
- Updates some outdated dependencies.

* docs(readme): reformat at 80 characters and include browserstack link

By including this, _BrowserStack_ will allow us to do free testing of
the site on their platform.

* refactor(notification): simplify notification message and bump the version

* fix(splash): fix visualization artifacts (#1762)

Rebuild and clean up visualization in Sketch. Include via an
inline SVG rather than an `<img>` tag. Add a `TODO` in regards
to an even cleaner setup post build refactoring.

Resolves #1752

* chore: pick up vote fix and update yarn lock file

* chore(vote): pick up another vote patch

* Update index.md (#423)

* update: git merge -> git rebase

* Update index.md

* Update README.md

* Update .travis.yml

* docs: fix formatting and grammar (#1765)

Fix typos, improve grammar, and change `&nbsp;` to a normal
space character.

* docs(concepts): change loader order from chonological to reverse (#1767)

When one starts to learn about loaders it's very confusing.
[This](https://webpack.js.org/contribute/writing-a-loader/#complex-usage)
explains the behaviour much better.

* update UPDATE.md
dear-lizhihua referenced this issue in docschina/webpack.js.org Jan 13, 2018
* update /content/loaders & /content/plugins

* update /content/loaders & /content/plugins

* update /content/loaders & /content/plugins

* update contributors

* update /content/loaders & /content/plugins

* fix LinkDropdown

* 修复 npm 命令错误导致编译不成功的问题

* update /content/loaders & /content/plugins

* update /content/loaders & /content/plugins

* update /content/loaders & /content/plugins

* docs(plugins): fix typo in module-concatenation-plugin.md (#1683)

* docs(concepts): simplify the introduction (#1673)

Make the `index` page more beginner friendly with less technical
lingo and complex details.

Resolves #1416

* docs(plugins): add “scope hoisting” intro in module-concatenation-plugin (#1684)

This adds a link between “concatenation behavior” and “scope hoisting”. Without this, 
a new person might be confused what exactly “scope hoisting” is (because it appears 
without any visible connection to the previous content).

* docs(api): fix some method signatures in loaders.md (#1685)

In actual fact the parameters passed to `emitWarning` / `emitError` must 
be an instance of Error.

* update /content/loaders & /content/plugins

* docs(guides): consistent quoute use in typescript.md (#1687)

* docs(api/guides): document new --concatenate-modules flag (#1686)

Document the new `--concatenate-modules` flag in both the CLI documentation
and production guide. Add section on the `ModuleConcatenationPlugin` in the 
production guide (as we include this plugin under `-p`, it also makes sense to 
mention it in this guide.

* docs(guides): fix issues with examples in shimming.md (#1680)

Rename plugin identifier and require webpack when it is used in the
configuration examples.

* docs(guides): add middleware tip to the hmr guide

Resolves #1682

* Revert "A new --concatenate-modules flag" (#1692)

* update master

* update /content/loaders & /content/plugins

* docs(concepts): fix grammar in output.md (#1694)

* docs(contribute): update writing-a-loader (#1691)

Use normal function instead of arrow function to fix scope in loader
example.

* docs(plugins): add external example in SourceMapDevToolPlugin (#1676)

Demonstrate how one might use the plugin to host source maps externally.

* docs(config): update dev-server open option (#1693)

State the ability to open in specific browser.

* fix bugs

* update /content/loaders & /content/plugins

* docs(api): improve formatting and grammar in loaders.md

* docs(api): clarify fourth parameter of `this.callback` in loaders.md

Add some lead in descriptions to the `Examples` section and clarify that meta
data can be passed along via the fourth parameter to `this.callback` and accepted
as the third parameter to a loader function.

Resolves #1607

* docs(api): populate missing link in loaders.md

* docs(plugins): correct example in html-webpack-plugin (#1698)

* docs(guides): update an example in production.md (#1696)

Switch to shortened form when using the `DefinePlugin` to define the 
`process.env.NODE_ENV` value. This avoids a bug which is mentioned
in the plugin's documentation:

https://webpack.js.org/plugins/define-plugin/#feature-flags

* fix(markdown): fix overflowing inline code (#1701)

Change the css to fix the text inside code tag which was overflowing 
the parent div.

* docs(concepts): update concepts wording (#1702)

Add "static" to "module bundler". Some feedback here was given to me 
on twitter to make sure we are clear with what these terms mean.

* update /content/loaders & /content/plugins

* docs(config): fix dead link to webpack-dev-server example (#1704)

* docs(concepts): use fragment links in usage instructions (#1705)

This is just a quality of life adjustment that updates the list of ways to 
use loaders with fragment links to the relevant section in the docs.  In 
their current state, the section feels like a dead end, abruptly cutting off 
with three bullet points and no examples. While one can read on and 
figure it out, there is a break in focus that is quite distracting.

* docs(guides): add windows usage tip in getting-started (#1671)

* doc(guides): fix grammatical error in build-performance (#1709)

Change "less" to "fewer".

* docs(guides): correct two small typos

* docs(api): remove inadvertent double verb (#1714)

* docs(contribute): fix grammar in writing-a-plugin (#1715)

* docs(config): add semicolon for consistency (#1716)

The final code block was missing a semicolon from the end of the 
first line; added it in to match the other require statements.

* docs(contributing): add note about debian OS (#1721)

Related issue: #1718

* docs(guides): add output example to shimming doc (#1720)

* docs(plugins): use `.includes` over `.indexOf` (#1719)

Really minor but I think `.includes` is more readable to the unfamiliar 
with javascript.

* docs(guides): use `npx` in getting-started (#1708)

Keep the mention the webpack binary's path but use the `npx` utility
now that it ships with Node. Fix some punctuation and grammar. Clarify 
why npm scripts are still useful even over `npx`.

* update /src/content/loaders & /src/content/plugins

* docs(contribute): link compiler docs in writing-a-plugin (#1700)

While authoring plugins the list of hooks is essential knowledge, so a 
link to hooks documentation page should be accessible in the top of 
writing a plugin guide.

* docs(guides): fix `source-map` discrepancy in production.md (#1711)

The `webpack.prod.js` code example in the "Specify the Evironment"
section shows `cheap-module-source-map` for the `devtool` field which is
not recommended for production. This section should show `source-map`
to be consistent with the webpack.prod.js in the previous
"Source Mapping" section.

* docs(guides): rename 'runtime' to 'manifest' in caching.md (#1713)

Preserve CommonsChunkPlugin boilerplate naming consistency as
referenced in the CommonsChunkPlugin documentation (see below)
when extracting webpack runtime and manifest boilerplate.

https://webpack.js.org/plugins/commons-chunk-plugin#manifest-file

* docs(guides): update output to webpack 3.9.1 (#1724)

* docs(plugins): update the source-map-devtool-plugin (#1707)

Clean up formatting a bit and add undocumented options from 
webpack/webpack#5986. Update the external source maps example
to demonstrate path stripping.

* docs(contribute): correct an example in the writers-guide (#1727)

In a section which states the properties must be sorted alphabetically, sort 
the examples alphabetically.

* docs(config): improve formatting and add note about library entry points in output.md

* docs(guides): mention complex entry point configuration in author-libraries

Note that `entry` arrays are not recommended, provide a way to properly expose
stylesheets, and add a link to an `entry` object example.

* docs(config): improve formatting and clarify the string usage in externals

Resolves #1726

* docs(config): fix minor proselint error in externals

* docs(api): clarify the `pitch` method and how it can be used in loaders.md

Resolves #449
Resolves webpack#116

Refactored and enhanced the existing section using much of @sokra's
explanation from:

webpack/webpack#360

* docs(contribute): fix `import` statement in writing-a-loader.md (#1732)

`validateOptions` is exported as a default module.

* docs(config): update devtool production recommendations

* docs(api): remove obsolete cli flag (#1733)

The `--save` option has been removed from webpack's CLI. See the
following pull request for reference:

webpack/webpack#3896

* docs(concepts): add warning about incompatible `import` statements

Resolves #1736

*  docs(config): fix typescript setup in configuration-languages (#1734)

Resolves #1735

* docs: use full `npm install` over `npm i` (#1740)

Most of the guides use the full command, so it's best to stay
consistent.

* docs(guides): fix diff display for webpack.config.js entry object

Resolves #1743

* docs: fix typos

* docs: add tbroadley to contributor lists

* docs(contribute): correct schema example in `writing-a-loader.md` (#1753)

* docs(guides): add pwa guide (#1737)

Add `progressive-web-application.md` guide which documents how
to use the `workbox-webpack-plugin` to build an offline app. More
on PWAs in webpack can be added here by future contributors.

Resolves #1145

* docs(guides): highlight css splitting in production

Resolves #1741

* docs(plugins): use `.includes` over `.indexOf`

Consistent usage of `.includes`

* docs(config): omit invalid `detailed` option in stats.md (#1757)

* fix(mobile): correctly sort pages in mobile sidebar (#1759)

* chore(vote): port voting app, update deps, and simplify config (#1717)

Port the voting app to a it's own repository and expose that section
of the site more prominently (in the header). This commit also...

- Simplifies the webpack config slightly and allows external styles.
- Updates issue template to highlight content from other repositories.
- Updates some outdated dependencies.

* docs(readme): reformat at 80 characters and include browserstack link

By including this, _BrowserStack_ will allow us to do free testing of
the site on their platform.

* refactor(notification): simplify notification message and bump the version

* fix(splash): fix visualization artifacts (#1762)

Rebuild and clean up visualization in Sketch. Include via an
inline SVG rather than an `<img>` tag. Add a `TODO` in regards
to an even cleaner setup post build refactoring.

Resolves #1752

* chore: pick up vote fix and update yarn lock file

* chore(vote): pick up another vote patch

* Update index.md (#423)

* update: git merge -> git rebase

* Update index.md

* Update README.md

* Update .travis.yml

* docs: fix formatting and grammar (#1765)

Fix typos, improve grammar, and change `&nbsp;` to a normal
space character.

* docs(concepts): change loader order from chonological to reverse (#1767)

When one starts to learn about loaders it's very confusing.
[This](https://webpack.js.org/contribute/writing-a-loader/#complex-usage)
explains the behaviour much better.

* update UPDATE.md

* #422
dear-lizhihua referenced this issue in docschina/webpack.js.org Jan 13, 2018
* update /content/loaders & /content/plugins

* update /content/loaders & /content/plugins

* update /content/loaders & /content/plugins

* update contributors

* update /content/loaders & /content/plugins

* fix LinkDropdown

* 修复 npm 命令错误导致编译不成功的问题

* update /content/loaders & /content/plugins

* update /content/loaders & /content/plugins

* update /content/loaders & /content/plugins

* docs(plugins): fix typo in module-concatenation-plugin.md (#1683)

* docs(concepts): simplify the introduction (#1673)

Make the `index` page more beginner friendly with less technical
lingo and complex details.

Resolves #1416

* docs(plugins): add “scope hoisting” intro in module-concatenation-plugin (#1684)

This adds a link between “concatenation behavior” and “scope hoisting”. Without this, 
a new person might be confused what exactly “scope hoisting” is (because it appears 
without any visible connection to the previous content).

* docs(api): fix some method signatures in loaders.md (#1685)

In actual fact the parameters passed to `emitWarning` / `emitError` must 
be an instance of Error.

* update /content/loaders & /content/plugins

* docs(guides): consistent quoute use in typescript.md (#1687)

* docs(api/guides): document new --concatenate-modules flag (#1686)

Document the new `--concatenate-modules` flag in both the CLI documentation
and production guide. Add section on the `ModuleConcatenationPlugin` in the 
production guide (as we include this plugin under `-p`, it also makes sense to 
mention it in this guide.

* docs(guides): fix issues with examples in shimming.md (#1680)

Rename plugin identifier and require webpack when it is used in the
configuration examples.

* docs(guides): add middleware tip to the hmr guide

Resolves #1682

* Revert "A new --concatenate-modules flag" (#1692)

* update master

* update /content/loaders & /content/plugins

* docs(concepts): fix grammar in output.md (#1694)

* docs(contribute): update writing-a-loader (#1691)

Use normal function instead of arrow function to fix scope in loader
example.

* docs(plugins): add external example in SourceMapDevToolPlugin (#1676)

Demonstrate how one might use the plugin to host source maps externally.

* docs(config): update dev-server open option (#1693)

State the ability to open in specific browser.

* fix bugs

* update /content/loaders & /content/plugins

* docs(api): improve formatting and grammar in loaders.md

* docs(api): clarify fourth parameter of `this.callback` in loaders.md

Add some lead in descriptions to the `Examples` section and clarify that meta
data can be passed along via the fourth parameter to `this.callback` and accepted
as the third parameter to a loader function.

Resolves #1607

* docs(api): populate missing link in loaders.md

* docs(plugins): correct example in html-webpack-plugin (#1698)

* docs(guides): update an example in production.md (#1696)

Switch to shortened form when using the `DefinePlugin` to define the 
`process.env.NODE_ENV` value. This avoids a bug which is mentioned
in the plugin's documentation:

https://webpack.js.org/plugins/define-plugin/#feature-flags

* fix(markdown): fix overflowing inline code (#1701)

Change the css to fix the text inside code tag which was overflowing 
the parent div.

* docs(concepts): update concepts wording (#1702)

Add "static" to "module bundler". Some feedback here was given to me 
on twitter to make sure we are clear with what these terms mean.

* update /content/loaders & /content/plugins

* docs(config): fix dead link to webpack-dev-server example (#1704)

* docs(concepts): use fragment links in usage instructions (#1705)

This is just a quality of life adjustment that updates the list of ways to 
use loaders with fragment links to the relevant section in the docs.  In 
their current state, the section feels like a dead end, abruptly cutting off 
with three bullet points and no examples. While one can read on and 
figure it out, there is a break in focus that is quite distracting.

* docs(guides): add windows usage tip in getting-started (#1671)

* doc(guides): fix grammatical error in build-performance (#1709)

Change "less" to "fewer".

* docs(guides): correct two small typos

* docs(api): remove inadvertent double verb (#1714)

* docs(contribute): fix grammar in writing-a-plugin (#1715)

* docs(config): add semicolon for consistency (#1716)

The final code block was missing a semicolon from the end of the 
first line; added it in to match the other require statements.

* docs(contributing): add note about debian OS (#1721)

Related issue: #1718

* docs(guides): add output example to shimming doc (#1720)

* docs(plugins): use `.includes` over `.indexOf` (#1719)

Really minor but I think `.includes` is more readable to the unfamiliar 
with javascript.

* docs(guides): use `npx` in getting-started (#1708)

Keep the mention the webpack binary's path but use the `npx` utility
now that it ships with Node. Fix some punctuation and grammar. Clarify 
why npm scripts are still useful even over `npx`.

* update /src/content/loaders & /src/content/plugins

* docs(contribute): link compiler docs in writing-a-plugin (#1700)

While authoring plugins the list of hooks is essential knowledge, so a 
link to hooks documentation page should be accessible in the top of 
writing a plugin guide.

* docs(guides): fix `source-map` discrepancy in production.md (#1711)

The `webpack.prod.js` code example in the "Specify the Evironment"
section shows `cheap-module-source-map` for the `devtool` field which is
not recommended for production. This section should show `source-map`
to be consistent with the webpack.prod.js in the previous
"Source Mapping" section.

* docs(guides): rename 'runtime' to 'manifest' in caching.md (#1713)

Preserve CommonsChunkPlugin boilerplate naming consistency as
referenced in the CommonsChunkPlugin documentation (see below)
when extracting webpack runtime and manifest boilerplate.

https://webpack.js.org/plugins/commons-chunk-plugin#manifest-file

* docs(guides): update output to webpack 3.9.1 (#1724)

* docs(plugins): update the source-map-devtool-plugin (#1707)

Clean up formatting a bit and add undocumented options from 
webpack/webpack#5986. Update the external source maps example
to demonstrate path stripping.

* docs(contribute): correct an example in the writers-guide (#1727)

In a section which states the properties must be sorted alphabetically, sort 
the examples alphabetically.

* docs(config): improve formatting and add note about library entry points in output.md

* docs(guides): mention complex entry point configuration in author-libraries

Note that `entry` arrays are not recommended, provide a way to properly expose
stylesheets, and add a link to an `entry` object example.

* docs(config): improve formatting and clarify the string usage in externals

Resolves #1726

* docs(config): fix minor proselint error in externals

* docs(api): clarify the `pitch` method and how it can be used in loaders.md

Resolves #449
Resolves webpack#116

Refactored and enhanced the existing section using much of @sokra's
explanation from:

webpack/webpack#360

* docs(contribute): fix `import` statement in writing-a-loader.md (#1732)

`validateOptions` is exported as a default module.

* docs(config): update devtool production recommendations

* docs(api): remove obsolete cli flag (#1733)

The `--save` option has been removed from webpack's CLI. See the
following pull request for reference:

webpack/webpack#3896

* docs(concepts): add warning about incompatible `import` statements

Resolves #1736

*  docs(config): fix typescript setup in configuration-languages (#1734)

Resolves #1735

* docs: use full `npm install` over `npm i` (#1740)

Most of the guides use the full command, so it's best to stay
consistent.

* docs(guides): fix diff display for webpack.config.js entry object

Resolves #1743

* docs: fix typos

* docs: add tbroadley to contributor lists

* docs(contribute): correct schema example in `writing-a-loader.md` (#1753)

* docs(guides): add pwa guide (#1737)

Add `progressive-web-application.md` guide which documents how
to use the `workbox-webpack-plugin` to build an offline app. More
on PWAs in webpack can be added here by future contributors.

Resolves #1145

* docs(guides): highlight css splitting in production

Resolves #1741

* docs(plugins): use `.includes` over `.indexOf`

Consistent usage of `.includes`

* docs(config): omit invalid `detailed` option in stats.md (#1757)

* fix(mobile): correctly sort pages in mobile sidebar (#1759)

* chore(vote): port voting app, update deps, and simplify config (#1717)

Port the voting app to a it's own repository and expose that section
of the site more prominently (in the header). This commit also...

- Simplifies the webpack config slightly and allows external styles.
- Updates issue template to highlight content from other repositories.
- Updates some outdated dependencies.

* docs(readme): reformat at 80 characters and include browserstack link

By including this, _BrowserStack_ will allow us to do free testing of
the site on their platform.

* refactor(notification): simplify notification message and bump the version

* fix(splash): fix visualization artifacts (#1762)

Rebuild and clean up visualization in Sketch. Include via an
inline SVG rather than an `<img>` tag. Add a `TODO` in regards
to an even cleaner setup post build refactoring.

Resolves #1752

* chore: pick up vote fix and update yarn lock file

* chore(vote): pick up another vote patch

* Update index.md (#423)

* update: git merge -> git rebase

* Update index.md

* Update README.md

* Update .travis.yml

* docs: fix formatting and grammar (#1765)

Fix typos, improve grammar, and change `&nbsp;` to a normal
space character.

* docs(concepts): change loader order from chonological to reverse (#1767)

When one starts to learn about loaders it's very confusing.
[This](https://webpack.js.org/contribute/writing-a-loader/#complex-usage)
explains the behaviour much better.

* update UPDATE.md

* #422

* https://github.com/webpack-china/webpack.js.org/issues/40
dear-lizhihua referenced this issue in docschina/webpack.js.org Jan 13, 2018
* update /content/loaders & /content/plugins

* update /content/loaders & /content/plugins

* update /content/loaders & /content/plugins

* update contributors

* update /content/loaders & /content/plugins

* fix LinkDropdown

* 修复 npm 命令错误导致编译不成功的问题

* update /content/loaders & /content/plugins

* update /content/loaders & /content/plugins

* update /content/loaders & /content/plugins

* docs(plugins): fix typo in module-concatenation-plugin.md (#1683)

* docs(concepts): simplify the introduction (#1673)

Make the `index` page more beginner friendly with less technical
lingo and complex details.

Resolves #1416

* docs(plugins): add “scope hoisting” intro in module-concatenation-plugin (#1684)

This adds a link between “concatenation behavior” and “scope hoisting”. Without this, 
a new person might be confused what exactly “scope hoisting” is (because it appears 
without any visible connection to the previous content).

* docs(api): fix some method signatures in loaders.md (#1685)

In actual fact the parameters passed to `emitWarning` / `emitError` must 
be an instance of Error.

* update /content/loaders & /content/plugins

* docs(guides): consistent quoute use in typescript.md (#1687)

* docs(api/guides): document new --concatenate-modules flag (#1686)

Document the new `--concatenate-modules` flag in both the CLI documentation
and production guide. Add section on the `ModuleConcatenationPlugin` in the 
production guide (as we include this plugin under `-p`, it also makes sense to 
mention it in this guide.

* docs(guides): fix issues with examples in shimming.md (#1680)

Rename plugin identifier and require webpack when it is used in the
configuration examples.

* docs(guides): add middleware tip to the hmr guide

Resolves #1682

* Revert "A new --concatenate-modules flag" (#1692)

* update master

* update /content/loaders & /content/plugins

* docs(concepts): fix grammar in output.md (#1694)

* docs(contribute): update writing-a-loader (#1691)

Use normal function instead of arrow function to fix scope in loader
example.

* docs(plugins): add external example in SourceMapDevToolPlugin (#1676)

Demonstrate how one might use the plugin to host source maps externally.

* docs(config): update dev-server open option (#1693)

State the ability to open in specific browser.

* fix bugs

* update /content/loaders & /content/plugins

* docs(api): improve formatting and grammar in loaders.md

* docs(api): clarify fourth parameter of `this.callback` in loaders.md

Add some lead in descriptions to the `Examples` section and clarify that meta
data can be passed along via the fourth parameter to `this.callback` and accepted
as the third parameter to a loader function.

Resolves #1607

* docs(api): populate missing link in loaders.md

* docs(plugins): correct example in html-webpack-plugin (#1698)

* docs(guides): update an example in production.md (#1696)

Switch to shortened form when using the `DefinePlugin` to define the 
`process.env.NODE_ENV` value. This avoids a bug which is mentioned
in the plugin's documentation:

https://webpack.js.org/plugins/define-plugin/#feature-flags

* fix(markdown): fix overflowing inline code (#1701)

Change the css to fix the text inside code tag which was overflowing 
the parent div.

* docs(concepts): update concepts wording (#1702)

Add "static" to "module bundler". Some feedback here was given to me 
on twitter to make sure we are clear with what these terms mean.

* update /content/loaders & /content/plugins

* docs(config): fix dead link to webpack-dev-server example (#1704)

* docs(concepts): use fragment links in usage instructions (#1705)

This is just a quality of life adjustment that updates the list of ways to 
use loaders with fragment links to the relevant section in the docs.  In 
their current state, the section feels like a dead end, abruptly cutting off 
with three bullet points and no examples. While one can read on and 
figure it out, there is a break in focus that is quite distracting.

* docs(guides): add windows usage tip in getting-started (#1671)

* doc(guides): fix grammatical error in build-performance (#1709)

Change "less" to "fewer".

* docs(guides): correct two small typos

* docs(api): remove inadvertent double verb (#1714)

* docs(contribute): fix grammar in writing-a-plugin (#1715)

* docs(config): add semicolon for consistency (#1716)

The final code block was missing a semicolon from the end of the 
first line; added it in to match the other require statements.

* docs(contributing): add note about debian OS (#1721)

Related issue: #1718

* docs(guides): add output example to shimming doc (#1720)

* docs(plugins): use `.includes` over `.indexOf` (#1719)

Really minor but I think `.includes` is more readable to the unfamiliar 
with javascript.

* docs(guides): use `npx` in getting-started (#1708)

Keep the mention the webpack binary's path but use the `npx` utility
now that it ships with Node. Fix some punctuation and grammar. Clarify 
why npm scripts are still useful even over `npx`.

* update /src/content/loaders & /src/content/plugins

* docs(contribute): link compiler docs in writing-a-plugin (#1700)

While authoring plugins the list of hooks is essential knowledge, so a 
link to hooks documentation page should be accessible in the top of 
writing a plugin guide.

* docs(guides): fix `source-map` discrepancy in production.md (#1711)

The `webpack.prod.js` code example in the "Specify the Evironment"
section shows `cheap-module-source-map` for the `devtool` field which is
not recommended for production. This section should show `source-map`
to be consistent with the webpack.prod.js in the previous
"Source Mapping" section.

* docs(guides): rename 'runtime' to 'manifest' in caching.md (#1713)

Preserve CommonsChunkPlugin boilerplate naming consistency as
referenced in the CommonsChunkPlugin documentation (see below)
when extracting webpack runtime and manifest boilerplate.

https://webpack.js.org/plugins/commons-chunk-plugin#manifest-file

* docs(guides): update output to webpack 3.9.1 (#1724)

* docs(plugins): update the source-map-devtool-plugin (#1707)

Clean up formatting a bit and add undocumented options from 
webpack/webpack#5986. Update the external source maps example
to demonstrate path stripping.

* docs(contribute): correct an example in the writers-guide (#1727)

In a section which states the properties must be sorted alphabetically, sort 
the examples alphabetically.

* docs(config): improve formatting and add note about library entry points in output.md

* docs(guides): mention complex entry point configuration in author-libraries

Note that `entry` arrays are not recommended, provide a way to properly expose
stylesheets, and add a link to an `entry` object example.

* docs(config): improve formatting and clarify the string usage in externals

Resolves #1726

* docs(config): fix minor proselint error in externals

* docs(api): clarify the `pitch` method and how it can be used in loaders.md

Resolves #449
Resolves webpack#116

Refactored and enhanced the existing section using much of @sokra's
explanation from:

webpack/webpack#360

* docs(contribute): fix `import` statement in writing-a-loader.md (#1732)

`validateOptions` is exported as a default module.

* docs(config): update devtool production recommendations

* docs(api): remove obsolete cli flag (#1733)

The `--save` option has been removed from webpack's CLI. See the
following pull request for reference:

webpack/webpack#3896

* docs(concepts): add warning about incompatible `import` statements

Resolves #1736

*  docs(config): fix typescript setup in configuration-languages (#1734)

Resolves #1735

* docs: use full `npm install` over `npm i` (#1740)

Most of the guides use the full command, so it's best to stay
consistent.

* docs(guides): fix diff display for webpack.config.js entry object

Resolves #1743

* docs: fix typos

* docs: add tbroadley to contributor lists

* docs(contribute): correct schema example in `writing-a-loader.md` (#1753)

* docs(guides): add pwa guide (#1737)

Add `progressive-web-application.md` guide which documents how
to use the `workbox-webpack-plugin` to build an offline app. More
on PWAs in webpack can be added here by future contributors.

Resolves #1145

* docs(guides): highlight css splitting in production

Resolves #1741

* docs(plugins): use `.includes` over `.indexOf`

Consistent usage of `.includes`

* docs(config): omit invalid `detailed` option in stats.md (#1757)

* fix(mobile): correctly sort pages in mobile sidebar (#1759)

* chore(vote): port voting app, update deps, and simplify config (#1717)

Port the voting app to a it's own repository and expose that section
of the site more prominently (in the header). This commit also...

- Simplifies the webpack config slightly and allows external styles.
- Updates issue template to highlight content from other repositories.
- Updates some outdated dependencies.

* docs(readme): reformat at 80 characters and include browserstack link

By including this, _BrowserStack_ will allow us to do free testing of
the site on their platform.

* refactor(notification): simplify notification message and bump the version

* fix(splash): fix visualization artifacts (#1762)

Rebuild and clean up visualization in Sketch. Include via an
inline SVG rather than an `<img>` tag. Add a `TODO` in regards
to an even cleaner setup post build refactoring.

Resolves #1752

* chore: pick up vote fix and update yarn lock file

* chore(vote): pick up another vote patch

* Update index.md (#423)

* update: git merge -> git rebase

* Update index.md

* Update README.md

* Update .travis.yml

* docs: fix formatting and grammar (#1765)

Fix typos, improve grammar, and change `&nbsp;` to a normal
space character.

* docs(concepts): change loader order from chonological to reverse (#1767)

When one starts to learn about loaders it's very confusing.
[This](https://webpack.js.org/contribute/writing-a-loader/#complex-usage)
explains the behaviour much better.

* update UPDATE.md

* #422

* https://github.com/webpack-china/webpack.js.org/issues/40

* 您 -> 你 & 统一为:本指南继续沿用[xxx](/guides/xxx)中的代码示例
dear-lizhihua referenced this issue in docschina/webpack.js.org Jan 14, 2018
* update /content/loaders & /content/plugins

* update /content/loaders & /content/plugins

* update /content/loaders & /content/plugins

* update contributors

* update /content/loaders & /content/plugins

* fix LinkDropdown

* 修复 npm 命令错误导致编译不成功的问题

* update /content/loaders & /content/plugins

* update /content/loaders & /content/plugins

* update /content/loaders & /content/plugins

* docs(plugins): fix typo in module-concatenation-plugin.md (#1683)

* docs(concepts): simplify the introduction (#1673)

Make the `index` page more beginner friendly with less technical
lingo and complex details.

Resolves #1416

* docs(plugins): add “scope hoisting” intro in module-concatenation-plugin (#1684)

This adds a link between “concatenation behavior” and “scope hoisting”. Without this, 
a new person might be confused what exactly “scope hoisting” is (because it appears 
without any visible connection to the previous content).

* docs(api): fix some method signatures in loaders.md (#1685)

In actual fact the parameters passed to `emitWarning` / `emitError` must 
be an instance of Error.

* update /content/loaders & /content/plugins

* docs(guides): consistent quoute use in typescript.md (#1687)

* docs(api/guides): document new --concatenate-modules flag (#1686)

Document the new `--concatenate-modules` flag in both the CLI documentation
and production guide. Add section on the `ModuleConcatenationPlugin` in the 
production guide (as we include this plugin under `-p`, it also makes sense to 
mention it in this guide.

* docs(guides): fix issues with examples in shimming.md (#1680)

Rename plugin identifier and require webpack when it is used in the
configuration examples.

* docs(guides): add middleware tip to the hmr guide

Resolves #1682

* Revert "A new --concatenate-modules flag" (#1692)

* update master

* update /content/loaders & /content/plugins

* docs(concepts): fix grammar in output.md (#1694)

* docs(contribute): update writing-a-loader (#1691)

Use normal function instead of arrow function to fix scope in loader
example.

* docs(plugins): add external example in SourceMapDevToolPlugin (#1676)

Demonstrate how one might use the plugin to host source maps externally.

* docs(config): update dev-server open option (#1693)

State the ability to open in specific browser.

* fix bugs

* update /content/loaders & /content/plugins

* docs(api): improve formatting and grammar in loaders.md

* docs(api): clarify fourth parameter of `this.callback` in loaders.md

Add some lead in descriptions to the `Examples` section and clarify that meta
data can be passed along via the fourth parameter to `this.callback` and accepted
as the third parameter to a loader function.

Resolves #1607

* docs(api): populate missing link in loaders.md

* docs(plugins): correct example in html-webpack-plugin (#1698)

* docs(guides): update an example in production.md (#1696)

Switch to shortened form when using the `DefinePlugin` to define the 
`process.env.NODE_ENV` value. This avoids a bug which is mentioned
in the plugin's documentation:

https://webpack.js.org/plugins/define-plugin/#feature-flags

* fix(markdown): fix overflowing inline code (#1701)

Change the css to fix the text inside code tag which was overflowing 
the parent div.

* docs(concepts): update concepts wording (#1702)

Add "static" to "module bundler". Some feedback here was given to me 
on twitter to make sure we are clear with what these terms mean.

* update /content/loaders & /content/plugins

* docs(config): fix dead link to webpack-dev-server example (#1704)

* docs(concepts): use fragment links in usage instructions (#1705)

This is just a quality of life adjustment that updates the list of ways to 
use loaders with fragment links to the relevant section in the docs.  In 
their current state, the section feels like a dead end, abruptly cutting off 
with three bullet points and no examples. While one can read on and 
figure it out, there is a break in focus that is quite distracting.

* docs(guides): add windows usage tip in getting-started (#1671)

* doc(guides): fix grammatical error in build-performance (#1709)

Change "less" to "fewer".

* docs(guides): correct two small typos

* docs(api): remove inadvertent double verb (#1714)

* docs(contribute): fix grammar in writing-a-plugin (#1715)

* docs(config): add semicolon for consistency (#1716)

The final code block was missing a semicolon from the end of the 
first line; added it in to match the other require statements.

* docs(contributing): add note about debian OS (#1721)

Related issue: #1718

* docs(guides): add output example to shimming doc (#1720)

* docs(plugins): use `.includes` over `.indexOf` (#1719)

Really minor but I think `.includes` is more readable to the unfamiliar 
with javascript.

* docs(guides): use `npx` in getting-started (#1708)

Keep the mention the webpack binary's path but use the `npx` utility
now that it ships with Node. Fix some punctuation and grammar. Clarify 
why npm scripts are still useful even over `npx`.

* update /src/content/loaders & /src/content/plugins

* docs(contribute): link compiler docs in writing-a-plugin (#1700)

While authoring plugins the list of hooks is essential knowledge, so a 
link to hooks documentation page should be accessible in the top of 
writing a plugin guide.

* docs(guides): fix `source-map` discrepancy in production.md (#1711)

The `webpack.prod.js` code example in the "Specify the Evironment"
section shows `cheap-module-source-map` for the `devtool` field which is
not recommended for production. This section should show `source-map`
to be consistent with the webpack.prod.js in the previous
"Source Mapping" section.

* docs(guides): rename 'runtime' to 'manifest' in caching.md (#1713)

Preserve CommonsChunkPlugin boilerplate naming consistency as
referenced in the CommonsChunkPlugin documentation (see below)
when extracting webpack runtime and manifest boilerplate.

https://webpack.js.org/plugins/commons-chunk-plugin#manifest-file

* docs(guides): update output to webpack 3.9.1 (#1724)

* docs(plugins): update the source-map-devtool-plugin (#1707)

Clean up formatting a bit and add undocumented options from 
webpack/webpack#5986. Update the external source maps example
to demonstrate path stripping.

* docs(contribute): correct an example in the writers-guide (#1727)

In a section which states the properties must be sorted alphabetically, sort 
the examples alphabetically.

* docs(config): improve formatting and add note about library entry points in output.md

* docs(guides): mention complex entry point configuration in author-libraries

Note that `entry` arrays are not recommended, provide a way to properly expose
stylesheets, and add a link to an `entry` object example.

* docs(config): improve formatting and clarify the string usage in externals

Resolves #1726

* docs(config): fix minor proselint error in externals

* docs(api): clarify the `pitch` method and how it can be used in loaders.md

Resolves #449
Resolves webpack#116

Refactored and enhanced the existing section using much of @sokra's
explanation from:

webpack/webpack#360

* docs(contribute): fix `import` statement in writing-a-loader.md (#1732)

`validateOptions` is exported as a default module.

* docs(config): update devtool production recommendations

* docs(api): remove obsolete cli flag (#1733)

The `--save` option has been removed from webpack's CLI. See the
following pull request for reference:

webpack/webpack#3896

* docs(concepts): add warning about incompatible `import` statements

Resolves #1736

*  docs(config): fix typescript setup in configuration-languages (#1734)

Resolves #1735

* docs: use full `npm install` over `npm i` (#1740)

Most of the guides use the full command, so it's best to stay
consistent.

* docs(guides): fix diff display for webpack.config.js entry object

Resolves #1743

* docs: fix typos

* docs: add tbroadley to contributor lists

* docs(contribute): correct schema example in `writing-a-loader.md` (#1753)

* docs(guides): add pwa guide (#1737)

Add `progressive-web-application.md` guide which documents how
to use the `workbox-webpack-plugin` to build an offline app. More
on PWAs in webpack can be added here by future contributors.

Resolves #1145

* docs(guides): highlight css splitting in production

Resolves #1741

* docs(plugins): use `.includes` over `.indexOf`

Consistent usage of `.includes`

* docs(config): omit invalid `detailed` option in stats.md (#1757)

* fix(mobile): correctly sort pages in mobile sidebar (#1759)

* chore(vote): port voting app, update deps, and simplify config (#1717)

Port the voting app to a it's own repository and expose that section
of the site more prominently (in the header). This commit also...

- Simplifies the webpack config slightly and allows external styles.
- Updates issue template to highlight content from other repositories.
- Updates some outdated dependencies.

* docs(readme): reformat at 80 characters and include browserstack link

By including this, _BrowserStack_ will allow us to do free testing of
the site on their platform.

* refactor(notification): simplify notification message and bump the version

* fix(splash): fix visualization artifacts (#1762)

Rebuild and clean up visualization in Sketch. Include via an
inline SVG rather than an `<img>` tag. Add a `TODO` in regards
to an even cleaner setup post build refactoring.

Resolves #1752

* chore: pick up vote fix and update yarn lock file

* chore(vote): pick up another vote patch

* Update index.md (#423)

* update: git merge -> git rebase

* Update index.md

* Update README.md

* Update .travis.yml

* docs: fix formatting and grammar (#1765)

Fix typos, improve grammar, and change `&nbsp;` to a normal
space character.

* docs(concepts): change loader order from chonological to reverse (#1767)

When one starts to learn about loaders it's very confusing.
[This](https://webpack.js.org/contribute/writing-a-loader/#complex-usage)
explains the behaviour much better.

* update UPDATE.md

* #422

* https://github.com/webpack-china/webpack.js.org/issues/40

* 您 -> 你 & 统一为:本指南继续沿用[xxx](/guides/xxx)中的代码示例

* src/content/guides/progressive-web-application.md 翻译
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants
@addyosmani @johnnyreilly @skipjack @evenstensberg and others