webpack 创建空白新项目

该教程详细介绍了如何从创建空白项目开始,一步步配置Webpack,包括安装和使用jQuery,设置ES6导入,创建HTML和JS文件,安装并配置Webpack及DevServer,处理CSS和LESS样式,导入图片,以及打包和优化项目。此外,还涉及到了如何在开发和生产环境中使用不同配置。
摘要由CSDN通过智能技术生成

课程url:

https://www.bilibili.com/video/BV1zq4y1p7gap=6&spm_id_from=pageDriver&vd_source=ff8b7f852278821525f11666b36f180a

1、创建空白项目

1、新建一个文件夹
2、运行cmd
    D: //进入d盘
    cd 路径  //cd D:\test\test002

3、运行 npm init -y
4、文件夹里 新建src文件夹
5、在test文件夹下 右键 选中以 visual studio code 软件打开文件夹,进入编辑
6、在src文件夹里,创建index.html 文件
7、在src文件夹里,创建index.js 文件
6、打开 visual studio code 软件打开index.html编辑文件,空白的,输入 !(输入感叹号回车),初始化

2、安装包  ES6导入包

1、cmd 安装 npm install jquery --save 简写 npm i jquery -S //package.json 中可以看到包
2、在index.js 
    import $ from jquery
3、定义jquery 入口函数
    $(function(){
        //写函数
        $().css()
    })

3、引入

在index.html中
<script src="./index.js"></script>

4、报错安装webpack

npm install webpack@5.42.1
npm install webpack-cli@4.7.2 -D // npm install webpack-cli@4.7.2 --save-dev
// 要在项目的文件夹里npm 才会出现包

注意:

-S 包在项目开发和运营时 加 -S
-D 只在开发时用的包 加 -D

在npmjs.com 官方查看

5、配置包

1、项目根目录中 创建webpack.config.js文件

module.exports = {
    mode: 'development' //mode两种模式 第一种 development开发模式,第二种 production上线模式
    
}

6、运行脚本

在package.json的scripts节点下 写dev脚本
"scripts":{"dev":"webpack"}

这样就可以在cmd 中 npm run dev 运行脚本,其中dev 可以时serve 也可以是自定义

7、运行后

1、自动生成 main.js 根据index.js自动生成dist文件夹 生成main.js文件
2、改 index.html
删掉<script src="./index.js"></script> 
写入<script src="../dist/main.js"></script>

8、修改默认配置文件,index.js main.js 可以修改名称

在webpack.config.js中
const path = require('paht')//导入node.js 操作路径的模块

module.exports = {
    entry: path.join(__dirname, './src/index.js'), //打包的入口文件路径

    output:{path: path.join__(__dirname, './dist'),filename: 'main.js'} //输出的文件存放路径
    
  
}

9、解决 改完源代码不自动刷新 需要重新cmd

npm install webpack-dev-server@3.11.2 -D

修改 package.json 中scripts 中 dev

"dev": "webpack" 改成"dev": "webpack serve"

注意 
查看package.json 中是否有webpack-dev-server
停止cmd终端
ctrl + c

10、实时修改应该引用 内存里的main.js

//内存里的main.js在硬盘里看不到文件,但可以使用,在根目录
<script src="/main.js"></script>

注意:
如果配置 html-webpack-plugin@5.3.2 -D
可以不写 <script src="/main.js"></script> 
会自动生成

11、直接进入浏览器页面

//把src中的index.html放入根目录
npm install html-webpack-plugin@5.3.2 -D
配置文件

导入 --> 实例化 --> 使用

1、导入HTML插件 得到构造函数
const HtmlPlugin = require('html-webpack-plugin')

2、创建HTML 插件的实例对象

const htmlPlugin = new HtmlPlugin({

    template: './src/index.html', //指定源文件的存放路径 复制
    filename: './index.html', // 指定生成的文件的存放路径
}) 

module.exports = {
    
    mode: 'development' //mode两种模式 第一种 development开发模式,第二种 production上线模式
    
    entry: path.join(__dirname, './src/index.js'), //打包的入口文件路径
    output:{path: path.join__(__dirname, './dist'),filename: 'main.js'} //输出的文件存放路径
    

    plugins: [htmlPlugin], 通过plugins节点 使htmlPlugin插件生效
}

12、自动打开浏览器 不复制链接 /修改port/指定ip

在webpack.config.js中加入

devServer:{
    open: ture
    port: 80
    host: '127.0.0.1'
}

13、CSS loader //第十四课

1、在src目录创建文件夹css
2、在css文件夹创建index.css
3、在index.js中
import './css/index.css'
//.css文件要 loader 加载器
4、安装
npm i style-loader@3.0.0 css-loader@5.2.6

5、配置文件

module.exports = {
    mode: 'development' ,//mode两种模式 第一种 development开发模式,第二种 production上线模式

    entry: path.join(__dirname, './src/index.js'), //打包的入口文件路径

    output:{path: path.join__(__dirname, './dist'),filename: 'main.js'},  //输出的文件存放路径

    rules:[{test: /\.css$/, use:['style-loader','css.loader']}]
}

14、less

npm i less-loader@10.0.1 less@4.1.1 -D

配置文件

module.exports = {
    mode: 'development' ,//mode两种模式 第一种 development开发模式,第二种 production上线模式

    entry: path.join(__dirname, './src/index.js'), //打包的入口文件路径

    output:{path: path.join__(__dirname, './dist'),filename: 'main.js'},  //输出的文件存放路径

    rules:[{test: /\.css$/, use:['style-loader','css.loader']}]

    rules:[{test: /\.less$/, use:['style-loader','css-loader','less-loader']}],
}

15、在index.html导入图片

//loader
npm i url-loader@4.1.1 file-loader@6.2.0 -D

//配置文件
module.exports = {
    mode: 'development' ,//mode两种模式 第一种 development开发模式,第二种 production上线模式

    entry: path.join(__dirname, './src/index.js'), //打包的入口文件路径

    output:{path: path.join__(__dirname, './dist'),filename: 'main.js'},  //输出的文件存放路径

    #rules:

    rules:[{test: /\.css$/, use:['style-loader','css.loader']},
            {test: /\.less$/, use:['style-loader','css-loader','less-loader',]},
            {test: /\.jpg|png|gif$/, use:['url-loader?limit=22229']},
            //limit 是限制图片base64大小
           ]}

index.html
<img> src="" alt="" class="box"<img/>


index.js
import logo from './images/logo.jpg'
$('.box').attr('src', logo)

16、打包,在硬盘上 //第22课

package.json 文件 scripts 节点上

"scripts":{
    "dev": "webpack serve", //开发时放内存
    "build":"webpack" --mode production" //项目发布时, 运行 build命令,放硬盘
    //--mode 是修改 webpack.config.js mode的值
}

cmd
npm run build

//可以删除 dist文件夹

17、优化打包

//配置文件webpack.config.js
module.exports = {
    mode: 'development' ,//mode两种模式 第一种 development开发模式,第二种 production上线模式

    entry: path.join(__dirname, './src/index.js'), //打包的入口文件路径

    output:{path: path.join__(__dirname, './dist'),filename: 'main.js'},  //输出的文件存放路径

把js文件存放在js文件夹下
__dirname, 'js/dist'
把图片放入imges
&outputPath=images


module.exports = {
    mode: 'development' ,//mode两种模式 第一种 development开发模式,第二种 production上线模式

    entry: path.join(__dirname, './src/index.js'), //打包的入口文件路径

    output:{path: path.join__(__dirname, 'js/dist'),filename: 'main.js'},  //输出的文件存放路径

    #rules:

    rules:[{test: /\.css$/, use:['style-loader','css.loader']},
            {test: /\.less$/, use:['style-loader','css-loader','less-loader',]},
            {test: /\.jpg|png|gif$/, use:['url-loader?limit=22229&outputPath=images']},
            //limit 是限制图片base64大小
           ]}

index.html
<img> src="" alt="" class="box"<img/>


index.js
import logo from './images/logo.jpg'
$('.box').attr('src', logo)

18、打包行号和源文件行号 报错问题

第26课
//发布时 关闭,安全
webpack.config.js文件里

module.exports = {
devtool: 'eval-source-map
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值