react webpackを使用したパッケージング問題の概要

4941 ワード

一、TypeError:srcfoo.js:Cannot read property'bindings'of null問題原因:1.babel-loader一連のパッケージのバージョンが互換性がなく競合しているため、バージョンを確認する必要があります.以下は正常に実行できるバージョンの組み合わせです.「@babel/plugin-proposal-class-properties」:「^7.1.0」、「babel-core」:「^7.0.0-bridge.0」、「babel-loader」:「^7.1.5」、「babel-preset-env」:「^2.0.0-alpha.20」、「babel-preset-es 2015」:「^7.0.0-beta.3」 "babel-preset-react": "^7.0.0-beta.3", 2.rules構成時にnode_modules excludeドロップ、例:
{
                test: /\.js?$/,
                exclude: path.resolve(__dirname, "node_modules"),
                include: path.resolve(__dirname, "src"),
                use: {
                    loader: 'babel-loader',
                    options: {
                        presets: ['env', 'react'],
                        plugins: [
                            ["@babel/plugin-proposal-class-properties", { "loose": true }]
                        ]
                    },
                }
}

二、工事中にantdフレームワークに関わる場合、どのように配置すればいいですか?
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
    mode: "development",
    entry: path.resolve(__dirname, "./src/index.js"),
    output: {
        path: path.resolve(__dirname, "dist")
    },
    devServer: {
        contentBase: path.join(__dirname, "dist"),
        compress: true,
        port: 3000
    },
    resolve: {
        extensions: ['.js', '.jsx', '.less']
    },
    module: {
        rules: [
            {
                test: /\.css?$/,
                include: [path.join(__dirname, 'src'), path.join(__dirname, 'node_modules/antd')],
                use: [ 'style-loader', 'css-loader']
            },
            {
                test: /\.less?$/,
                include: [path.join(__dirname, 'src'), path.join(__dirname, 'node_modules/antd')],
                use: {
                    loader: "less-loader",
                    options:{
                        javascriptEnabled: true
                    }
                }
            },
            {
                test: /\.js?$/,
                use: {
                    loader: 'babel-loader',
                    options: {
                        presets: ['env', 'react'],
                        plugins: [
                            ["@babel/plugin-proposal-class-properties", { "loose": true }],
["import", { "libraryName": "antd", "style": "css" }],#    antd     
                        ]
                    },
                }
            },
            {
                test: /\.(ico|png|svg|jpg|gif)$/,
                exclude: path.resolve(__dirname, "node_modules"),
                include: path.resolve(__dirname, "src"),
                use: [
                    {
                        loader: 'file-loader',
                        options: {}
                    }
                ]
            }
        ]

    },
    plugins: [
        new HtmlWebpackPlugin({template: './public/index.html'})
    ]
};