VUE学习笔记--webpack(上)

简介: VUE学习笔记--webpack

webpack的基本使用

创建列表隔行变色项目

1.新建项目空白目录,并运行 npm init -y 命令,初始化包管理配置文件package.json

2.新建src源代码项目

3.新建src -> index.hmtl 首页和src -> index.js 脚本文件

4.初始化页面基本结构

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="./index.js"></script>
    <!-- <script src="../dist/main.js"></script> -->
</head>
<body>
    <ul>
        <li>这是第 1 个li</li>
        <li>这是第 2 个li</li>
        <li>这是第 3 个li</li>
        <li>这是第 4 个li</li>
        <li>这是第 5 个li</li>
        <li>这是第 6 个li</li>
        <li>这是第 7 个li</li>
        <li>这是第 8 个li</li>
        <li>这是第 9 个li</li>
    </ul>
</body>
</html>

5.运行 npm install jquery -S 命令,安装jQuery

6.通过ES6 模块化的方式导入jQuery,实现列表隔行变色

// 使用ES6导入语法,导入jQuery
import $ from 'jquery'
// 定义jQuery的入口
$( function() {
    $('li:odd').css('background-color', 'blue');
    $('li:even').css('background-color', 'yellow');
} )

// 使用ES6导入语法,导入jQuery

import $ from ‘jquery’

会报错,样式会无法显示,需要安装webpack

在项目中安装webpack

在对应的文件夹中(存放代码的文件,刚新建的项目目录)启动终端,运行

npm install webpack@5.42.1 webpack-cli@4.7.2 -D

安装webpack相关的两个包

-D 装完后,把信息记录到package.json的devDependencies

-S 装完后,把信息记录到package.json的dependencies

项目开发和上线都要用到的包,用-S;只在开发阶段用,用-D

-S是–save的简写;-D是–save-dev的简写

可在该网站查询

在项目中配置webpack

1.在项目的根目录中创建webpack.config,js的webpack的配置文件,并初始化如下的基本配置:

// 使用Node.js中的导出语法,向外导出一个webpack的配置对象
module.exports = {
    // 代表webpack运行的模式,可选值有两个development和production
    //development 开发时使用
    //production 上线时使用
    //development 打包时间短 文件大  开发用;   production打包时间长 文件小 项目上线用
    mode: 'development'
}

2.在webpack.json的script节点下,新增dev脚本

"scripts": {
//script节点下的脚本可以通过npm run 执行
    "dev": "webpack"
  },

3.在终端运行

npm run dev

webpack.config.js的作用

webpack.config.js是webpack的配置文件,webpack在真正开始打包构建之前,会先读取这个配置文件,从而基于给定的配置,对项目进行打包

由于webpack是基于node.js开发出来的打包工具,在它的配置文件中支持使用node.js的相关语法和模块进行webpack的个性化配置

webpack的默认约定

在webpack4.x 和 5.x 的版本中,

1.默认的打包入口为src -> index.js

2.默认的输出文件路径为 dist -> main.js

可以在webpack.config.js中修改打包的默认约定

自定义打包的入口和出口

在webpack.config.js中,通过entry节点指定打包的入口,output节点指定打包的出口

//导入node.js中操作路径模块
const path = require('path');
module.exports = {
// 代表webpack运行的模式,可选值有两个development和production
    mode: 'development'
    entry: path.join(__dirname, './src/index.js'), //打包入口文件路径
    output: {
        path: path.join(__dirname, './dist'), //输出文件的存放路径
        filename: 'main.js' //输出文件名称
    }
}

每次改代码后需要重新打包(麻烦)

webpack中的插件

可以安装和配置第三方插件,拓展webpack的能力,从而让webpack用起来更方便

常用的webpack插件:

1.webpac-dev-server:

每当修改源代码,webpack会自动进行项目的打包和构建

2.html-webpack-plugin:

可以通过此插件自定制index.html页面的内容

安装 webpac-dev-server

运行如下命令安装插件:

npm install webpac-dev-server@3.11.2 -D

配置webpac-dev-server:

1.修改package.json中的script的dev命令:

"scripts": {
    "dev": "webpack serve"
  },

2.再次运行 npm run dev

3.在浏览器中访问 http://localhost:8080/ 查看打包效果

webpack会启动一个实时打包的http服务器

如果报错了是webpack-cli的版本不兼容,重新安装webpack-cli的4.9.0版本

npm install webpack@5.42.1 webpack-cli@4.9.0 -D

由于:

i 「wds」: Project is running at http://localhost:8080/

i 「wds」: webpack output is served from /

所以需要修改html中导入的js

<script src="/main.js"></script>

在浏览器中打开 http://localhost:8080/ 打开src(浏览器会自动打开index.html)

安装 html-webpack-plugin

运行如下命令即可在项目中安装此插件:

npm install html-webpack-plugin@5.3.2 -D

在webpack.config.js文件中配置

html-webpack-plugin会把指定的页面复制到根目录中,在复制页面的同时会自动注入一个脚本,使得可以直接访问链接查看网页的效果,不用在点击src文件夹

//导入html-webpack-plugin插件 得到插件的构造函数
const HtmlPlugin = require('html-webpack-plugin')
// new构造函数创建插件的实例对象
const htmlPlugin = new HtmlPlugin({
    // 指定要复制哪个页面
    template: './src/index.html',
    // 指定复制出来的文件名和存放路径
    filename: './index.html'
})
// 使用Node.js中的导出语法,向外导出一个webpack的配置对象
module.exports = {
    // 代表webpack运行的模式,可选值有两个development和production
    mode: 'development',
    // 插件的数组 将来webpack在运行时会加载并调用这些插件
    plugins: [htmlPlugin]
}

通过插件复制到项目根目录的index.html会被放到内存中,插件在生成index.html页面会自动注入打包的index.js文件

devServer节点

// 使用Node.js中的导出语法,向外导出一个webpack的配置对象
module.exports = {
    // 代表webpack运行的模式,可选值有两个development和production
    mode: 'development',
    // 插件的数组 将来webpack在运行时会加载并调用这些插件
    plugins: [htmlPlugin],
    devServer: {
        // 首次打包成功后自动打开浏览器
        open:true,
        // 在http协议中如果端口号为80可以省略
        port:80,
        // 指定主机运行的地址
        host:'127.0.0.1' 
    }
}

处理css文件

在index.js文件中

// 导入样式,在webpack中,一切皆模块,都可以通过es6导入语法进行导入和使用
import './css/index.css'

运行:

npm i style-loader@3.0.0 css-loader@5.2.6 -D

安装处理css文件的loader

//导入html-webpack-plugin插件 得到插件的构造函数
const HtmlPlugin = require('html-webpack-plugin')
// new构造函数创建插件的实例对象
const htmlPlugin = new HtmlPlugin({
    // 指定要复制哪个页面
    template: './src/index.html',
    // 指定复制出来的文件名和存放路径
    filename: './index.html'
})
// 使用Node.js中的导出语法,向外导出一个webpack的配置对象
module.exports = {
    // 代表webpack运行的模式,可选值有两个development和production
    mode: 'development',
    // 插件的数组 将来webpack在运行时会加载并调用这些插件
    plugins: [htmlPlugin],
    devServer: {
        // 首次打包成功后自动打开浏览器
        open:true,
        // 在http协议中如果端口号为80可以省略
        port:8080,
        // 指定主机运行的地址
        host:'127.0.0.1' 
    },
    module: {
        rules:[{
            test:/\.css$/, use:['style-loader', 'css-loader']
        }]
    }
}


相关文章
|
2月前
|
JavaScript
webpack学习三:webpack初始化整合配置vue,一步一步的抽离代码块整合vue。
这篇文章是关于如何在webpack环境中配置Vue.js,包括安装Vue.js、解决报错、理解el与template的区别、使用SPA模式、抽离模板为对象、封装为单独的js文件、安装vue-loader时遇到的问题及解决方案,以及整个过程的总结。
72 2
webpack学习三:webpack初始化整合配置vue,一步一步的抽离代码块整合vue。
|
3月前
|
JavaScript 测试技术 Windows
vue配置webpack生产环境.env.production、测试环境.env.development(配置不同环境的打包访问地址)
本文介绍了如何使用vue-cli和webpack为Vue项目配置不同的生产和测试环境,包括修改`package.json`脚本、使用`cross-env`处理环境变量、创建不同环境的`.env`文件,并在`webpack.prod.conf.js`中使用`DefinePlugin`来应用这些环境变量。
123 2
vue配置webpack生产环境.env.production、测试环境.env.development(配置不同环境的打包访问地址)
|
3月前
|
JavaScript 前端开发 IDE
Vue学习笔记5:用Vue的事件监听 实现数据更新的实时视图显示
Vue学习笔记5:用Vue的事件监听 实现数据更新的实时视图显示
|
3月前
|
JavaScript 前端开发 API
Vue学习笔记4:用reactive() 实现数据更新的实时视图显示
Vue学习笔记4:用reactive() 实现数据更新的实时视图显示
|
3月前
|
JavaScript 前端开发
Vue学习笔记8:解决Vue学习笔记7中用v-for指令渲染列表遇到两个问题
Vue学习笔记8:解决Vue学习笔记7中用v-for指令渲染列表遇到两个问题
|
3月前
|
JavaScript 前端开发 API
Vue学习笔记7:使用v-for指令渲染列表
Vue学习笔记7:使用v-for指令渲染列表
|
4月前
|
前端开发 JavaScript API
|
4月前
|
JavaScript 前端开发 API
解锁前端开发新境界:Vue.js携手Webpack,打造高效构建流程,你的项目值得拥有!
【8月更文挑战第30天】随着前端技术的发展,模块化与组件化趋势愈发显著。Vue.js 以其简洁的 API 和灵活的组件系统,深受开发者喜爱;Webpack 则凭借强大的模块打包能力成为前端工程化的基石。两者结合,不仅简化了组件编写与引用,还通过模块热替换、代码分割等功能大幅提升开发效率。本文将通过具体示例,展示如何利用 Vue.js 和 Webpack 构建高效、有序的前端开发环境。从安装配置到实际应用,逐步解析这一组合的优势所在。
50 0
|
4月前
|
JavaScript 测试技术
在不同 webpack 版本的 Vue 项目中配置 Storybook
在不同 webpack 版本的 Vue 项目中配置 Storybook
|
4月前
|
JavaScript
VUE——filemanager-webpack-plugin报错TypeError: Cannot read property 'isFile' of undefined
VUE——filemanager-webpack-plugin报错TypeError: Cannot read property 'isFile' of undefined
76 0