рдирдорд╕реНрдХрд╛рд░, рд╣реЗрдмреНрд░!
рд╡реЗрдмрдкреИрдХ рдореЗрдВ рдХрдИ рдЙрдкрдпреЛрдЧреА рдкреНрд▓рдЧрдЗрдиреНрд╕ рд╣реИрдВ рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдХрдЯреМрддреА рдХреЗ рддрд╣рдд, рдореИрдВрдиреЗ рдЗрдирдореЗрдВ рд╕реЗ 5 рдПрдХрддреНрд░ рдХрд┐рдП, рд╡реЗ рдЖрдкрдХреЗ рдЬреАрд╡рди рдХреЛ рд╕рд░рд▓ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ!

1. рдЕрдкреНрд░рдпреБрдХреНрдд рдлрд╝рд╛рдЗрд▓реЗрдВ рд╡реЗрдмрдкреИрдХ рдкреНрд▓рдЧрдЗрди
рдмрдбрд╝реЗ рдлреНрд░рдВрдЯ-рдПрдВрдб рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ, рд╣рдореЗрд╢рд╛ рдХрдИ рдореЙрдбреНрдпреВрд▓ рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рдЦреЛ рдЬрд╛рдирд╛ рдЖрд╕рд╛рди рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЕрдкреНрд░рдпреБрдХреНрдд рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЬрд▓реНрджреА рдпрд╛ рдмрд╛рдж рдореЗрдВ рдпрд╣ рдЬрдВрдХ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЬрдорд╛ рдХрд░реЗрдЧрд╛ рдЬреЛ рдХрд╣реАрдВ рднреА рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
рдХрд┐рд╕реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЕрдкреНрд░рдпреБрдХреНрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдкрдиреЗ рдбрд┐рд╕реНрдХ рдкрд░ рдЕрдкреНрд░рдпреБрдХреНрдд-рдлрд╛рдЗрд▓реНрд╕-рд╡реЗрдмрдкреИрдХ-рдкреНрд▓рдЧрдЗрди рдЬреЛрдбрд╝реЗрдВ:
npm i unused-files-webpack-plugin
const { UnusedFilesWebpackPlugin } = require('unused-files-webpack-plugin'); module.exports = { plugins: [ new UnusedFilesWebpackPlugin(), ], };
рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рдж, рдЖрдк рдХрд┐рд╕реА рднреА рдЕрдкреНрд░рдпреБрдХреНрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗ:
src/ тФЬтФАтФА index.js тФФтФАтФА someFile.js ( )
WARNING in UnusedFilesWebpackPlugin found some unused files: src/someFile.js
рд╕рдВрджрд░реНрдн:
тЖТ
рдЬреАрдердмтЖТ
рдПрдирдкреАрдПрдо2. рдХреЗрд╕ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдкрде рд╡реЗрдмрдкреИрдХ рдкреНрд▓рдЧрдЗрди
OSX рдкрд░ рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди, рдЕрдХреНрд╕рд░ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЖрдпрд╛рдд рдХрд░рддреЗ рд╕рдордп рд▓реЛрдЕрд░рдХреЗрд╕ рдФрд░ рдЕрдкрд░рдХреЗрд╕ рдЕрдХреНрд╖рд░реЛрдВ рдХреЛ рдПрдХ рдкрде рдореЗрдВ рднреНрд░рдорд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрддрд╛ рд╣реИред рдЕрд╕реЗрдВрдмрд▓реА рдПрдХ рдЦрд╕рдЦрд╕ тАЛтАЛрдкрд░ рдЗрдХрдЯреНрдард╛ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдЕрдиреНрдп рдХреЗрд╕-рд╕рдВрд╡реЗрджреА рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдкрд░ рдпрд╣ рдЧрд┐рд░ рдЬрд╛рдПрдЧреАред
рдпрджрд┐ рдЖрдк рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдХреЗрд╕-рд╕реЗрдВрд╕рд┐рдЯрд┐рд╡-рдкрд╛рде-рд╡реЗрдмрдкреИрдХ-рдкреНрд▓рдЧрдЗрди рдбрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
npm i case-sensitive-paths-webpack-plugin
const CaseSensitivePathsPlugin = require('case-sensitive-paths-webpack-plugin'); module.exports = { plugins: [ new CaseSensitivePathsPlugin(), ], };
рдЕрдм рдЧрд▓рдд рдорд╛рдорд▓реЗ рдХреЗ рд╕рд╛рде рдПрдХ рдореЙрдбреНрдпреВрд▓ рдЖрдпрд╛рдд рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рд╣рдореЗрд╢рд╛ рдПрдХ рддреНрд░реБрдЯрд┐ рдорд┐рд▓реЗрдЧреА:
import someFile from './SOMEFILE';
export default () => { console.log('Hello!'); };
ERROR in index.js Module not found: Error: [CaseSensitivePathsPlugin] `SOMEFILE.js` does not match the corresponding path on disk `someFile.js`.
рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ
рдЗрдВрдкреЛрд░реНрдЯ / рдиреЛ-рдЕрдирд╕реБрд▓рдЭреЗ рдПрд╕реНрд▓рд┐рдВрдЯ рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рднреА рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рди рд╡рд┐рдХрд▓реНрдк рд╣реИ - ForceConsistentCasingInFileNamesред рд▓реЗрдХрд┐рди рд╡рд╣ рдереЛрдбрд╝реА рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддреА рд╣реИ: рд╡рд╣ рдЬрд╛рдБрдЪрддреА рд╣реИ рдХрд┐ рд╡рд┐рднрд┐рдиреНрди рд╕реНрдерд╛рдиреЛрдВ рд╕реЗ рдореЙрдбреНрдпреВрд▓ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рднрд┐рдиреНрди рдирд╣реАрдВ рд╣реИ, рд░рдЬрд┐рд╕реНрдЯрд░ рдХреА рдмрд╣реБрдд рд╢реБрджреНрдзрддрд╛ рдХреА рдЬрд╛рдБрдЪ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИред
рд╕рдВрджрд░реНрдн:
тЖТ
рдЬреАрдердмтЖТ
рдПрдирдкреАрдПрдо3. рдирд┐рд░реАрдХреНрд╖рдг
рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ, рдПрдХ рд╕реНрдерд┐рддрд┐ рдЙрддреНрдкрдиреНрди рд╣реЛ рд╕рдХрддреА рд╣реИ рдХрд┐ рдЖрдк рдФрд░ рдЖрдкрдХреЗ рдкреИрдХреЗрдЬ рдПрдХ рд╣реА рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдлрд┐рд░ рдкреИрдХреЗрдЬ рдХреЗ рдХрдИ рдмрдВрдбрд▓ рдмрдВрдбрд▓ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗ, рдЬрд┐рдиреНрд╣реЗрдВ рд╕рдорд╛рди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ рдЖрд╕рд╛рдиреА рд╕реЗ рддрдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЗрдВрд╕реНрдкреЗрдХреНрдЯрдкреИрдХ рдЖрдкрдХреЛ рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ рддреБрд░рдВрдд рдЦреЛрдЬрдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛:
npm i inspectpack
const { DuplicatesPlugin } = require('inspectpack/plugin'); module.exports = { plugins: [ new DuplicatesPlugin(), ], };
рдпрджрд┐ рдЖрдк рдкреНрд▓рдЧрдЗрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкреИрдХреЗрдЬ рдХреА рдкреНрд░рддрд┐рдпрд╛рдВ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рдкрд░ рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рдкреЙрдк рдЕрдк рд╣реЛрдЧреА:
{ "name": "my-app", "dependencies": { "lodash": "4.1.0", "one": "1.2.3" } }
{ "name": "one", "dependencies": { "lodash": "3.0.0" } }
import _ from 'lodash'; import 'one';
WARNING in Duplicate Sources / Packages - Duplicates found! я╕П * Duplicates: Found 2 similar files across 2 code sources (both identical + similar) accounting for 703 bundled bytes. * Packages: Found 1 packages with 2 resolved, 2 installed, and 2 depended versions.
рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡рд┐рд╢реНрд╡ рдЙрджрд╛рд╣рд░рдгрдореЗрд░реА рд╕рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ, рдореИрдВ
рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рд╕рдВрддрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдЗрд╕рдХреА
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрд╕рдбреАрдХреЗ рдХреЛ рдХрдИ рдкреИрдХреЗрдЬреЛрдВ рдореЗрдВ рддреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреА tslib@^1.9.3 рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ рд╣реИред
рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ, рдирд┐рд░реНрднрд░рддрд╛ рдореЗрдВ рддреНрд░реБрдЯрд┐ рдХреЗ рдХрд╛рд░рдг tslib@1.9.0 рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдкреИрдХреЗрдЬ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ tslib рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╕рдВрддрд░реА рдкреИрдХреЗрдЯ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рдерд╛:
рдмрд░рдЧрдВрдбреА tslib рдкреНрд░рддрд┐рдпрд╛рдВ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓рд╛ Parsed size: 121.03 KB Gzipped size: 27.16 KB
рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд╕рдорд╕реНрдпрд╛ рдкрд╛рдИ рдЧрдИ: рдореИрдВрдиреЗ рдкреИрдХреЗрдЬ рдореЗрдВ рдирд┐рд░реНрднрд░рддрд╛ рд╕реЗ tslib@1.9.0 рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ред json, tslib@^1.9.3 рд╕рдВрддрд░реА рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ рдПрдХ рдмрд╛рд░ рд╢реАрд░реНрд╖ рд╕реНрддрд░ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдХреА рдЧрдИ рдереА, рдФрд░ рдкреИрдХреЗрдЯреЛрдВ рдХрд╛ рд╡рдЬрди 26 рдХреЗрдмреА рд╕реЗ рдХрдо рд╣реЛрдирд╛ рд╢реБрд░реВ рд╣реБрдЖ:

Parsed size: 94.5 KB Gzipped size: 26.5 KB
рдЗрд╕реА рддрд░рд╣ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛
рдбреБрдкреНрд▓рд┐рдХреЗрдЯ-рдкреИрдХреЗрдЬ-рдЪреЗрдХрд░-рд╡реЗрдмрдкреИрдХ-рдкреНрд▓рдЧрдЗрди рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рддреА рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ - рдпрд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдХрдИ рдШрдЯрдирд╛рдУрдВ рдХреЛ
рдирд╣реАрдВ рджрд┐рдЦрд╛рддрд╛ рд╣реИ , рдЕрд░реНрдерд╛рддреНред рд╕реНрдкреЙрдЗрд▓рд░ рдХреЗ рддрд╣рдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╕рдорд╕реНрдпрд╛, рдЬрд╣рд╛рдВ tslib рдХреЗ рдХрдИ рд╕рдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рд╣реИрдВ, рд╡рд╣ рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИред
рд╕рдВрджрд░реНрдн:
тЖТ
рдЬреАрдердмтЖТ
рдПрдирдкреАрдПрдо4. рдкрд░рд┐рдкрддреНрд░ рдирд┐рд░реНрднрд░рддрд╛ рдкреНрд▓рдЧрдЗрди
рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди, рдХрднреА-рдХрднреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реЛрддреА рд╣реИрдВ - рджреЛ рдореЙрдбреНрдпреВрд▓ рдПрдХ рджреВрд╕рд░реЗ рдХреЛ рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдкрд░рд┐рдкрддреНрд░ рдирд┐рд░реНрднрд░рддрд╛ рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛рддреА рд╣реИред рдпрд╣ рдЕрдиреНрдп рдореЙрдбреНрдпреВрд▓ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рджреБрд░реНрд▓рдн рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЪрдХреНрд░реАрдп рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рд╕рд╛рдорд╛рдиреНрдп рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИред
рдкрд░рд┐рдкрддреНрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рддреБрд░рдВрдд рджреЗрдЦрдиреЗ рдФрд░ рдЗрд╕реЗ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд░рд┐рдкрддреНрд░-рдирд┐рд░реНрднрд░рддрд╛-рдкреНрд▓рдЧрдЗрди рдЬреЛрдбрд╝реЗрдВ:
npm i circular-dependency-plugin
const CircularDependencyPlugin = require('circular-dependency-plugin'); module.exports = { plugins: [ new CircularDependencyPlugin(), ], };
рдЕрдм, рдЬрдм рдПрдХ рдкрд░рд┐рдкрддреНрд░ рдирд┐рд░реНрднрд░рддрд╛ рдкреНрд░рдХрдЯ рд╣реЛрддреА рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рдорд┐рд▓реЗрдЧреА:
import second from './second'
import first from './first'
WARNING in Circular dependency detected: first.js -> second.js -> first.js WARNING in Circular dependency detected: second.js -> first.js -> second.js
рдПрд╕реНрд▓рд┐рдВрдЯ рдФрд░
tslint рдХреЗ рд▓рд┐рдП
рдЖрдпрд╛рдд / рдиреЛ-рд╕рд╛рдЗрдХрд▓ рдирд┐рдпрдо-
tslint рдХреЗ рд▓рд┐рдП рдиреЛ-рд╕рд░реНрдХреБрд▓рд░-рдЗрдВрдкреЛрд░реНрдЯ рдПрдХ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░рддреЗ рд╣реИрдВред рдЙрддреНрддрд░рд╛рд░реНрджреНрдз, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХреЗрд╡рд▓ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рдХрд╛рд░реЛрдВ, рдЗрдВрдЯрд░рдлреЗрд╕ рдФрд░ рд╡рд░реНрдЧреЛрдВ рдХреЗ рдЖрдпрд╛рдд рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдирд╣реАрдВ рд╣реИ - рдЖрдкрдХреЛ рдЕрдХреНрд╕рд░ tslint рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛: рдЕрдХреНрд╖рдоред
рд╕рдВрджрд░реНрдн:
тЖТ
рдЬреАрдердмтЖТ
рдПрдирдкреАрдПрдо5. рд╕реНрдкреАрдб рдорд╛рдк рд╡реЗрдмрдкреИрдХ рдкреНрд▓рдЧрдЗрди
рдХрдИ рд╕реМ рдлрд╛рдЗрд▓реЛрдВ рд╕реЗ рдорд┐рд▓рдХрд░ рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ, рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдореЗрдВ рдХрдИ рдорд┐рдирдЯ рд▓рдЧ рд╕рдХрддреЗ рд╣реИрдВред
рд╕реНрдкреАрдб-рдорд╛рдк-рд╡реЗрдмрдкреИрдХ-рдкреНрд▓рдЧрдЗрди рд╣рд░ рдмрд┐рд▓реНрдб рдХрджрдо рдХреЛ рдорд╛рдкрдиреЗ рдФрд░ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛:
npm i speed-measure-webpack-plugin
const SpeedMeasurePlugin = require("speed-measure-webpack-plugin"); const smp = new SpeedMeasurePlugin(); module.exports = smp.wrap({ });
рдмрд┐рд▓реНрдб рдЖрдЙрдЯрдкреБрдЯ рдХреБрд▓ рдмрд┐рд▓реНрдб рд╕рдордп, рдкреНрд░рддреНрдпреЗрдХ рдкреНрд▓рдЧрдЗрди рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдФрд░ рд▓реЛрдбрд░ рдХреА рдкреНрд░рддреНрдпреЗрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдЬреЛрдбрд╝ рджреЗрдЧрд╛:
SMP General output time took 48.97 secs SMP - Plugins TerserPlugin took 19.6 secs OptimizeCssAssetsWebpackPlugin took 2.65 secs MiniCssExtractPlugin took 0.261 secs VueLoaderPlugin took 0.216 secs /* ... */ SMP - Loaders mini-css-extract-plugin, and css-loader, and postcss-loader took 21.81 secs module count = 33 cache-loader, and babel-loader, and ts-loader, and tslint-loader took 21.63 secs module count = 240 /* ... */
рдЙрдиреНрд╣реЛрдВрдиреЗ рдореБрдЭреЗ TerserPlugin рдХреА рдиреНрдпреВрдирддрдо рдЧрддрд┐ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рдЦреЛрдЬрдиреЗ рдореЗрдВ рдорджрдж рдХреА: рдореИрдВрдиреЗ рдХрдИ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╣рдЯрд╛ рджреАрдВ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдЖрдХрд╛рд░ рдкрд░ рд▓рдЧрднрдЧ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рдкрдбрд╝рд╛, рдФрд░ рдЗрд╕реЗ рдХреБрдЫ рд╕реЗрдХрдВрдб рддрдХ рддреНрд╡рд░рд┐рдд рдХрд┐рдпрд╛ред
рд╕рдВрджрд░реНрдн:
тЖТ
рдЬреАрдердмтЖТ
рдПрдирдкреАрдПрдо