как игнорировать файлы, расположенные в папке dist из артефакта? - PullRequest
0 голосов
/ 10 апреля 2019

Я использую npm с webpack. У меня есть index.js из моего проекта, и этот файл включен * .js файлы.

мой файл base.config вот так:

const path = require('path');
const webpack = require('webpack');
const CleanWebpackPlugin = require('clean-webpack-plugin');
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
const extractCSS = new MiniCssExtractPlugin({ filename: '[name].bundle-css.css', allChunks: true });
const extractLESS = new MiniCssExtractPlugin({ filename: '[name].bundle-less.css', allChunks: true });
const WebpackMd5Hash = require('webpack-md5-hash');
const babelOptions = {
    presets: [
        [
            '@babel/preset-env', {
                targets: {
                    browsers: [ 'ie >= 11' ]
                },
                useBuiltIns: 'entry'
            }
        ]
    ],
    plugins: ["angularjs-annotate", "transform-remove-strict-mode"]
};

module.exports = function (env) {
    return {
        context: path.resolve(__dirname + '/../src/MyProject/'),
        stats: {
            .....
        },
        entry: {
            zapp: [ 'babel-polyfill', './app/index.js' ] //index.js is input
        },
        output: {
            path: path.resolve(__dirname, '../src/MyProject/dist'),
            filename: '[name].bundle.js',
        },
        mode: 'none',
        module: {
            rules: [
                {
                    test: /\.js$/,
                    exclude: [
                        path.resolve(__dirname, '/src/MyProject/app/module/pi.ui')
                    ],
                    include: includePaths,
                    use: [{
                        loader: 'babel-loader?cacheDirectory=true',
                        options: babelOptions,
                    }],
                },
            ]
        }
    };
};

и мой prod.config вот так:

const path = require('path');
const webpack = require('webpack');
const webpackMerge = require('webpack-merge');
const commonConfig = require('./webpack.base.config.js');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const UglifyJsPlugin = require('uglifyjs-webpack-plugin');

module.exports = function (env) {
    return webpackMerge(commonConfig(), {   
        devtool: 'source-map',
        devServer: {
            contentBase: path.resolve(__dirname, './'),  // New
            compress: true
        },
        mode: 'production',
        optimization: { 
            minimizer: [
                new UglifyJsPlugin({
                    test: /\.js(\?.*)?$/i,
                })
            ]
        },
        plugins: [
            new HtmlWebpackPlugin({
                hash: true,
                inject: false,
                filename: '../bundle.html',
                template: 'bundle.template.ejs'
            }),
            new webpack.LoaderOptionsPlugin({
                minimize: true,
                debug: false
            }),
            new webpack.DefinePlugin({
                'process.env': {
                    'NODE_ENV': JSON.stringify('production')
                }
            })
        ]
    });
};

Я хочу уменьшить размер моего проекта. поэтому нет необходимости * .js файл, если этот файл уже в комплекте. Мой zapp.bundle.js уже включал все файлы js. Я имею в виду, я хочу игнорировать внутри js-файла папки приложения. Есть какой-либо способ сделать это ? build artifact

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