1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- const path = require('path');
- const MiniCssExtractPlugin = require("mini-css-extract-plugin");
- const webpack = require('webpack')
- module.exports = {
- mode: 'production',
- // devtool: "source-map",
- entry: path.join(__dirname, "./src/export.js"),
- output: {
- filename: 'index.js',
- path: path.resolve(__dirname, 'lib'),
- //意思是把我们的输出作为组件,没有这个在react项目中识别不到export导出的组件
- library: {
- type: 'umd', // 以库的形式导出入口文件时,输出的类型,这里是通过umd的方式来暴露library,适用于使用方import的方式导入npm包
- }
- },
- resolve: {
- // 设置别名
- extensions: ["*", ".js", ".jsx"],// 配置会将没指定拓展名的文件按如下类型查找匹配
- alias: {
- '@': path.resolve(__dirname, 'src'),
- antd: path.resolve(__dirname, "node_modules/antd"),
- }
- },
- module: {
- rules: [
- {
- test: /\.(css|scss)$/i,
- use: ["style-loader", MiniCssExtractPlugin.loader, "css-loader", "sass-loader"],
- },
- {
- test: /\.(js|jsx)$/,
- loader: 'babel-loader',
- include: [path.resolve('src')],// 只在src文件夹下查找
- exclude: /(node_modules|dist|build|example)/
- },
- {
- test: /(\.module)?.(sass|scss)$/,
- use: [
- 'style-loader',
- {
- loader: 'css-loader',
- options: {
- modules: {
- localIdentName: '[path][name]__[local]--[hash:base64:5]',
- },
- sourceMap: true,
- },
- },
- 'sass-loader',
- ],
- },
- {
- test: /(\.module)?.(less)$/,
- use: [
- 'style-loader',
- {
- loader: 'css-loader',
- options: {
- modules: {
- localIdentName: '[path][name]__[local]--[hash:base64:5]',
- },
- sourceMap: true,
- },
- },
- 'less-loader',
- ],
- },
- ]
- },
- plugins: [
- new MiniCssExtractPlugin({
- filename: "index.css" // 提取后的css的文件名
- }),
- new webpack.ProvidePlugin({
- "React": "react",
- }),
- ],
- // externalsPresets: { node: true },
- //打包时不将以下依赖打包进index.js,需要引用组件的项目提前npm好
- externals: [{
- 'react': 'react',
- 'react-dom': 'react-dom',
- },
- ]
- }
|