first commit
This commit is contained in:
148
app_vue/node_modules/thread-loader/README.md
generated
vendored
Normal file
148
app_vue/node_modules/thread-loader/README.md
generated
vendored
Normal file
@ -0,0 +1,148 @@
|
||||
<div align="center">
|
||||
<a href="https://webpack.js.org/">
|
||||
<img width="200" height="200" vspace="" hspace="25" src="https://cdn.rawgit.com/webpack/media/e7485eb2/logo/icon-square-big.svg">
|
||||
</a>
|
||||
</div>
|
||||
|
||||
[![npm][npm]][npm-url]
|
||||
[![node][node]][node-url]
|
||||
[![deps][deps]][deps-url]
|
||||
[![tests][tests]][tests-url]
|
||||
[![coverage][cover]][cover-url]
|
||||
[![chat][chat]][chat-url]
|
||||
[![size][size]][size-url]
|
||||
|
||||
# thread-loader
|
||||
|
||||
Runs the following loaders in a worker pool.
|
||||
|
||||
## Getting Started
|
||||
|
||||
```bash
|
||||
npm install --save-dev thread-loader
|
||||
```
|
||||
|
||||
Put this loader in front of other loaders. The following loaders run in a worker pool.
|
||||
|
||||
Loaders running in a worker pool are limited. Examples:
|
||||
|
||||
- Loaders cannot emit files.
|
||||
- Loaders cannot use custom loader API (i. e. by plugins).
|
||||
- Loaders cannot access the webpack options.
|
||||
|
||||
Each worker is a separate node.js process, which has an overhead of ~600ms. There is also an overhead of inter-process communication.
|
||||
|
||||
Use this loader only for expensive operations!
|
||||
|
||||
### Examples
|
||||
|
||||
**webpack.config.js**
|
||||
|
||||
```js
|
||||
module.exports = {
|
||||
module: {
|
||||
rules: [
|
||||
{
|
||||
test: /\.js$/,
|
||||
include: path.resolve('src'),
|
||||
use: [
|
||||
'thread-loader',
|
||||
// your expensive loader (e.g babel-loader)
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
};
|
||||
```
|
||||
|
||||
**with options**
|
||||
|
||||
```js
|
||||
use: [
|
||||
{
|
||||
loader: 'thread-loader',
|
||||
// loaders with equal options will share worker pools
|
||||
options: {
|
||||
// the number of spawned workers, defaults to (number of cpus - 1) or
|
||||
// fallback to 1 when require('os').cpus() is undefined
|
||||
workers: 2,
|
||||
|
||||
// number of jobs a worker processes in parallel
|
||||
// defaults to 20
|
||||
workerParallelJobs: 50,
|
||||
|
||||
// additional node.js arguments
|
||||
workerNodeArgs: ['--max-old-space-size=1024'],
|
||||
|
||||
// Allow to respawn a dead worker pool
|
||||
// respawning slows down the entire compilation
|
||||
// and should be set to false for development
|
||||
poolRespawn: false,
|
||||
|
||||
// timeout for killing the worker processes when idle
|
||||
// defaults to 500 (ms)
|
||||
// can be set to Infinity for watching builds to keep workers alive
|
||||
poolTimeout: 2000,
|
||||
|
||||
// number of jobs the poll distributes to the workers
|
||||
// defaults to 200
|
||||
// decrease of less efficient but more fair distribution
|
||||
poolParallelJobs: 50,
|
||||
|
||||
// name of the pool
|
||||
// can be used to create different pools with elsewise identical options
|
||||
name: 'my-pool',
|
||||
},
|
||||
},
|
||||
// your expensive loader (e.g babel-loader)
|
||||
];
|
||||
```
|
||||
|
||||
**prewarming**
|
||||
|
||||
To prevent the high delay when booting workers it possible to warmup the worker pool.
|
||||
|
||||
This boots the max number of workers in the pool and loads specified modules into the node.js module cache.
|
||||
|
||||
```js
|
||||
const threadLoader = require('thread-loader');
|
||||
|
||||
threadLoader.warmup(
|
||||
{
|
||||
// pool options, like passed to loader options
|
||||
// must match loader options to boot the correct pool
|
||||
},
|
||||
[
|
||||
// modules to load
|
||||
// can be any module, i. e.
|
||||
'babel-loader',
|
||||
'babel-preset-es2015',
|
||||
'sass-loader',
|
||||
]
|
||||
);
|
||||
```
|
||||
|
||||
## Contributing
|
||||
|
||||
Please take a moment to read our contributing guidelines if you haven't yet done so.
|
||||
|
||||
[CONTRIBUTING](./.github/CONTRIBUTING.md)
|
||||
|
||||
## License
|
||||
|
||||
[MIT](./LICENSE)
|
||||
|
||||
[npm]: https://img.shields.io/npm/v/thread-loader.svg
|
||||
[npm-url]: https://npmjs.com/package/thread-loader
|
||||
[node]: https://img.shields.io/node/v/thread-loader.svg
|
||||
[node-url]: https://nodejs.org
|
||||
[deps]: https://david-dm.org/webpack-contrib/thread-loader.svg
|
||||
[deps-url]: https://david-dm.org/webpack-contrib/thread-loader
|
||||
[tests]: https://github.com/webpack-contrib/thread-loader/workflows/thread-loader/badge.svg
|
||||
[tests-url]: https://github.com/webpack-contrib/thread-loader/actions
|
||||
[cover]: https://codecov.io/gh/webpack-contrib/thread-loader/branch/master/graph/badge.svg
|
||||
[cover-url]: https://codecov.io/gh/webpack-contrib/thread-loader
|
||||
[chat]: https://badges.gitter.im/webpack/webpack.svg
|
||||
[chat-url]: https://gitter.im/webpack/webpack
|
||||
[size]: https://packagephobia.now.sh/badge?p=thread-loader
|
||||
[size-url]: https://packagephobia.now.sh/result?p=thread-loader
|
Reference in New Issue
Block a user