webpack配置及使用技巧

webpack配置及使用技巧

文章源码下载

webpack 打包工具

压缩代码  JS 混淆代码

浏览器不支持 ES6 ES7 ES8语法特性
webpack -> 安装一系列的依赖包解决  翻译  编译  转换

less sass  CSS结构化 逻辑化
webpack -> 依赖处理less sass  -> css 编译转换打包

HTML压缩  模板  ejs pug

自动化方案 webpack

开发过程中 实时的编译 webpack-dev-server
npm init

> package name: (wp_learning)
> version: (1.0.0) 0.0.1
> description: Webpack study
> entry point: (index.js)
> test command:
> git repository:
> keywords: webpack
> author: ZLJ
> license: (ISC) MIT
First step:
三件套
webpack
webpack-cli
webpack-dev-server

Second step:
处理JS -> ES6 ES7 ES8  装饰器

六件套

babel-loader@7
babel-core
babel-preset-env

babel-plugin-transform-runtime

babel-plugin-transform-decorators
babel-plugin-transform-decorators-legacy


Thrid step:
处理  sass -> css -> style

四大件

sass-loader
node-sass
css-loader
style-loader

Fourth step:
处理模板 ejs-loader

fifth step:
处理HTML
html-webpack-plugin

--save-dev		-D
安装在开发环境下的

--save         -S
安装在生产环境下的     ejs
 npm i -D webpack webpack-cli webpack-dev-server babel-loader@7 babel-core babel-preset-env babel-plugin-transform-runtime babel-plugin-transform-decorators babel-plugin-transform-decorators-legacy sass-loader node-sass css-loader style-loader ejs-loader html-webpack-plugin --registry=https://registry.npm.taobao.org
 
 跟教程一样输了一长串 报错 于是决定按照教程的版本 一个一个安装
  npm i babel-core@6.26.3 -D
 npm i babel-loader@7.1.5 -D
 npm i babel-plugin-transform-decorators@6.24.1 -D
 npm i babel-plugin-transform-decorators-legacy@1.3.5 -D
npm i babel-plugin-transform-runtime@6.23.0 -D
 npm i css-loader@3.4.2 -D
npm i ejs-loader@0.3.5 -D
 npm i html-webpack-plugin@3.2.0 -D
 npm i node-sass@4.13.1 -D  报错
 npm i sass-loader@8.0.2 -D
 npm i style-loader@1.1.3 -D
 npm i webpack@4.41.5 -D
 npm i webpack-cli@3.3.10 -D
 npm i webpack-dev-server@3.10.1 -D

npm i node-sass@4.13.1 -D  报错 
这里我的报错是缺少python2
参考博客:从根本上解决npm install时,node-sass 报错缺少python2
使用命令npm i node-sass@4.13.1 --ignore-scripts -D安装成功

懒得输入这么多的命令 可以拿到我的package.json文件 npm install即可

{
  "name": "wp_learning",
  "version": "0.0.1",
  "description": "Webpack study",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [
    "webpack"
  ],
  "author": "ZLJ",
  "license": "MIT",
  "devDependencies": {
    "babel-core": "^6.26.3",
    "babel-loader": "^7.1.5",
    "babel-plugin-transform-decorators": "^6.24.1",
    "babel-plugin-transform-decorators-legacy": "^1.3.5",
    "babel-plugin-transform-runtime": "^6.23.0",
    "css-loader": "^3.4.2",
    "ejs-loader": "^0.3.5",
    "html-webpack-plugin": "^3.2.0",
    "node-sass": "^4.13.1",
    "sass-loader": "^8.0.2",
    "style-loader": "^1.1.3",
    "webpack": "^4.41.5",
    "webpack-cli": "^3.3.10",
    "webpack-dev-server": "^3.10.1"
  }
}

安装了这些依赖之后,我们要使用,所以要配置,新建webpack.config.js文件

const HtmlWebpackPlugin = require('html-webpack-plugin'),
    path = require('path');

module.exports = {
    mode: 'development', // development  production,
    entry: {  // 入口文件
        index: path.resolve(__dirname, './src/js/index.js')
    },
    output: {
        path: path.resolve(__dirname + '/dist'),
        filename: 'js/[name].js'
    },
    module: {
        rules: [ // 配置规则
            {
                test: /\.js$/,
                loader: 'babel-loader',
                exclude: path.resolve(__dirname, 'node_modules'), // 排除掉node_modules下的js
            },
            {
                test: /\.css$/,
                use: [ // 多个依赖 所以用use
                    'style-loader',
                    'css-loader'
                ]
            },
            {
                test: /\.scss$/,
                use: [ // 依赖是从下到上使用
                    'style-loader',
                    'css-loader',
                    'sass-loader'
                ]
            },
            {
                test: /\.tpl$/, // 对模板的处理
                loader: 'ejs-loader'
            }

        ]
    },
    plugins: [
        new HtmlWebpackPlugin({
            filename: 'index.html',
            template: path.resolve(__dirname, './src/index.html'),
            chunks: ['index'], // 入口
            excludeChunks: ['node_modules']
        })
    ],
    devServer: {
        open: true,
        host: 'localhost',
        port: 3300
    }
}

package.json配置启动命令

 "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "dev": "webpack-dev-server --config webpack.config.js",
    "webpack": "webpack --config webpack.config.js"
  },

在这里插入图片描述

出现以上报错 是因为我的node版本是17.3.0 过高 切换一下node版本再运行一下

在这里插入图片描述

再次运行成功了

终端输入webpack可以打包成功

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lalaxuan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值