├── CNAME ├── .eslintignore ├── assets ├── cc-by.png ├── favicon.ico ├── ag-grid-logo.png ├── language │ ├── .DS_Store │ ├── chinese.png │ └── english.png ├── geomanist-medium.woff ├── geomanist-medium.woff2 ├── icon-square-small-slack.png ├── icon-square-small.svg ├── icon-square-big.svg ├── site-logo.svg ├── logo-on-dark-bg.svg ├── logo-on-white-bg.svg └── github-logo.svg ├── components ├── vote │ ├── list-style.scss │ ├── influence-style.scss │ ├── list.jsx │ ├── button │ │ └── button-style.scss │ └── influence.jsx ├── container │ ├── container-style.scss │ └── container.jsx ├── logo │ ├── logo-style.scss │ └── logo.jsx ├── site │ ├── site-style.scss │ └── site.jsx ├── sidebar │ ├── sidebar-style.scss │ └── sidebar.jsx ├── starter-kits │ ├── starter-kits-style.scss │ └── starter-kits.jsx ├── link │ └── link.jsx ├── splash │ ├── splash-style.scss │ └── splash.jsx ├── page-links │ ├── page-links-style.scss │ └── page-links.jsx ├── page │ ├── page-style.scss │ └── page.jsx ├── sponsors │ ├── sponsors-style.scss │ └── sponsors.jsx ├── support │ ├── support-additional.json │ ├── support-style.scss │ └── support.jsx ├── gitter │ ├── gitter-style.scss │ └── gitter.jsx ├── organization │ ├── organization-style.scss │ └── organization.jsx ├── contributors │ ├── contributors.jsx │ └── contributors-style.scss ├── cube │ └── cube-style.scss ├── notification-bar │ ├── notification-bar-style.scss │ └── notification-bar.jsx ├── splash-viz │ ├── splash-viz.jsx │ └── splash-viz-style.scss ├── text-rotater │ ├── text-rotater-style.scss │ └── text-rotater.jsx ├── dropdown │ ├── dropdown-style.scss │ └── dropdown.jsx ├── footer │ ├── footer-style.scss │ └── footer.jsx ├── sidebar-item │ ├── sidebar-item-style.scss │ └── sidebar-item.jsx ├── sidebar-mobile │ └── sidebar-mobile-style.scss └── navigation │ └── search-style.scss ├── content ├── api │ ├── plugins │ │ ├── dependency.md │ │ ├── template.md │ │ ├── module-factories.md │ │ ├── parser.md │ │ ├── resolver.md │ │ ├── tapable.md │ │ └── index.md │ └── index.md ├── analyze.md ├── guides │ ├── compatibility.md │ ├── build-performance.md │ ├── index.md │ ├── environment-variables.md │ ├── task-test-runner.md │ ├── installation.md │ ├── public-path.md │ ├── code-splitting.md │ ├── code-splitting-css.md │ ├── tree-shaking.md │ └── dependency-management.md ├── plugins │ ├── min-chunk-size-plugin.md │ ├── no-emit-on-errors-plugin.md │ ├── ignore-plugin.md │ ├── banner-plugin.md │ ├── hot-module-replacement-plugin.md │ ├── limit-chunk-count-plugin.md │ ├── loader-options-plugin.md │ ├── provide-plugin.md │ ├── index.md │ ├── html-webpack-plugin.md │ ├── source-map-dev-tool-plugin.md │ ├── normal-module-replacement-plugin.md │ ├── define-plugin.md │ ├── context-replacement-plugin.md │ └── environment-plugin.md ├── development │ ├── index.md │ └── release-process.md ├── concepts │ ├── dependency-graph.md │ ├── targets.md │ ├── modules.md │ ├── plugins.md │ └── manifest.md ├── index.md ├── configuration │ ├── configuration-languages.md │ ├── entry-context.md │ ├── target.md │ ├── watch.md │ ├── plugins.md │ ├── configuration-types.md │ └── performance.md ├── license.md ├── writers-guide.md └── support │ └── index.md ├── scripts ├── deploy_key.enc ├── fetch_starter_kits.js ├── deploy_key.pub ├── fetch_supporters.js ├── fetch.sh ├── fetch_package_names.js ├── check-links.js └── deploy.sh ├── .babelrc ├── .gitignore ├── styles ├── icon.font.js ├── fonts.scss ├── partials │ ├── _functions.scss │ ├── _mixins.scss │ └── _vars.scss ├── icon.template.hbs ├── icons │ ├── stack-overflow.svg │ ├── medium.svg │ ├── vertical-bar.svg │ ├── chevron-down.svg │ ├── chevron-left.svg │ ├── chevron-right.svg │ ├── chevron-up.svg │ ├── menu.svg │ ├── github.svg │ ├── link.svg │ ├── edit.svg │ ├── cross.svg │ ├── magnifying-glass.svg │ ├── exit-right.svg │ └── gitter.svg ├── homepage.scss ├── reset.css ├── index.scss └── prism-theme.scss ├── .github ├── ISSUE_TEMPLATE.md ├── PULL_REQUEST_TEMPLATE.md └── CONTRIBUTING.md ├── .travis.yml ├── .markdownlint.json ├── .alexrc ├── bootstrap.js ├── .editorconfig ├── utilities ├── test-local-storage.js └── highlight.js ├── .eslintrc ├── README.md └── template.ejs /CNAME: -------------------------------------------------------------------------------- 1 | webpack.js.org 2 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | build/ 2 | antwar.config.js 3 | -------------------------------------------------------------------------------- /assets/cc-by.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/functions/webpack.js.org/master/assets/cc-by.png -------------------------------------------------------------------------------- /assets/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/functions/webpack.js.org/master/assets/favicon.ico -------------------------------------------------------------------------------- /components/vote/list-style.scss: -------------------------------------------------------------------------------- 1 | @import 'vars'; 2 | @import 'mixins'; 3 | @import 'functions'; 4 | 5 | -------------------------------------------------------------------------------- /content/api/plugins/dependency.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Dependency 3 | sort: 7 4 | --- 5 | 6 | > TODO 7 | -------------------------------------------------------------------------------- /assets/ag-grid-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/functions/webpack.js.org/master/assets/ag-grid-logo.png -------------------------------------------------------------------------------- /content/analyze.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Analyze Tool 3 | --- 4 | 5 | Analyze content should go here. 6 | 7 | -------------------------------------------------------------------------------- /scripts/deploy_key.enc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/functions/webpack.js.org/master/scripts/deploy_key.enc -------------------------------------------------------------------------------- /assets/language/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/functions/webpack.js.org/master/assets/language/.DS_Store -------------------------------------------------------------------------------- /assets/geomanist-medium.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/functions/webpack.js.org/master/assets/geomanist-medium.woff -------------------------------------------------------------------------------- /assets/language/chinese.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/functions/webpack.js.org/master/assets/language/chinese.png -------------------------------------------------------------------------------- /assets/language/english.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/functions/webpack.js.org/master/assets/language/english.png -------------------------------------------------------------------------------- /assets/geomanist-medium.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/functions/webpack.js.org/master/assets/geomanist-medium.woff2 -------------------------------------------------------------------------------- /assets/icon-square-small-slack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/functions/webpack.js.org/master/assets/icon-square-small-slack.png -------------------------------------------------------------------------------- /content/api/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: API 3 | sort: 1 4 | --- 5 | 6 | * [CLI](/api/cli) 7 | * [Node](/api/node) 8 | * [Loaders](/api/loaders) 9 | * [Plugins](/api/plugins) 10 | -------------------------------------------------------------------------------- /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | "env", 4 | "react" 5 | ], 6 | "plugins": [ 7 | "transform-object-rest-spread", 8 | "transform-class-properties" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /components/container/container-style.scss: -------------------------------------------------------------------------------- 1 | @import 'vars'; 2 | @import 'mixins'; 3 | 4 | .container { 5 | width: 100%; 6 | max-width: map-get($screens, large); 7 | margin: 0 auto; 8 | } 9 | -------------------------------------------------------------------------------- /components/logo/logo-style.scss: -------------------------------------------------------------------------------- 1 | .logo { 2 | float:left; 3 | width:auto; 4 | height:35px; 5 | opacity:0.9; 6 | transition:opacity 250ms; 7 | 8 | &:hover { 9 | opacity:1; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /components/logo/logo.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import Logo from '../../assets/site-logo.svg'; 3 | 4 | export default () => { 5 | return ( 6 | 7 | ); 8 | }; 9 | -------------------------------------------------------------------------------- /components/site/site-style.scss: -------------------------------------------------------------------------------- 1 | .site { 2 | display: flex; 3 | flex-direction: column; 4 | min-height: 100vh; 5 | overflow: hidden; 6 | 7 | &.nav-displayed { 8 | height: 100vh; 9 | } 10 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | npm-debug.log 3 | build 4 | generated 5 | components/support/support-backers.json 6 | components/support/support-sponsors.json 7 | components/starter-kits/starter-kits-data.json 8 | .antwar 9 | -------------------------------------------------------------------------------- /styles/icon.font.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | files: [ 3 | './icons/*.svg' 4 | ], 5 | fontName: 'icons', 6 | cssTemplate: './icon.template.hbs', 7 | fixedWidth: true, 8 | types: [ 'woff' ] 9 | }; 10 | -------------------------------------------------------------------------------- /styles/fonts.scss: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: 'Geomanist'; 3 | src: url('../assets/geomanist-medium.woff2') format('woff2'), 4 | url('../assets/geomanist-medium.woff') format('woff'); 5 | font-weight: 600; 6 | font-style: normal; 7 | } -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 1. Check the existing issues to see if you can find something matching to your request. 2 | 2. If you didn't find a relevant issue, go ahead and open a new one. It's better to make small typo fixes and such directly as pull requests. 3 | -------------------------------------------------------------------------------- /content/guides/compatibility.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Handling Compatibility 3 | --- 4 | 5 | ?> require.main 6 | 7 | ?> require.cache 8 | 9 | ?> module.loaded 10 | 11 | ?> global 12 | 13 | ?> process 14 | 15 | ?> __dirname 16 | 17 | ?> __filename 18 | 19 | ?> module.id 20 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | branches: 2 | only: 3 | - master 4 | - develop 5 | language: node_js 6 | node_js: 7 | - "6" 8 | script: 9 | - bash ./scripts/deploy.sh 10 | sudo: required 11 | install: 12 | - npm install --global yarn 13 | - yarn 14 | - sudo pip install proselint 15 | -------------------------------------------------------------------------------- /components/container/container.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | export default (props = {}) => { 4 | let { className = '' } = props; 5 | 6 | return ( 7 |
8 | { props.children } 9 |
10 | ); 11 | }; 12 | -------------------------------------------------------------------------------- /styles/partials/_functions.scss: -------------------------------------------------------------------------------- 1 | // Custom functions 2 | 3 | @import 'vars'; 4 | @import '~modularscale-sass/stylesheets/modular-scale'; 5 | 6 | @function getFontSize($step) { 7 | @return ms($step, 16px, $minor-third) 8 | } 9 | 10 | @function getColor($name) { 11 | @return map-get($colors, $name); 12 | } 13 | -------------------------------------------------------------------------------- /.markdownlint.json: -------------------------------------------------------------------------------- 1 | { 2 | "default": true, 3 | "MD002": false, 4 | "MD007": { "indent": 4 }, 5 | "MD013": { "line_length": 600 }, 6 | "MD026": false, 7 | "MD029": { "style": "ordered"}, 8 | "MD033": false, 9 | "MD034": false, 10 | "MD036": false, 11 | "MD041": false, 12 | "no-hard-tabs": false, 13 | "whitespace": false 14 | } -------------------------------------------------------------------------------- /components/vote/influence-style.scss: -------------------------------------------------------------------------------- 1 | @import 'mixins'; 2 | @import 'functions'; 3 | 4 | .influence-info { 5 | em { 6 | font-weight: bolder; 7 | } 8 | 9 | i { 10 | font-style: italic; 11 | } 12 | 13 | &__section { 14 | padding: 0.5em 0; 15 | @include break(medium) { 16 | padding: 0 .5em; 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /content/plugins/min-chunk-size-plugin.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: MinChunkSizePlugin 3 | contributors: 4 | sort: 1 5 | --- 6 | 7 | Keep chunk size above the specified limit by merging chunks that are smaller than the `minChunkSize`. 8 | 9 | ``` js 10 | new webpack.optimize.MinChunkSizePlugin({ 11 | minChunkSize: 10000 // Minimum number of characters 12 | }) 13 | ``` 14 | -------------------------------------------------------------------------------- /components/sidebar/sidebar-style.scss: -------------------------------------------------------------------------------- 1 | @import 'vars'; 2 | @import 'mixins'; 3 | 4 | .sidebar { 5 | display: none; 6 | width: 100%; 7 | max-height: 100%; 8 | overflow: auto; 9 | will-change: transform; 10 | 11 | @include break { 12 | display: block; 13 | } 14 | } 15 | 16 | .sidebar__inner { 17 | padding: 1.5em; 18 | overflow: hidden; 19 | } 20 | -------------------------------------------------------------------------------- /.alexrc: -------------------------------------------------------------------------------- 1 | { 2 | "allow": [ 3 | "bigger", 4 | "color", 5 | "lies", 6 | "execute", 7 | "executed", 8 | "execution", 9 | "host-hostess", 10 | "disabled", 11 | "crash", 12 | "failure", 13 | "period", 14 | "hook", 15 | "dirty", 16 | "host-hostess", 17 | "fire", 18 | "remains", 19 | "jade", 20 | "failed" 21 | ] 22 | } -------------------------------------------------------------------------------- /content/development/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Development 3 | contributors: 4 | - rouzbeh84 5 | --- 6 | 7 | These guides cover what you need to know in order to develop webpack. 8 | 9 | * [Release Process](./release-process) 10 | * [Plugin Patterns](./plugin-patterns) 11 | * [How To Write A Plugin](./how-to-write-a-plugin) 12 | * [How To Write A Loader](./how-to-write-a-loader) 13 | -------------------------------------------------------------------------------- /styles/icon.template.hbs: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: "{{fontName}}"; 3 | src: {{{src}}}; 4 | } 5 | 6 | [class*="icon-"] { 7 | line-height: 1; 8 | } 9 | 10 | [class*="icon-"]:before { 11 | font-family: {{fontName}} !important; 12 | font-style: normal; 13 | font-weight: normal !important; 14 | } 15 | 16 | {{#each codepoints}} 17 | .icon-{{@key}}:before { 18 | content: "\\{{this}}"; 19 | } 20 | {{/each}} -------------------------------------------------------------------------------- /styles/icons/stack-overflow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /styles/icons/medium.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /bootstrap.js: -------------------------------------------------------------------------------- 1 | const antwar = require('antwar'); 2 | 3 | const environment = process.env.npm_lifecycle_event || 'build'; 4 | 5 | // Patch Babel env to make HMR switch work 6 | process.env.BABEL_ENV = environment; 7 | 8 | antwar[environment]({ 9 | environment, 10 | antwar: require('./antwar.config'), 11 | webpack: require('./webpack.config') 12 | }).catch(function (err) { 13 | console.error(err); 14 | 15 | process.exit(1); 16 | }); 17 | -------------------------------------------------------------------------------- /components/starter-kits/starter-kits-style.scss: -------------------------------------------------------------------------------- 1 | @import 'functions'; 2 | 3 | .starter-kits { 4 | flex: 1 1 auto; 5 | padding: 1.5em; 6 | } 7 | 8 | .starter-kits__tag { 9 | display: inline-block; 10 | font-size: getFontSize(-1); 11 | font-weight: 600; 12 | line-height: 1.5em; 13 | margin: 0 0.25em 0.25em; 14 | padding: 0 0.5em; 15 | border-radius: 0.25em; 16 | color: getColor(white); 17 | background: getColor(malibu); 18 | } 19 | -------------------------------------------------------------------------------- /content/guides/build-performance.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Improving Build Performance 3 | --- 4 | 5 | ?> incremental builds 6 | 7 | ?> profile 8 | 9 | ?> analyse tool 10 | 11 | ?> dirty chunks ([chunkhash]) 12 | 13 | ?> source maps 14 | 15 | ?> PrefetchPlugin 16 | 17 | ?> resolving 18 | 19 | ?> DllPlugin 20 | 21 | [Development Tools](/guides/development/#choosing-a-tool) 22 | 23 | > see also [resolving](/concepts/module-resolution/#resolving-rules-in-webpack) 24 | -------------------------------------------------------------------------------- /content/guides/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Guides 3 | --- 4 | 5 | This section contains guides for understanding and mastering the wide variety of tools and features that webpack offers. The first is a simple guide that takes you through [installation](/guides/installation). 6 | 7 | The guides get progressively more advanced as you go on. Most serve as a starting point, and once completed you should feel more comfortable diving into the actual [documentation](/configuration). 8 | -------------------------------------------------------------------------------- /scripts/fetch_starter_kits.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | const fs = require('fs'); 3 | const toolList = require('tool-list'); 4 | 5 | const data = toolList.startersWithTag('webpack'); 6 | const body = JSON.stringify(data); 7 | 8 | fs.writeFile('./components/starter-kits/starter-kits-data.json', body, err => { 9 | if (err) { 10 | console.error('Failed to write starter kits file: ', err); 11 | 12 | } else console.log('Fetched 1 file: starter-kits-data.json'); 13 | }); 14 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # Top-most EditorConfig file 2 | root = true 3 | 4 | # Set default charset 5 | [*.{js}] 6 | charset = utf-8 7 | 8 | [*] 9 | trim_trailing_whitespace = true 10 | insert_final_newline = true 11 | 12 | # 4 space indentation 13 | [*.{md,js,jsx,scss,hbs}] 14 | indent_style = space 15 | indent_size = 2 16 | 17 | # Format Config 18 | [{package.json,.alexrc,babelrc,.eslintignore,.eslintrc,.markdownlint.json,.proselintrc}] 19 | indent_style = space 20 | indent_size = 2 21 | -------------------------------------------------------------------------------- /utilities/test-local-storage.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Test if localStorage is enabled. 3 | * 4 | * {@link https://github.com/Modernizr/Modernizr/blob/master/feature-detects/storage/localstorage.js} 5 | * @return {undefined|bool} Returns false on error. 6 | */ 7 | module.exports = function() { 8 | const test = "localStorageTest"; 9 | try { 10 | localStorage.setItem(test, test); 11 | localStorage.removeItem(test); 12 | } catch (e) { 13 | return false; 14 | } 15 | }; 16 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 1. [Read and sign the CLA](https://cla.js.foundation/webpack/webpack.js.org). This needs to be done only once. PRs that haven't signed it won't be accepted. 2 | 2. Make sure your PR complies with [the writer's guide](https://webpack.js.org/writers-guide/). 3 | 3. Read through the PR diff carefully as sometimes this can reveal issues. The work will be reviewed, but this can save some effort. 4 | 4. Remove these instructions from your PR as they are for your eyes only. 5 | -------------------------------------------------------------------------------- /styles/homepage.scss: -------------------------------------------------------------------------------- 1 | .homepage { 2 | &__left, 3 | &__right { 4 | width: 100%; 5 | float: left; 6 | 7 | @include break { 8 | width: 50%; 9 | padding: 0 15px; 10 | } 11 | } 12 | 13 | &__wrap { 14 | display: block; 15 | 16 | @include break { 17 | margin: 0 -30px; 18 | } 19 | 20 | &:before, 21 | &:after { 22 | content: " "; 23 | display: table; 24 | } 25 | 26 | &:after { 27 | clear: both; 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /components/link/link.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import startsWith from 'lodash/startsWith'; 3 | 4 | let RRouter; 5 | if (__DEV__) { 6 | RRouter = require('react-router'); 7 | } 8 | 9 | export default ({ to, ...props }) => { 10 | if (startsWith(to, 'http') || startsWith(to, '//')) { 11 | return ; 12 | } 13 | 14 | if (__DEV__) { 15 | return ; 16 | } 17 | 18 | return ; 19 | }; 20 | -------------------------------------------------------------------------------- /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "eslint:recommended", 5 | 6 | "parser": "babel-eslint", 7 | 8 | "env": { 9 | "browser": true, 10 | "es6": true, 11 | "node": true 12 | }, 13 | 14 | "plugins": [ 15 | "markdown" 16 | ], 17 | 18 | "globals": { 19 | "__DEV__": true 20 | }, 21 | 22 | "rules": { 23 | "no-undef": 2, 24 | "no-unreachable": 2, 25 | "no-unused-vars": 0, 26 | "no-console": 0, 27 | "semi": ["error", "always"] 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /styles/partials/_mixins.scss: -------------------------------------------------------------------------------- 1 | @mixin break ($size: medium) { 2 | @media (min-width: map-get($screens, $size)) { 3 | @content; 4 | } 5 | } 6 | 7 | @mixin control-overflow { 8 | overflow: hidden; 9 | white-space: nowrap; 10 | text-overflow: ellipsis; 11 | } 12 | 13 | @mixin fontantialias ($on) { 14 | @if $on == true { 15 | -webkit-font-smoothing: antialiased; 16 | -moz-osx-font-smoothing: grayscale; 17 | } 18 | @else { 19 | -webkit-font-smoothing: subpixel-antialiased; 20 | -moz-osx-font-smoothing: auto; 21 | } 22 | } -------------------------------------------------------------------------------- /components/splash/splash-style.scss: -------------------------------------------------------------------------------- 1 | @import 'functions'; 2 | @import 'mixins'; 3 | 4 | .splash { 5 | &__section { 6 | position:relative; 7 | text-align:center; 8 | 9 | &--dark { 10 | background-color:#f3f3f3; 11 | } 12 | 13 | .container { 14 | padding:5em 1em; 15 | 16 | @include break { 17 | padding-left:1.5em; 18 | padding-right:1.5em; 19 | } 20 | } 21 | 22 | pre { 23 | text-align:left; 24 | } 25 | 26 | .icon-link { 27 | display:none; 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /components/page-links/page-links-style.scss: -------------------------------------------------------------------------------- 1 | @import 'mixins'; 2 | @import 'functions'; 3 | 4 | .page-links { 5 | position: absolute; 6 | display: none; 7 | top: 1.5em; 8 | right: 1.5em; 9 | font-size: getFontSize(-1); 10 | font-weight: 600; 11 | text-transform: uppercase; 12 | 13 | &__gap { 14 | margin: 0 1em; 15 | } 16 | 17 | &__link { 18 | display: inline-flex; 19 | } 20 | 21 | &__icon { 22 | align-self: center; 23 | font-size: 0.9em; 24 | margin-left: 0.5em; 25 | } 26 | 27 | @include break { 28 | display: block; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /components/page/page-style.scss: -------------------------------------------------------------------------------- 1 | @import 'mixins'; 2 | @import 'functions'; 3 | 4 | .page { 5 | position: relative; 6 | flex: 1 0 auto; 7 | display: flex; 8 | } 9 | 10 | // XXX: Temporary hack to fix sidebar width 11 | .page > div:first-of-type { 12 | display: none; 13 | position: relative; 14 | overflow: hidden; 15 | 16 | @include break { 17 | display: block; 18 | flex: 0 0 280px; 19 | } 20 | } 21 | 22 | .page__content { 23 | flex: 1 1 auto; 24 | overflow-x: hidden; 25 | padding: 1.5em 1em; 26 | 27 | @media break { 28 | flex: 3; 29 | padding: 1.5em; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /components/sponsors/sponsors-style.scss: -------------------------------------------------------------------------------- 1 | @import 'functions'; 2 | @import 'mixins'; 3 | 4 | .sponsors { 5 | position: fixed; 6 | display: none; 7 | width: 250px; 8 | margin-top: 1.5em; 9 | margin-left: calc(-250px - 1.5em); 10 | padding: 0 1.5em; 11 | flex-wrap: wrap; 12 | justify-content: center; 13 | align-items: flex-start; 14 | align-content: flex-start; 15 | border-right: 1px solid getColor(concrete); 16 | overflow: hidden; 17 | transition: background-color 250ms; 18 | 19 | &:hover { 20 | background-color: getColor(concrete); 21 | } 22 | 23 | @include break(xlarge) { 24 | display: flex; 25 | } 26 | } -------------------------------------------------------------------------------- /assets/icon-square-small.svg: -------------------------------------------------------------------------------- 1 | icon-square-small 2 | -------------------------------------------------------------------------------- /assets/icon-square-big.svg: -------------------------------------------------------------------------------- 1 | icon-square-big 2 | -------------------------------------------------------------------------------- /components/support/support-additional.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name": "MoonMail", 4 | "tier": "sponsor", 5 | "avatar": "https://static.moonmail.io/moonmail-logo.svg", 6 | "website": "https://moonmail.io/?utm_source=webpack.js.org", 7 | "totalDonations": 11000 8 | }, 9 | { 10 | "name": "Google Angular", 11 | "tier": "sponsor", 12 | "avatar": "https://res.cloudinary.com/opencollective/image/upload/v1485288529/angular_uxllte.png", 13 | "website": "https://angular.io/", 14 | "totalDonations": 250000 15 | }, 16 | { 17 | "name": "Architects.io", 18 | "tier": "sponsor", 19 | "avatar": null, 20 | "website": "http://architects.io/", 21 | "totalDonations": 30000 22 | } 23 | ] 24 | -------------------------------------------------------------------------------- /components/gitter/gitter-style.scss: -------------------------------------------------------------------------------- 1 | @import 'vars'; 2 | @import 'mixins'; 3 | @import 'functions'; 4 | 5 | .gitter { 6 | float: right; 7 | } 8 | 9 | .gitter__button { 10 | position: fixed; 11 | display: none; 12 | padding: 1em; 13 | bottom: 1.5em; 14 | margin-left: -3.25em; 15 | border-radius: 100%; 16 | background: #59bcb7; 17 | cursor: pointer; 18 | will-change: transform; 19 | transition: background 250ms; 20 | 21 | &:hover { 22 | background: darken(#59bcb7, 10%); 23 | } 24 | 25 | @include break { 26 | display: block; 27 | } 28 | } 29 | 30 | .gitter__icon { 31 | display: block; 32 | font-size: 1.25em; 33 | height: 1em; 34 | overflow: hidden; 35 | color: getColor(white); 36 | } 37 | -------------------------------------------------------------------------------- /scripts/deploy_key.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDGpHVwGQCrfjaNmbFEfRRNZe7FUDvGH2yCJqaZTx6TmmizsimQfsmt7KyHDiuJs83/smJoFs+/4W73SRPL2JspcvRHlIVv2O2ixfo71jq0HPXnVVpmCBKN3brSMDFxTX3EqN0xX39N9cUanH86B1GY8vWwTKq2YHxuzRLoS6pD0bDmsXLV9Vl5wgMFskhXyrKNssCGoaAFRCoikKL79n6t1UxqVIJTSMQE+hTOCfdPVR/xvMfo8z7p5DUGeG/OCHkKOGyfXsDoyG5kg2/vLvEhCgLNIpS1OjuuQpnA4eRcppni4lHYAGuqH8IDRv+bLLS9tguacVuRIIiDEW4A81RKtipP103gUsrnEUSgRffAYmPUQBD2j6mD9NM8micaBbiUQ7FQD7iwZXf3Flwpt3w9lV+/QGOkUGNG1MZQDUZ6CCnVzHo/zo8pEiBNqMkHHNJn97T9ObZT/dgs6PgfbE0Ex4QSz1gxKEuVXcAM9Jb+5fteIs56NFPXgvd50CtHJJACpYtWZkgweluGQl1BSzO2bXfW2SOY4e75sGSJo5P+qH14cwpwAMila9W65lKXZ26Bfjlj+9lLpopP+FSW1VaoKv0TbNhk7eoaGbhCR8EYhhGV+1f2yt+ajPz22bbV44r6ojRGcKdAzgIVxeVTNZDb0usQ6ie+UWrW30e51EOKGw== travis 2 | -------------------------------------------------------------------------------- /content/plugins/no-emit-on-errors-plugin.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: NoEmitOnErrorsPlugin 3 | contributors: 4 | - simon04 5 | --- 6 | 7 | Use the `NoEmitOnErrorsPlugin` to skip the emitting phase whenever there are errors while compiling. This ensures that no assets are emitted that include errors. The `emitted` flag in the stats is `false` for all assets. 8 | 9 | ``` js 10 | new webpack.NoEmitOnErrorsPlugin() 11 | ``` 12 | 13 | T> This supersedes the (now deprecated) webpack 1 plugin `NoErrorsPlugin`. 14 | 15 | W> If you are using the [CLI](/api/cli/), the webpack process will not exit with an error code by enabling this plugin. If you want webpack to "fail" when using the CLI, please check out the [`bail` option](/api/cli/#advanced-options). 16 | -------------------------------------------------------------------------------- /styles/partials/_vars.scss: -------------------------------------------------------------------------------- 1 | $colors: ( 2 | malibu: #8DD6F9, 3 | denim: #1D78C1, 4 | fiord: #465E69, 5 | elephant: #2B3A42, 6 | white: #ffffff, 7 | concrete: #f2f2f2, 8 | alto: #dedede, 9 | dusty-grey: #999999, 10 | dove-grey: #666666, 11 | emperor: #535353, 12 | mine-shaft: #333333 13 | ); 14 | 15 | $screens: ( 16 | xlarge: 1525px, 17 | large: 1024px, 18 | medium: 768px 19 | ); 20 | 21 | $font-stack-body: 'Source Sans Pro', -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; 22 | $font-stack-heading: Geomanist, sans-serif; 23 | $font-stack-code: 'Source Code Pro', Consolas, "Liberation Mono", Menlo, Courier, monospace; 24 | 25 | $text-color-highlight: lighten(map-get($colors, denim), 5%); 26 | 27 | -------------------------------------------------------------------------------- /content/development/release-process.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: webpack merge, tag and release process 3 | contributors: 4 | - d3viant0ne 5 | - sokra 6 | --- 7 | 8 | ## Pull requests into `master` 9 | 10 | When you land commits on your `master` branch, select the _Create Merge-Commit_ option. 11 | 12 | ## Cut a release 13 | 14 | ```sh 15 | npm version patch && git push --follow-tags && npm publish 16 | npm version minor && git push --follow-tags && npm publish 17 | npm version major && git push --follow-tags && npm publish 18 | ``` 19 | 20 | _This will increment the package version, commits the changes, cuts a **local tag**, push to github & publish the npm package._ 21 | 22 | After that go to the github releases page and write a Changelog for the new tag. 23 | -------------------------------------------------------------------------------- /components/organization/organization-style.scss: -------------------------------------------------------------------------------- 1 | @import 'functions'; 2 | @import 'mixins'; 3 | 4 | .organization { 5 | padding: 1.5em; 6 | } 7 | 8 | .organization__projects { 9 | display: flex; 10 | flex-wrap: wrap; 11 | justify-content: center; 12 | 13 | @include break { 14 | justify-content: flex-start; 15 | } 16 | } 17 | 18 | .organization__project { 19 | width: 280px; 20 | height: 420px; 21 | margin-right: 1em; 22 | margin-bottom: 1em; 23 | padding: 1em; 24 | border-radius: 2px; 25 | box-shadow: 0 0 1px getColor(dove-grey); 26 | overflow: hidden; 27 | background: getColor(concrete); 28 | transition: all 250ms; 29 | 30 | &:hover { 31 | box-shadow: 0 0 5px getColor(emperor); 32 | background: white; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /styles/icons/vertical-bar.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /components/contributors/contributors.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import './contributors-style'; 3 | 4 | export default ({contributors}) => { 5 | if (!contributors.length) { 6 | return