当前位置: 首页 > wzjs >正文

动态网站开发步骤软文代写文案

动态网站开发步骤,软文代写文案,玉器哪家网站做的好,wordpress速度插件目录 一、Webpack概念 二、Webpack使用步骤 三、Webpack.config.js配置文件 四、entry 和 output 1. entry 2. output 五、module 1. CSS 2. 图片 3. babel 4. 总结 六、plugins 1.自动生成 html 文件 七、其它 1.webpack-dev-server 开发服务器 2. mode 打包模…

目录

一、Webpack概念

二、Webpack使用步骤

三、Webpack.config.js配置文件

四、entry 和 output

1. entry

 2. output

五、module

1. CSS

2. 图片

3. babel

4. 总结

六、plugins

1.自动生成 html 文件

七、其它

1.webpack-dev-server 开发服务器

2. mode 打包模式

3. devtool

参考:


一、Webpack概念

  • 当我们习惯了在node中编写代码的方式后,再回到前端编写html、css、js这些东西会感觉到各种的不便。比如:不能放心的使用模块化规范(浏览器兼容性问题)、即使可以使用模块化规范也会面临模块过多时的加载问题。
  • 我们就迫切的希望有一款工具可以对代码进行打包,将多个模块打包成一个文件。这样一来即解决了兼容性问题,又解决了模块过多的问题。
  • 构建工具就起到这样一个作用,通过构建工具可以将使用ESM规范编写的代码转换为旧的JS语法,这样可以使得所有的浏览器都可以支持代码。

Webpack是一个前端模块打包工具。它可以将多个模块按照依赖关系进行静态分析,并生成一个或多个打包后的文件。

作用:把静态模块内容,压缩,这个和,转译等(前端工程化)。

  • 把 less/sass 转成 css 代码

  • 把 ES6+ 降级成 ES5 等

  • 支持多种模块文件类型,多种模块标准语法


二、Webpack使用步骤

1.新建一个主文件夹(名为webpack),然后初始化包环境,得到 package.json 文件

npm init -y

2.安装 webpack 以及 webpack-cli 依赖包

npm i webpack webpack-cli --save-dev

3.把 webpack 命令配置到 package.json 的 scripts 自定义命令,作为局部命令使用

  "scripts": {"build": "webpack"},

4.创建文件夹src,在src里创建index.js编写代码

5.开始运行,采用自定义命令的方式:npm run 自定义命令名字

npm run build
  • 注意:实际上在终端运行的是 build 右侧的具体命名

6.此时会自动产生 dist 文件夹(压缩和优化后,用于最终运行的代码),默认里面会有一个main.js文件


三、Webpack.config.js配置文件

在项目根目录创建 Webpack.config.js 配置文件,它提供一个配置对象,Webpack将根据这个对象来打包应用程序。

核心概念:

  • Entry(入口):Webpack将从指定的入口文件开始分析和构建依赖关系树。入口可以是单个文件或多个文件,Webpack会根据入口配置找出所有的依赖模块。
  • Output(出口):指定Webpack打包后的文件输出的路径和文件名。可以通过配置output选项来指定输出文件的路径、名称和格式等。
  • Loader(加载器):Webpack本身只能处理JavaScript模块,但通过Loader的使用,可以处理其他类型的文件(如CSS、LESS、图片等)。Loader的作用是在模块加载时对其进行转换和处理。
  • Plugin(插件):插件用于扩展Webpack的功能。它可以在打包的不同阶段执行特定的任务。例如,可以使用插件来压缩代码、拆分代码、生成HTML文件等。插件通过在Webpack配置中引入并实例化,然后将其添加到plugins数组中。

示例:

const path = require('path')
const HTMLPlugin = require('html-webpack-plugin')module.exports = {mode: "production",  //设置打包模式,production表示生产模式,development表示开发模式//entry用来指定打包时的主文件,默认 ./src/index.js// entry: ['./src/a.js', './src/b.js'],  //合并打包// entry: {  //分别打包//   a: './src/a.js',//   b: './src/b.js'// },//output用来配置打包后的地址,默认 ./dist/main.js// output: {//   path: path.join(__dirname, 'hello'),  //指定打包的目录,必须是绝对路径//   filename: '[name]-[id]-[hash].js',  //打包后的文件名//   clean: true  //自动清理打包目录 (dist目录)// }//加载器,处理非js文件module: {rules: [{test: /\.css$/i,  //处理cssuse: ['style-loader', 'css-loader']  //从右向左执行},{test: /\.(jpg|png|gif)$/i,  //处理图片type: 'asset/resource'},{test: /\.m?js$/i,  //处理js(ES6+ 转译)exclude: /(node_modules|bower_components)/,use: {loader: 'babel-loader',options: {presets: ['@babel/preset-env']}}}]},//插件,增强功能plugins: [new HTMLPlugin({template: './src/index.html'})],devtool: 'inline-source-map'  //用于调试代码}

四、entry 和 output

1. entry

定义打包的起点文件,Webpack 从入口开始分析依赖。

单入口(SPA):

entry: './src/index.js',

多入口(MPA):

entry: {app: './src/app.js',admin: './src/admin.js',
},

 2. output

定义打包后文件的输出位置和命名规则。

output: {path: path.resolve(__dirname, 'dist'), // 输出目录(绝对路径)filename: '[name].[contenthash].js',   // 输出文件名模板clean: true,                          // 每次构建前清空输出目录publicPath: '/assets/',               // 资源公共路径(CDN 场景使用)chunkFilename: '[id].[chunkhash].js', // 非入口 chunk 文件名(如异步加载模块)
},

占位符

  • [name]:入口名称(多入口时使用)。

  • [contenthash]:文件内容哈希(用于缓存优化)。

  • [id]:模块标识符。


五、module

Webpack 默认只识别 JS 和 JSON 文件内容,所以想要让 Webpack 识别更多不同内容,需要使用加载器。

1. CSS

在 src 目录下新建一个 style 文件夹,存放 style.css 文件,然后在index.js中引入:

import './style/index.css'

 此时还不能生效,还需要下载依赖包并进行配置。

下载:

npm i css-loader style-loader --save-dev

在 module 下的 rules 数组中配置: 

{test: /\.css$/i,use: ['style-loader', 'css-loader']
}
  • css-loader 只负责打包,style-loader 负责渲染生效
  • loader 执行顺序为从后向前执行,因此 use 的数组顺序不能调换

2. 图片

图片使用方法类似,先在index.js中引入:

import pic from './assets/pixmap.png'

然后配置:

{test: /\.(jpg|png|gif)$/i,type: 'asset/resource'
}

ps:webpack 内置了资源模块的打包,无需下载额外 loader。


3. babel

  • 在编写js代码时,经常需要使用一些js中的新特性,而新特性在旧的浏览器中兼容性并不好。此时就导致我们无法使用一些新的特性。

  • 但是我们现在希望能够使用新的特性,我们可以采用折中的方案。依然使用新特性编写代码,但是代码编写完成时我们可以通过一些工具将新代码转换为旧代码。

  • babel就是这样一个工具,可以将新的js语法转换为旧的js,以提高代码的兼容性。

安装:

npm install -D babel-loader @babel/core @babel/preset-env
    • @babel/core:babel的转换核心
    • @babel/preset-env:预设环境

    配置:

    {test: /\.m?js$/i,exclude: /(node_modules|bower_components)/,use: {loader: 'babel-loader',options: {presets: ['@babel/preset-env']}}
    }

    还可以在package.json中设置兼容列表:

    "browserslist": ["defaults"]

    4. 总结

    常用的Webpack loader:

    • babel-loader:将ES6+代码转换为ES5语法,以便在旧版本的浏览器中运行。
    • style-loader 和 css-loader:用于处理CSS文件。css-loader主要负责处理样式文件中的import和url语句,而style-loader将转换后的CSS模块直接注入到HTML页面中。
    • file-loader 和 url-loader:用于处理图片和其他资源文件。file-loader会为每一个文件生成一个对应的文件,而url-loader将小于设定大小的文件转换为base64编码的URL,减少HTTP请求。
    • sass-loader 和 less-loader:用于处理Sass和Less预处理器。它们将Sass和Less代码转换为普通的CSS代码。
    • postcss-loader:用于为CSS代码添加浏览器兼容性前缀,以确保在不同浏览器上的一致性。
    • html-loader:用于处理HTML文件,将其中的图片等资源转换为Webpack可以识别的模块。

    六、plugins

    1.自动生成 html 文件

    html-webpack-plugin 这个插件可以在代码打包后,自动在打包目录生成html页面。

    下载:

    npm i html-webpack-plugin --save-dev

    引入依赖:

    const HTMLPlugin = require("html-webpack-plugin")

    配置:

    plugins: [new HTMLPlugin({// title: "Hello Webpack",  //设置titletemplate: "./src/index.html"  //模板,自动引入script脚本})
    ]

    七、其它

    1.webpack-dev-server 开发服务器

    每次改动代码,都要重新打包,很麻烦,所以这里给项目集成 webpack-dev-server 开发服务器。

    作用:启动 Web 服务,并自动检测代码变化热更新到网页。

    下载:

    npm i webpack-dev-server --save-dev

    可以在 package.json 中配置自定义命令:

    "scripts": {"dev": "webpack serve --mode=development"
    }

    使用:

    npm run dev
    • 此时在 js / css 文件中修改代码保存后,会实时反馈到浏览器。

    2. mode 打包模式

    指定构建模式,Webpack 会根据模式启用内置优化。

    可选值:

    • 'development':启用开发工具(如 source map)。

    • 'production':启用代码压缩、Tree Shaking 等优化。

    • 'none':不启用任何默认优化。

    模式名称模式名字特点场景
    开发模式development调试代码,实时加载,模块热替换等本地开发
    生产模式production压缩代码,资源优化,更轻量等打包上线

    如何设置影响 Webpack呢?

    • 方式1:在 webpack.config.js 配置文件设置 mode 选项

      // ...
      module.exports = {// ...mode: 'production'
      }
    • 方式2:在 package.json 命令行设置 mode 参数

      "scripts": {"build": "webpack --mode=production","dev": "webpack serve --mode=development"
      },

    注意:命令行设置的优先级高于配置文件中的,推荐用命令行设置


    3. devtool

    可以配置源码的映射,方便调试打包后的代码。

    // ...
    module.exports = {// ...devtool:"inline-source-map"
    }

    参考:

    Webpack--入门只看这一篇就够了(图文+代码)-CSDN博客

    webpack超详细教程,学webpack看这一篇就够了!(上)_webpack教程-CSDN博客

    webpack超详细教程,学webpack看这一篇就够了!(下)_new webpack.defineplugin-CSDN博客

    02_webpack介绍_哔哩哔哩_bilibili

    http://www.dtcms.com/wzjs/486365.html

    相关文章:

  1. 上海石化有做网站设计的吗今日热点新闻头条排行榜
  2. 中国菲律宾最新局势钦州seo
  3. seo外包公司一般费用是多少搜索引擎优化哪些方面
  4. 深圳福田 外贸网站建设东莞网络推广代运营
  5. 专题网站建设策划阿里云域名注册官网网址
  6. 网站建设到维护整站seo排名
  7. 上海网站建设制作百橙推广小程序拿佣金
  8. 电商网站开发助理网络营销应用方式
  9. 重庆怎么站seo免费换友情链接
  10. 制作个网站多少钱苏州seo关键词优化推广
  11. 域名解析服务器是什么优化加速
  12. 网站建设报告廊坊关键词优化报价
  13. 学做网站论坛vip视频建立网站一般要多少钱
  14. 企业网站推广建设小红书seo排名规则
  15. 泊头做网站找哪家好东莞网站推广营销网站设计
  16. 备案个人网站做淘宝客seo外链专员
  17. 外国优秀网站营销推广有哪些形式
  18. 网站建设需求信息企业微信营销系统
  19. 可以做手机网页的网站网站建设与管理就业前景
  20. 淄博做淘宝网站军事新闻最新
  21. 日照疫情最新消息今天封城了网站优化排名哪家好
  22. 怎么知道自己网站的权重网络推广有哪些
  23. wordpress国内视频网站百度上看了不健康的内容犯法吗
  24. 做网站具体指什么徐州seo推广优化
  25. 素材网站无水印怎么才能在百度上做引流呢
  26. 一个人做网站用什么技术甲马营seo网站优化的
  27. 成都市城乡建设局网站百度收录的网站多久更新一次
  28. 网站描述怎么设置百度关键词快排
  29. 重庆专业平台推广公司优化网站技术
  30. phpwind转WordPress抖音优化排名