#javascript #node.js #reactjs #webpack
#javascript #node.js #reactjs #webpack
Вопрос:
По какой-то причине моя сборка все еще улавливает и обрабатывает предупреждения о реакции на код, расположенный в node_modules. Я хочу отключить это, но не уверен, как он все еще читает этот код.
Я не использую componentWillMount
нигде в своем собственном коде. Это каким-то образом происходит в node_modules.
webpack.config.js
const path = require('path');
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
const TerserJSPlugin = require('terser-webpack-plugin');
const HtmlWebPackPlugin = require('html-webpack-plugin');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin');
const CopyPlugin = require('copy-webpack-plugin');
const isProduction = process.env.NODE_ENV === 'production';
const html = () =>
new HtmlWebPackPlugin({
template: path.resolve(__dirname, 'src/client', 'index.html'),
filename: 'index.html',
hash: true,
});
const copyAllOtherDistFiles = () =>
new CopyPlugin({
patterns: [
{ from: 'src/client/assets', to: 'lib/assets' },
{ from: 'package.json', to: './' },
{ from: 'ext/ink-3.1.10/js/ink-all.min.js', to: 'lib/js' },
{ from: 'ext/ink-3.1.10/js/autoload.min.js', to: 'lib/js' },
{ from: 'ext/ink-3.1.10/css/ink-flex.min.css', to: 'lib/css' },
{ from: 'ext/js/jquery-2.2.3.min.js', to: 'lib/js' },
{ from: 'ext/ink-3.1.10/fonts', to: 'lib/css/fonts' },
{ from: 'feed.xml', to: './' },
],
});
module.exports = {
entry: './src/client/index.tsx',
output: {
filename: 'scripts/app.[hash].bundle.js',
publicPath: '/',
path: path.resolve(__dirname, 'dist'),
},
resolve: {
extensions: ['.ts', '.tsx', '.js'],
},
devtool: 'source-map',
devServer: {
open: true,
writeToDisk: false,
publicPath: '/',
compress: true,
historyApiFallback: {
index: '/',
},
stats: 'errors-only',
proxy: {
'/api': {
target: 'http://localhost:3000',
secure: false,
changeOrigin: true,
logLevel: 'debug',
},
},
},
optimization: {
splitChunks: {
cacheGroups: {
styles: {
name: 'styles',
test: /.css$/,
chunks: 'all',
enforce: true,
},
},
},
},
module: {
rules: [
{
test: /.(js)$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader',
},
},
{
test: /.(tsx|ts)?$/,
use: 'ts-loader',
exclude: /node_modules/,
},
{
test: /.html$/,
exclude: /node_modules/,
use: [
{
loader: 'html-loader',
},
],
},
{
test: /.less$/,
exclude: /node_modules/,
use: [MiniCssExtractPlugin.loader, 'css-loader', 'less-loader'],
},
{
test: /.css$/,
exclude: /node_modules/,
use: [
{
loader: MiniCssExtractPlugin.loader,
options: {
publicPath: '../../',
outputPath: 'lib/css',
},
},
'css-loader',
],
},
{
test: /.(woff(2)?|ttf|eot|otf|svg)?$/,
use: [
{
loader: 'file-loader',
options: {
name: '[name].[ext]',
publicPath: '/lib/css/fonts', // <--resolve the path in css files
outputPath: 'lib/css/fonts', // <-- path to place font files
},
},
],
},
{
test: /.(png|svg|jpg|gif)$/,
use: ['url-loader'],
},
],
},
plugins: isProduction
? [
new CleanWebpackPlugin(),
copyAllOtherDistFiles(),
new MiniCssExtractPlugin({
filename: 'lib/css/[name].[hash].css',
}),
html(),
]
: [
copyAllOtherDistFiles(),
new MiniCssExtractPlugin({
filename: 'lib/css/[name].[hash].css',
}),
html(),
],
};
Комментарии:
1. также кто-нибудь может сказать мне, почему мой код с 2 пробелами отображается с 4, когда я вставляю код в stack?
2. Вы когда-нибудь разбирались в этом? У меня есть webpack, жалующийся на меня на предупреждения от сторонних библиотек из node_modules… вы когда-нибудь находили способ устранить это, не устраняя ошибок и предупреждений в вашем реальном коде?