Config продолжает Uglify JS даже после удаления конфигурации Uglify - PullRequest
0 голосов
/ 17 мая 2018

Использование webpack 4 Я развернул в производство, и на одной из страниц в консоли отображается сообщение об ошибке:

Ошибка: [$ инжектор: unpr] http://errors.angularjs.org/1.6.10/$injector/unpr?p0=eProvider%20%3C-%20e

А в угловых документах отображается

Неизвестный поставщик: eProvider <- e </p>

Люди говорят, что это сообщение относится к Uglifying вашему сценарию и вызывает это бесполезное сообщение об ошибке. Поэтому я удалил конфигурацию Uglify из webpack.prod.js, и сценарий продолжает очищаться, поэтому консоль все еще предоставляет мне эту бесполезную ошибку.

Я опубликую свои webpack.common.js и webpack.prod.js ниже, чтобы вы могли взглянуть, но я на 90% уверен, что не осталось конфигурации, которая бы испортила сценарии?

Вопрос

Как остановить отключение, чтобы увидеть, откуда возникла ошибка в консоли?

webpack.common.js

const path = require('path');
const webpack = require('webpack');
const CleanWebpackPlugin = require('clean-webpack-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
// const devMode = process.env.NODE_ENV !== 'production';

module.exports = {
  devtool: "source-map",
  entry: {
    vendor: './src/js/vendor.js',   
    app: './src/js/index.js',
    style: './src/scss/main.scss'
  },
  output: {
    path: path.resolve(__dirname, "dist"),
    filename: '[name].bundle.js'
  },
  resolve: {
    alias: {
      localScripts: path.resolve(__dirname, 'assets'),
      app: path.resolve(__dirname, 'app'),
    }
  },
  module: {
    rules: [
      {
        test: /\.(png|jpg|gif|woff|woff2|eot|ttf|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/,
        use: [
            'file-loader',
            {
              loader: 'image-webpack-loader',
              options: {
                bypassOnDebug: true,
              },
            },            
        ]
      }, 
      {
        test: /\.css$/,
        use: [
          MiniCssExtractPlugin.loader,
          { loader: 'css-loader', options: { url: false, sourceMap: true } }
        ]
      },      
      {
        test: /\.scss$/,
        include: [
          path.resolve(__dirname, "./src/scss")
        ],
        // exclude: [
        //   path.resolve(__dirname, "node_modules")
        // ],        
        use: [
          'style-loader',
          MiniCssExtractPlugin.loader,
          { 
            loader: 'css-loader', 
            options: { 
              url: false, sourceMap: true 
            } 
          },
          { 
            loader: 'sass-loader', 
            options: { 
              sourceMap: true 
            } 
          }
        ]
      },
      { 
        test: /\.(png|woff|woff2|eot|ttf|svg)$/, 
        loader: 'url-loader?limit=100000' 
      }
    ]
  },
  // cache: false,
  plugins: [
    new webpack.ProvidePlugin({
        $: 'jquery',
        jQuery: 'jquery'
    }),  
    new webpack.ContextReplacementPlugin(/\.\/locale$/, 'empty-module', false, /js$/), //needed for bug in moment
    new CleanWebpackPlugin(['dist']),
    new HtmlWebpackPlugin({
      inject: false,
      title: 'Patent Place',
      template: 'index.htm'

    }),
    new webpack.NamedModulesPlugin(),
    new webpack.HotModuleReplacementPlugin()      
  ]
}

webpack.prod.js

const path = require('path');
const webpack = require('webpack');
const merge = require('webpack-merge');
const common = require('./webpack.common.js');
const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
const OptimizeCSSAssetsPlugin = require("optimize-css-assets-webpack-plugin");

module.exports = merge(common, {
  mode: 'production',
  devtool: 'source-map',
  plugins: [
    new MiniCssExtractPlugin({
      sourceMap: true,
      filename: "main.css"
    }),
    //new UglifyJsPlugin({
      //sourceMap: true,
      //test: /\.js($|\?)/i,
    //}),
    new OptimizeCSSAssetsPlugin({
      cssProcessorOptions: {
        map: {
          inline: true
        }
      }
    }),
    new webpack.DefinePlugin({
      'process.env.NODE_ENV': JSON.stringify('production')
    })    
    ]
});

Ответы [ 2 ]

0 голосов
/ 17 мая 2018

Для тех, кто хочет знать, что я сделал, чтобы отключить увеличение, основываясь на ответе jumoel, я добавил это в свою конфигурацию:

webpack.common.js

module.exports = {
  devtool: "source-map",
  optimization: {
      minimize: false
  }
0 голосов
/ 17 мая 2018

Вы включили режим production в Webpack. Это включает плагин UglifyJS автоматически :

Производство

Предоставляет process.env.NODE_ENV значение production. Включает FlagDependencyUsagePlugin, FlagIncludedChunksPlugin, ModuleConcatenationPlugin, NoEmitOnErrorsPlugin, OccurrenceOrderPlugin, SideEffectsFlagPlugin и UglifyJsPlugin.

Чтобы отключить минимизацию, установите mode на development или переопределите параметры optimization.minimize и / или optimization.minimizer.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...