Javascript 优化网页包构建时间
在保存文件中的更改后,我在编译项目时遇到问题;文件的编译时间需要2分钟或更长时间 为了解决此问题,我采取了以下步骤: 1.在babel loader中,属性cacheDirectory的选项对象中的文档设置为true,CacheCompression设置为false 2.在ts加载器中,属性transpileOnly和happyPackMode的选项对象中的文档设置为true 3.dev-tool已禁用以获得更好的性能 4.ForkTsCheckerWebpackPlugin已连接到检查typescript中的类型 5.自定义代码拆分 网页包配置文件Javascript 优化网页包构建时间,javascript,reactjs,typescript,webpack,Javascript,Reactjs,Typescript,Webpack,在保存文件中的更改后,我在编译项目时遇到问题;文件的编译时间需要2分钟或更长时间 为了解决此问题,我采取了以下步骤: 1.在babel loader中,属性cacheDirectory的选项对象中的文档设置为true,CacheCompression设置为false 2.在ts加载器中,属性transpileOnly和happyPackMode的选项对象中的文档设置为true 3.dev-tool已禁用以获得更好的性能 4.ForkTsCheckerWebpackPlugin已连接到检查type
const path = require('path');
const ESLintPlugin = require('eslint-webpack-plugin');
const webpack = require('webpack');
// eslint-disable-next-line import/no-extraneous-dependencies
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin');
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
module.exports = {
entry: [
path.resolve(__dirname, 'src/index.tsx'),
],
mode: 'development',
module: {
rules: [
{ parser: { requireEnsure: false } },
{
test: /\.(ts|tsx)$/,
exclude: /(node_modules)/,
use: [
{
loader: 'babel-loader',
options: {
cacheDirectory: true,
cacheCompression: false,
},
},
{
loader: 'ts-loader', options: {
transpileOnly: true,
happyPackMode: true
},
},
],
},
{
test: /\.scss$/,
use: [
{
// creates style nodes from JS strings
loader: 'style-loader',
},
{
// translates CSS into CommonJS
loader: 'css-loader',
},
{
// compiles Sass to CSS
loader: 'sass-loader',
},
{
loader: 'postcss-loader',
options: {
ident: 'postcss',
plugins: [
// eslint-disable-next-line global-require
require('autoprefixer'),
],
},
},
],
},
{
test: /\.less$/,
use: ExtractTextPlugin.extract({
fallback: 'style-loader',
use: ['css-loader', 'less-loader'],
}),
},
{
test: /\.css$/,
use: [
{
// creates style nodes from JS strings
loader: 'style-loader',
},
{
// translates CSS into CommonJS
loader: 'css-loader',
},
],
},
{
test: /\.svg/,
use: {
loader: 'svg-url-loader',
},
},
{
test: /\.(png|jpe?g|gif)$/i,
use: [
{
loader: 'file-loader',
},
],
},
],
},
// devtool: 'source-map',
optimization: {
runtimeChunk: {
name: 'app',
},
splitChunks: {
cacheGroups: {
vendors: {
test: /[\\/]node_modules[\\/]/,
name: 'vendors',
chunks: 'all',
},
},
},
minimize: true,
},
resolve: { extensions: ['*', '.js', '.jsx', '.ts', '.tsx', 'scss'], modules: ['node_modules'] },
output: {
// path: `${__dirname}/dist`,
// filename: 'app.js',
publicPath: 'http://localhost:3000/hmr/',
chunkFilename: '[id].js?v=[chunkhash]',
},
devServer: {
stats: {
// assets: true,
// cachedAssets: true,
// performance: true,
// entrypoints: true,
// chunkGroups: true,
// chunks: true,
// chunkModules: true,
// show modules contained in each chunk
// chunkOrigins: true,
// show the origin of a chunk (why was this chunk created)
// chunkRelations: true,
// show relations to other chunks (parents, children, sibilings)
// dependentModules: true,
},
disableHostCheck: true,
host: '127.0.0.1',
port: 3000,
publicPath: '/hmr/',
filename: 'app.js',
// hot: true,
// hotOnly: true,
},
plugins: [
new webpack.HotModuleReplacementPlugin(),
new ForkTsCheckerWebpackPlugin({
typescript: {
diagnosticOptions: {
semantic: true,
syntactic: true,
},
},
async: true,
}),
new ESLintPlugin({
eslintPath: 'eslint',
fix: true,
quiet: true,
extensions: ['ts', 'tsx'],
}),
new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/),
],
};
请告诉我如何在保存文件后减少项目中文件的编译时间?解决了这个问题。问题出在eslint loader网页包插件中。如果安装旧版本的eslint loader,则一切正常
如何解决eslint loader webpack插件速度慢的问题?解决方案可能与删除webpack、安装webpack一样简单。感谢您的建议,但项目使用webpack,我需要为其寻找解决方案。webpack速度慢是出了名的,除了购买速度更快的计算机之外,您实在无能为力。这就是我推荐Parcel的原因,它通常效率更高。