webpack如何配置

一,什么是webpack,它的作用是什么?

可以看作是一个模块打包机,它的作用是将 ts .vue es6中modules  sass等转为浏览器识别的文件还可以实现文件压缩和合并,服务器的搭建,热更新等。

二,工作原理:

将整个项目作为一个整体,通过给定一个主文件(如main.js),webpack将从这个文件开始找到项目所需的所有依赖,并使用loaders将他们打包成一个或多个浏览器可以识别的js文件。

注意:全局安装webpack npm install webpack@3.6.0 -g(对于初学者建议安装4.0以下的版本,4以上的很多坑。

三,使用流程

1,npm init -y 初始化一个node包

2,局部安装 npm install webpack@3.6.0 --save-dev 如果终端提示不能安装同一个名包,可以使用npm link webpack命令(前提是webpack已全局安装)

3,建一个webpack.config.js文件

4在该文件里实现配置

5,配置入口文件路径 出口文件路径

 6.配置出口文件,入口文件

7,配置插件,初始化插件html-webpack-plugin

 001,安装 npm install  html-webpack-plugin@2.30.1

002,引入并实例化进行配置

 注意:如需在模板中调用htmlWebpackPlugin中的参数 可用以下方法 <%= htmlWebpackPlugin.options.属性名 %>

 8,配置babel

001,首先npm install --save-dev @babel/core babel-loader @babel/preset-env @babel/preset-react

002,安装css的loader

npm install --save-dev style-loader css-loader  sass-loader node-sass

注意:应当结合自己的node版本 webpack版本安装以上合适的版本,否则为出现较多坑

以下是我针对webpack3.6.0 html-webpack-plugin@2.30.1 node14版本安装的一些插件版本;

 具体配置如下:

9,热更新

 001,全局安装 npm install webpack-dev-server@2 -g

002,在package.json中的script里增加启动命令

 003,启动项目npm run start

10,webpack实现跨域

代码如下

 

 以上就实现了简单的webpack配置。

以下是配置文件中完整的代码:

webpack.config.js

const path = require('path')
const HtmlWebpackPlugins = require('html-webpack-plugin')
// 配置入口出口文件夹

const PATH = {
    app: path.resolve(__dirname, './src/main.js'),
    build: path.join(__dirname, './dist')
}

module.exports = {
    entry: {
        aa: PATH.app
    },
    output: {
        filename: '[name].js',
        path: PATH.build
    },
    plugins: [
        new HtmlWebpackPlugins({
            title: '总要离开的',
            template: 'index.html',
            filename: 'index.html'
        })
    ],
    module: {
        rules: [
            {
                test: /\.(js |jsx)$/,
                use: {
                    loader: 'babel-loader',
                    options: {
                        presets: ["@babel/env", "@babel/react"]
                    }
                },
                // 处理不需要编译的文件,否则编译很慢
                exclude: __dirname + 'node_modules/',
                include: __dirname + 'src'
            },
            {
                test: /\.(css|scss)$/,
                use: ['style-loader', 'css-loader', 'sass-loader']
            },
            // {
            //     test:/\.html$/,
            //     loader:'html-loader'
            // },
        ]

    },
    devServer: {
        proxy: {
            "/api": {
                target: 'https://www.vue-js.com',
                changeOrigin: true,
                ws: true,
                Pathrewrite: {
                    '^/api': ''
                },
            }
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值