diff --git a/.eslintignore b/.eslintignore
index f9f03214300..7810041dfd8 100644
--- a/.eslintignore
+++ b/.eslintignore
@@ -5,11 +5,14 @@ node_modules
benchmark
coverage
-# Ignore not support files
+# Ignore not supported files
!.*.js
.eslintrc.js
*.d.ts
+# Ignore precompiled schemas
+schemas/**/*.check.js
+
# Ignore some test files
test/*
!test/*Cases
diff --git a/.eslintrc.js b/.eslintrc.js
index 69f411216f8..28d47e83dca 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -11,48 +11,46 @@ module.exports = {
es6: true
},
parserOptions: {
- ecmaVersion: 2017
+ ecmaVersion: 2018
},
rules: {
"prettier/prettier": "error",
- "no-undef": "error",
- "no-extra-semi": "error",
"no-template-curly-in-string": "error",
"no-caller": "error",
"no-control-regex": "off",
yoda: "error",
eqeqeq: "error",
- "global-require": "off",
- "brace-style": "off",
"eol-last": "error",
"no-extra-bind": "warn",
"no-process-exit": "warn",
"no-use-before-define": "off",
- "no-unused-vars": ["error", { args: "none" }],
- "no-unsafe-negation": "error",
+ "no-unused-vars": ["error", { args: "none", ignoreRestSiblings: true }],
"no-loop-func": "warn",
- indent: "off",
- "no-console": "off",
- "node/no-unsupported-features": "error",
- "node/no-deprecated-api": "error",
- "node/no-missing-import": "error",
"node/no-missing-require": ["error", { allowModules: ["webpack"] }],
- "node/no-unpublished-bin": "error",
- "node/no-unpublished-require": "error",
- "node/process-exit-as-throw": "error",
- "jsdoc/require-hyphen-before-param-description": ["error", "never"],
- "jsdoc/check-tag-names": "error",
+ "jsdoc/check-indentation": "error",
"jsdoc/check-param-names": "error",
+ "jsdoc/check-property-names": "error",
+ "jsdoc/check-tag-names": "error",
+ "jsdoc/require-hyphen-before-param-description": ["error", "never"],
"jsdoc/require-param-description": "error",
"jsdoc/require-param-name": "error",
"jsdoc/require-param-type": "error",
"jsdoc/require-param": "error",
+ "jsdoc/require-property": "error",
+ "jsdoc/require-property-name": "error",
+ "jsdoc/require-property-type": "error",
"jsdoc/require-returns-description": "error",
"jsdoc/require-returns-type": "error",
- "jsdoc/require-returns": "error"
+ "jsdoc/require-returns": "error",
+ // Disallow @ts-ignore directive. Use @ts-expect-error instead
+ "no-warning-comments": [
+ "error",
+ { terms: ["@ts-ignore"], location: "start" }
+ ]
},
settings: {
jsdoc: {
+ mode: "typescript",
// supported tags https://github.com/microsoft/TypeScript-wiki/blob/master/JSDoc-support-in-JavaScript.md
tagNamePreference: {
...["implements", "const", "memberof", "readonly", "yields"].reduce(
@@ -73,14 +71,14 @@ module.exports = {
description: false,
desc: false,
inheritdoc: false,
- class: false
+ class: "constructor"
},
overrideReplacesDocs: false
}
},
overrides: [
{
- files: ["lib/**/*.runtime.js", "buildin/*.js", "hot/*.js"],
+ files: ["lib/**/*.runtime.js", "hot/*.js"],
env: {
es6: false,
browser: true
@@ -98,7 +96,8 @@ module.exports = {
"jest/globals": true
},
globals: {
- nsObj: false
+ nsObj: false,
+ jasmine: false
}
}
]
diff --git a/.gitattributes b/.gitattributes
index ac579eb7bc0..46ada865c8d 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,4 +1,5 @@
* text=auto
-test/statsCases/* eol=lf
+test/statsCases/** eol=lf
examples/* eol=lf
-bin/* eol=lf
\ No newline at end of file
+bin/* eol=lf
+*.svg eol=lf
diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md
index 1deb4adab1a..ba313faa478 100644
--- a/.github/ISSUE_TEMPLATE.md
+++ b/.github/ISSUE_TEMPLATE.md
@@ -12,7 +12,7 @@
**If the current behavior is a bug, please provide the steps to reproduce.**
-
+
**What is the expected behavior?**
diff --git a/.github/ISSUE_TEMPLATE/Feature_request.md b/.github/ISSUE_TEMPLATE/Feature_request.md
index 1b69aa08fd4..ff728e6db23 100644
--- a/.github/ISSUE_TEMPLATE/Feature_request.md
+++ b/.github/ISSUE_TEMPLATE/Feature_request.md
@@ -8,9 +8,9 @@ about: Suggest an idea for this project
## Feature request
-
+
-
+
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
new file mode 100644
index 00000000000..097b6c90844
--- /dev/null
+++ b/.github/dependabot.yml
@@ -0,0 +1,12 @@
+version: 2
+updates:
+- package-ecosystem: npm
+ directory: "/"
+ schedule:
+ interval: daily
+ time: "04:00"
+ timezone: Europe/Berlin
+ open-pull-requests-limit: 20
+ labels:
+ - dependencies
+ versioning-strategy: widen
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
new file mode 100644
index 00000000000..916ec980f83
--- /dev/null
+++ b/.github/workflows/test.yml
@@ -0,0 +1,129 @@
+name: Test
+
+# cspell:word Ignus
+# cspell:word eslintcache
+
+on:
+ push:
+ branches:
+ - master
+ - dev-1
+ pull_request:
+ branches:
+ - master
+ - dev-1
+
+jobs:
+ lint:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - name: Use Node.js
+ uses: actions/setup-node@v1
+ with:
+ node-version: 16.x
+ - id: yarn-cache-dir-path
+ run: echo "::set-output name=dir::$(yarn cache dir)"
+ - uses: actions/cache@v1
+ with:
+ path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
+ key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
+ restore-keys: ${{ runner.os }}-yarn-
+ - run: yarn --frozen-lockfile
+ - uses: actions/cache@v1
+ with:
+ path: .eslintcache
+ key: lint-${{ env.GITHUB_SHA }}
+ restore-keys: lint-
+ - run: yarn lint
+ basic:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - name: Use Node.js
+ uses: actions/setup-node@v1
+ with:
+ node-version: 16.x
+ - id: yarn-cache-dir-path
+ run: echo "::set-output name=dir::$(yarn cache dir)"
+ - uses: actions/cache@v1
+ with:
+ path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
+ key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
+ restore-keys: ${{ runner.os }}-yarn-
+ - run: yarn --frozen-lockfile
+ - run: yarn link --frozen-lockfile || true
+ - run: yarn link webpack --frozen-lockfile
+ - run: yarn test:basic --ci
+ - uses: codecov/codecov-action@v1
+ with:
+ flags: basic
+ functionalities: gcov
+ unit:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - name: Use Node.js
+ uses: actions/setup-node@v1
+ with:
+ node-version: 16.x
+ - id: yarn-cache-dir-path
+ run: echo "::set-output name=dir::$(yarn cache dir)"
+ - uses: actions/cache@v1
+ with:
+ path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
+ key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
+ restore-keys: ${{ runner.os }}-yarn-
+ - run: yarn --frozen-lockfile
+ - run: yarn link --frozen-lockfile || true
+ - run: yarn link webpack --frozen-lockfile
+ - uses: actions/cache@v1
+ with:
+ path: .jest-cache
+ key: jest-unit-${{ env.GITHUB_SHA }}
+ restore-keys: jest-unit-
+ - run: yarn cover:unit --ci --cacheDirectory .jest-cache
+ - uses: codecov/codecov-action@v1
+ with:
+ flags: unit
+ functionalities: gcov
+ integration:
+ needs: basic
+ strategy:
+ fail-fast: false
+ matrix:
+ os: [ubuntu-latest, windows-latest, macos-latest]
+ node-version: [10.x, 16.x]
+ include:
+ - os: ubuntu-latest
+ node-version: 14.x
+ - os: ubuntu-latest
+ node-version: 12.x
+ runs-on: ${{ matrix.os }}
+ steps:
+ - uses: actions/checkout@v2
+ - name: Use Node.js ${{ matrix.node-version }}
+ uses: actions/setup-node@v1
+ with:
+ node-version: ${{ matrix.node-version }}
+ - id: yarn-cache-dir-path
+ run: echo "::set-output name=dir::$(yarn cache dir)"
+ - uses: actions/cache@v1
+ with:
+ path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
+ key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
+ restore-keys: ${{ runner.os }}-yarn-
+ - run: yarn --frozen-lockfile
+ - run: yarn link --frozen-lockfile || true
+ - run: yarn link webpack --frozen-lockfile
+ - uses: actions/cache@v1
+ with:
+ path: .jest-cache
+ key: jest-integration-${{ env.GITHUB_SHA }}
+ restore-keys: jest-integration-
+ - run: yarn cover:integration --ci --cacheDirectory .jest-cache
+ - run: yarn cover:merge
+ - uses: codecov/codecov-action@v1
+ with:
+ flags: integration
+ functionalities: gcov
diff --git a/.gitignore b/.gitignore
index 933100cc704..5d5dd6ca211 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,14 +1,19 @@
/node_modules
/test/js
/test/browsertest/js
-/test/fixtures/temp-cache-fixture*
+/test/fixtures/temp-*
+/test/temp
+/test/ChangesAndRemovals
/benchmark/js
/benchmark/fixtures
/examples/**/dist
/coverage
+/.nyc_output
+/.jest-cache
.DS_Store
*.log
.idea
.vscode
+.cache
.eslintcache
package-lock.json
diff --git a/.husky/.gitignore b/.husky/.gitignore
new file mode 100644
index 00000000000..31354ec1389
--- /dev/null
+++ b/.husky/.gitignore
@@ -0,0 +1 @@
+_
diff --git a/.husky/pre-commit b/.husky/pre-commit
new file mode 100755
index 00000000000..d37daa075e2
--- /dev/null
+++ b/.husky/pre-commit
@@ -0,0 +1,4 @@
+#!/bin/sh
+. "$(dirname "$0")/_/husky.sh"
+
+npx --no-install lint-staged
diff --git a/.prettierignore b/.prettierignore
index 7ca974bc420..dceadd34a1f 100644
--- a/.prettierignore
+++ b/.prettierignore
@@ -1,7 +1,10 @@
+package.json
+
# Ignore test fixtures
test/*.*
!test/*.js
!test/**/webpack.config.js
+!test/**/deprecations.js
# Ignore example fixtures
examples/*.*
diff --git a/.prettierrc.js b/.prettierrc.js
index cc7e3b51355..2ddbbf13d25 100644
--- a/.prettierrc.js
+++ b/.prettierrc.js
@@ -2,12 +2,21 @@ module.exports = {
printWidth: 80,
useTabs: true,
tabWidth: 2,
+ trailingComma: "none",
+ arrowParens: "avoid",
overrides: [
{
files: "*.json",
options: {
+ parser: "json",
useTabs: false
}
+ },
+ {
+ files: "*.ts",
+ options: {
+ parser: "typescript"
+ }
}
]
};
diff --git a/.travis.yml b/.travis.yml
index d2bcc5e2256..409ddaf9503 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,4 +1,3 @@
-sudo: false
dist: trusty
language: node_js
@@ -7,6 +6,7 @@ branches:
- webpack-4
- master
- next
+ - dev-1
cache:
yarn: true
@@ -21,25 +21,25 @@ stages:
matrix:
include:
- os: linux
- node_js: "10"
+ node_js: "12"
env: NO_WATCH_TESTS=1 JEST="--maxWorkers=2 --cacheDirectory .jest-cache" JOB_PART=basic
stage: basic
- os: linux
- node_js: "10"
+ node_js: "12"
env: NO_WATCH_TESTS=1 JEST="--maxWorkers=2 --cacheDirectory .jest-cache" JOB_PART=lintunit
stage: advanced
- os: linux
- node_js: "10"
+ node_js: "12"
env: NO_WATCH_TESTS=1 JEST="--maxWorkers=2 --cacheDirectory .jest-cache" JOB_PART=integration
stage: advanced
- os: linux
- node_js: "10"
+ node_js: "12"
env: NO_WATCH_TESTS=1 ALTERNATIVE_SORT=1 JEST="--maxWorkers=2 --cacheDirectory .jest-cache" JOB_PART=integration
stage: advanced
- os: linux
node_js: "10"
env:
- - NODEJS_VERSION=v12.0.0-nightly20190206686043e76e
+ - NODEJS_VERSION=v15.0.0-nightly2020082003293aa3a1
- YARN_EXTRA_ARGS="--ignore-engines"
- NO_WATCH_TESTS=1
- JEST="--maxWorkers=2 --cacheDirectory .jest-cache"
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
index 22ab3217018..4faf227c455 100644
--- a/CODE_OF_CONDUCT.md
+++ b/CODE_OF_CONDUCT.md
@@ -1 +1 @@
-[Code of Conduct](https://js.foundation/community/code-of-conduct)
+[Code of Conduct](https://github.com/openjs-foundation/code-and-learn/blob/master/CODE_OF_CONDUCT.md)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 76ebe22a492..146a567a0c0 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -10,12 +10,12 @@ work is not in vain.
Most of the time, if webpack is not working correctly for you, it is a simple configuration issue.
If you are still having difficulty after looking over your configuration carefully, please post
-a question to [StackOverflow with the webpack tag](http://stackoverflow.com/tags/webpack). Questions
+a question to [StackOverflow with the webpack tag](https://stackoverflow.com/tags/webpack). Questions
that include your webpack.config.js, relevant files, and the full error message are more likely to receive responses.
**If you have discovered a bug or have a feature suggestion, please [create an issue on GitHub](https://github.com/webpack/webpack/issues/new).**
-Do you want to fix an issue? Look at the issues with a tag of [X5: work required (PR / Help Wanted)](https://github.com/webpack/webpack/labels/X5%3A%20work%20required%20%28PR%20%2F%20Help%20Wanted%29). Each issue should be tagged with a difficulty tag -
+Do you want to fix an issue? Look at the issues with a tag of [X5: work required (PR / Help Wanted)](https://github.com/webpack/webpack/labels/X5%3A%20work%20required%20%28PR%20%2F%20Help%20Wanted%29). Each issue should be tagged with a difficulty tag -
- D0: My First Commit (Contribution Difficulty)
- D1: Easy (Contribution Difficulty)
@@ -35,15 +35,18 @@ If you have created your own loader/plugin please include it on the relevant doc
## Submitting Changes
-After getting some feedbacks, push to your fork and submit a pull request. We
+After getting some feedback, push to your fork and submit a pull request. We
may suggest some changes or improvements or alternatives, but for small changes
your pull request should be accepted quickly.
Something that will increase the chance that your pull request is accepted:
-* [Write tests](./test/README.md)
-* Follow the existing coding style
-* Write a [good commit message](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html)
+- [Write tests](./test/README.md)
+- Follow the existing coding style
+- Write a [good commit message](https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html)
+- For a major fix/feature make sure your PR has an issue and if it doesn't, please create one. This would help discussion with the community, and polishing ideas in case of a new feature.
+- Make sure your PR's description contains GitHub's special keyword references that automatically close the related issue when the PR is merged. ([More info](https://github.com/blog/1506-closing-issues-via-pull-requests))
+- When you have a lot of commits in your PR, it's good practice to squash all your commits in one single commit. ([Learn how to squash here](https://davidwalsh.name/squash-commits-git))
## Documentation
@@ -55,3 +58,11 @@ or [check out the issues on the documentation website's repository](https://gith
## Discussions
Gitter is only for small questions. To discuss a subject in detail, please send a link to your forum or blog in the Gitter chat.
+
+## Join the development
+
+- Before you join development, please [set up the project](./_SETUP.md) on your local machine, run it and go through the application completely. Use any command you can find and see what it does. Explore.
+
+ > Don't worry ... Nothing will happen to the project or to you due to the exploring. Only thing that will happen is, you'll be more familiar with what is where and might even get some cool ideas on how to improve various aspects of the project.
+
+- If you would like to work on an issue, drop in a comment at the issue. If it is already assigned to someone, but there is no sign of any work being done, please feel free to drop in a comment so that the issue can be assigned to you if the previous assignee has dropped it entirely.
diff --git a/README.md b/README.md
index cc2afef693d..4d1cb38af2a 100644
--- a/README.md
+++ b/README.md
@@ -23,8 +23,8 @@
-
-
+
+
@@ -83,11 +83,11 @@ or packaging just about any resource or asset.
**TL;DR**
-* Bundles [ES Modules](http://www.2ality.com/2014/09/es6-modules-final.html), [CommonJS](http://wiki.commonjs.org/), and [AMD](https://github.com/amdjs/amdjs-api/wiki/AMD) modules (even combined).
-* Can create a single bundle or multiple chunks that are asynchronously loaded at runtime (to reduce initial loading time).
-* Dependencies are resolved during compilation, reducing the runtime size.
-* Loaders can preprocess files while compiling, e.g. TypeScript to JavaScript, Handlebars strings to compiled functions, images to Base64, etc.
-* Highly modular plugin system to do whatever else your application requires.
+- Bundles [ES Modules](https://www.2ality.com/2014/09/es6-modules-final.html), [CommonJS](http://wiki.commonjs.org/), and [AMD](https://github.com/amdjs/amdjs-api/wiki/AMD) modules (even combined).
+- Can create a single bundle or multiple chunks that are asynchronously loaded at runtime (to reduce initial loading time).
+- Dependencies are resolved during compilation, reducing the runtime size.
+- Loaders can preprocess files while compiling, e.g. TypeScript to JavaScript, Handlebars strings to compiled functions, images to Base64, etc.
+- Highly modular plugin system to do whatever else your application requires.
### Get Started
@@ -95,7 +95,7 @@ Check out webpack's quick [**Get Started**](https://webpack.js.org/guides/gettin
### Browser Compatibility
-webpack supports all browsers that are [ES5-compliant](http://kangax.github.io/compat-table/es5/) (IE8 and below are not supported).
+webpack supports all browsers that are [ES5-compliant](https://kangax.github.io/compat-table/es5/) (IE8 and below are not supported).
webpack also needs `Promise` for `import()` and `require.ensure()`. If you want to support older browsers, you will need to [load a polyfill](https://webpack.js.org/guides/shimming/) before using these expressions.
Concepts
@@ -107,37 +107,29 @@ interface](https://webpack.js.org/plugins/). Most of the features
within webpack itself use this plugin interface. This makes webpack very
**flexible**.
-|Name|Status|Install Size|Description|
-|:--:|:----:|:----------:|:----------|
-|[mini-css-extract-plugin][mini-css]|![mini-css-npm]|![mini-css-size]|Extracts CSS into separate files. It creates a CSS file per JS file which contains CSS.|
-|[compression-webpack-plugin][compression]|![compression-npm]|![compression-size]|Prepares compressed versions of assets to serve them with Content-Encoding|
-|[i18n-webpack-plugin][i18n]|![i18n-npm]|![i18n-size]|Adds i18n support to your bundles|
-|[html-webpack-plugin][html-plugin]|![html-plugin-npm]|![html-plugin-size]| Simplifies creation of HTML files (`index.html`) to serve your bundles|
-|[extract-text-webpack-plugin][extract]|![extract-npm]|![extract-size]|Extract text from a bundle, or bundles, into a separate file|
+| Name | Status | Install Size | Description |
+| :---------------------------------------: | :----------------: | :-----------------: | :-------------------------------------------------------------------------------------- |
+| [mini-css-extract-plugin][mini-css] | ![mini-css-npm] | ![mini-css-size] | Extracts CSS into separate files. It creates a CSS file per JS file which contains CSS. |
+| [compression-webpack-plugin][compression] | ![compression-npm] | ![compression-size] | Prepares compressed versions of assets to serve them with Content-Encoding |
+| [html-webpack-plugin][html-plugin] | ![html-plugin-npm] | ![html-plugin-size] | Simplifies creation of HTML files (`index.html`) to serve your bundles |
[common-npm]: https://img.shields.io/npm/v/webpack.svg
-[extract]: https://github.com/webpack/extract-text-webpack-plugin
-[extract-npm]: https://img.shields.io/npm/v/extract-text-webpack-plugin.svg
-[extract-size]: https://packagephobia.now.sh/badge?p=extract-text-webpack-plugin
[mini-css]: https://github.com/webpack-contrib/mini-css-extract-plugin
[mini-css-npm]: https://img.shields.io/npm/v/mini-css-extract-plugin.svg
-[mini-css-size]: https://packagephobia.now.sh/badge?p=mini-css-extract-plugin
-[component]: https://github.com/webpack/component-webpack-plugin
+[mini-css-size]: https://packagephobia.com/badge?p=mini-css-extract-plugin
+[component]: https://github.com/webpack-contrib/component-webpack-plugin
[component-npm]: https://img.shields.io/npm/v/component-webpack-plugin.svg
-[component-size]: https://packagephobia.now.sh/badge?p=component-webpack-plugin
-[compression]: https://github.com/webpack/compression-webpack-plugin
+[component-size]: https://packagephobia.com/badge?p=component-webpack-plugin
+[compression]: https://github.com/webpack-contrib/compression-webpack-plugin
[compression-npm]: https://img.shields.io/npm/v/compression-webpack-plugin.svg
-[compression-size]: https://packagephobia.now.sh/badge?p=compression-webpack-plugin
-[i18n]: https://github.com/webpack/i18n-webpack-plugin
-[i18n-npm]: https://img.shields.io/npm/v/i18n-webpack-plugin.svg
-[i18n-size]: https://packagephobia.now.sh/badge?p=i18n-webpack-plugin
-[html-plugin]: https://github.com/ampedandwired/html-webpack-plugin
+[compression-size]: https://packagephobia.com/badge?p=compression-webpack-plugin
+[html-plugin]: https://github.com/jantimon/html-webpack-plugin
[html-plugin-npm]: https://img.shields.io/npm/v/html-webpack-plugin.svg
-[html-plugin-size]: https://packagephobia.now.sh/badge?p=html-webpack-plugin
+[html-plugin-size]: https://packagephobia.com/badge?p=html-webpack-plugin
### [Loaders](https://webpack.js.org/loaders/)
-webpack enables use of loaders to preprocess files. This allows you to bundle
+webpack enables the use of loaders to preprocess files. This allows you to bundle
**any static resource** way beyond JavaScript. You can easily [write your own
loaders](https://webpack.js.org/api/loaders/) using Node.js.
@@ -146,154 +138,114 @@ or are automatically applied via regex from your webpack configuration.
#### Files
-|Name|Status|Install Size|Description|
-|:--:|:----:|:----------:|:----------|
-|[raw-loader][raw]|![raw-npm]|![raw-size]|Loads raw content of a file (utf-8)|
-|[val-loader][val]|![val-npm]|![val-size]|Executes code as module and considers exports as JS code|
-|[url-loader][url]|![url-npm]|![url-size]|Works like the file loader, but can return a Data Url if the file is smaller than a limit|
-|[file-loader][file]|![file-npm]|![file-size]|Emits the file into the output folder and returns the (relative) url|
+| Name | Status | Install Size | Description |
+| :-----------------: | :---------: | :----------: | :---------------------------------------------------------------------------------------- |
+| [raw-loader][raw] | ![raw-npm] | ![raw-size] | Loads raw content of a file (utf-8) |
+| [val-loader][val] | ![val-npm] | ![val-size] | Executes code as module and considers exports as JS code |
+| [url-loader][url] | ![url-npm] | ![url-size] | Works like the file loader, but can return a Data Url if the file is smaller than a limit |
+| [file-loader][file] | ![file-npm] | ![file-size] | Emits the file into the output folder and returns the (relative) url |
-
-[raw]: https://github.com/webpack/raw-loader
+[raw]: https://github.com/webpack-contrib/raw-loader
[raw-npm]: https://img.shields.io/npm/v/raw-loader.svg
-[raw-size]: https://packagephobia.now.sh/badge?p=raw-loader
-[val]: https://github.com/webpack/val-loader
+[raw-size]: https://packagephobia.com/badge?p=raw-loader
+[val]: https://github.com/webpack-contrib/val-loader
[val-npm]: https://img.shields.io/npm/v/val-loader.svg
-[val-size]: https://packagephobia.now.sh/badge?p=val-loader
-[url]: https://github.com/webpack/url-loader
+[val-size]: https://packagephobia.com/badge?p=val-loader
+[url]: https://github.com/webpack-contrib/url-loader
[url-npm]: https://img.shields.io/npm/v/url-loader.svg
-[url-size]: https://packagephobia.now.sh/badge?p=url-loader
-[file]: https://github.com/webpack/file-loader
+[url-size]: https://packagephobia.com/badge?p=url-loader
+[file]: https://github.com/webpack-contrib/file-loader
[file-npm]: https://img.shields.io/npm/v/file-loader.svg
-[file-size]: https://packagephobia.now.sh/badge?p=file-loader
+[file-size]: https://packagephobia.com/badge?p=file-loader
#### JSON
-|Name|Status|Install Size|Description|
-|:--:|:----:|:----------:|:----------|
-|
|![json-npm]|![json-size]|Loads a JSON file (included by default)|
-|
|![json5-npm]|![json5-size]|Loads and transpiles a JSON 5 file|
-|
|![cson-npm]|![cson-size]|Loads and transpiles a CSON file|
-
+| Name | Status | Install Size | Description |
+| :---------------------------------------------------------------------------------------------------------------------------------------: | :---------: | :----------: | :------------------------------: |
+|
| ![cson-npm] | ![cson-size] | Loads and transpiles a CSON file |
-[json-npm]: https://img.shields.io/npm/v/json-loader.svg
-[json-size]: https://packagephobia.now.sh/badge?p=json-loader
-[json5-npm]: https://img.shields.io/npm/v/json5-loader.svg
-[json5-size]: https://packagephobia.now.sh/badge?p=json5-loader
[cson-npm]: https://img.shields.io/npm/v/cson-loader.svg
-[cson-size]: https://packagephobia.now.sh/badge?p=cson-loader
+[cson-size]: https://packagephobia.com/badge?p=cson-loader
#### Transpiling
-|Name|Status|Install Size|Description|
-|:--:|:----:|:----------:|:----------|
-|`
+