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

长沙企业网站建设公司公司网站域名续费一年多少钱

长沙企业网站建设公司,公司网站域名续费一年多少钱,装修公司网页设计模板,哈尔滨模板建站推荐3 webpack处理js webpack的核心——处理js文件,将模块化的代码打包。具体操作如下 es6转化(为兼容老浏览器,将es6转化为es5) babel-loader 代码规范(例如空格,缩进等代码风格规范) eslint 代码…

3 webpack处理js

  • webpack的核心——处理js文件,将模块化的代码打包。
  • 具体操作如下
    • es6转化(为兼容老浏览器,将es6转化为es5)
      • babel-loader
    • 代码规范(例如空格,缩进等代码风格规范)
      • eslint
    • 代码分割和打包(webpack本职工作)
      • webpack的自身核心功能

3.1 es6转化——babel-loader

定义编译配置(options或.babelrc)。

3.1.1 babel-loader写入webpack配置

1 安装babel-loader

step1 安装babel-loader

  • babel-loader只是接口,本身不做编译工作(编译使用@babel/core包),因此要安装2个包——babel-loader & @babel/core
  • 命令:npm install babel-loader @babel/core --save-dev

–save, 作为开发依赖安装(编译步骤是开发阶段完成的)

loader作用: 定义对某种类型文件的处理方案

2 配置babel-loader

step2 配置babel-loader
loader和use是两个配置方式,对应3种配置方法。

// webpack.config.js
module.exports = {// loadermodule: {rules: [{// 每个对象是一个loadertest: /\.js$/,loader: "babel-loader", // 写法1// use: ["babel-loader", "xxx-loader"],// 写法2 按照数组顺序依次使用loader处理文件// use: { // 写法3 loader配置//    loader: "babel-loader",//    options: {//   }// }}]}
}
打包

打包
不写配置,看打包结果(es5写法是否可转为es6)
打包结果:箭头函数、let还在,说明没有转换为es5.

在这里插入图片描述

问题
  • 为什么配置了babel-loader,es6仍没有转换为es5呢?
    • 规范
  • 采用何种es规范,不同年代有不同标准,目标是什么(支持ie与否)——babel不知要编译到何种程度,于是没有转换。
    • 解决方案:给babel指定编译规范——preset(可理解为集合好的编译规范)
  • 项目中常用的preset是@babel/preset-env
3 安装preset

安装preset,命令:npm install @babe/preset-env --save-dev

在这里插入图片描述

4 配置preset

配置preset

module.exports = {// loadermodule: {rules: [{// 每个对象是一个loadertest: /\.js$/,// loader: "babel-loader", // 写法1use: {loader: 'babel-loader',options: {presets: [['@babel/preset-env',{targets: {//编译目标browsers: [// 以浏览器为描述目标">1%",// 支持所有占有率>1%的浏览器"last 2 versions",//支持最后2个版本"not ie<=8" //不需要支持小于ie8以前的浏览器]}}]]}}}]}
}
5 打包

执行打包命令:webpack

打包结果:此时es6会编译为es5,可以发现,打包文件没有任何箭头函数或let关键字,说明babel已经生效。
在这里插入图片描述

3.1.2 .babelrc

  • 通常情况下,babel-loader配置不需要手动配置
  • 很多脚手架里会用到.babelrc

将babel-loader的配置移动到.babelrc里,写法如下

.babelrc是json文件,需要遵循json格式。

// webpack.config.js
module.exports = {// loadermodule: {rules: [{// 每个对象是一个loadertest: /\.js$/,// loader: "babel-loader", // 写法1use: {loader: 'babel-loader'}}]}
}
// .babelrc
{"presets": [["@babel/preset-env",{"targets": {"browsers": [">1%","last 2 versions","not ie<=8"]}}]]
}

即,将options移动到.babelrc文件里。

3.2 代码规范——eslint

  • eslint官网:https://eslint.org/
  • eslint的本质
    • eslint自身不做任何代码规范检查。
    • 代码规范是根据团队成员习惯共同达成的规范,每个团队的规范不尽相同,因此eslint无法做规范。
    • 可以使用第三方规范,插入eslint即可使用。

3.2.1 版本差异

  • webpack3-4,使用eslint-loader(5后废弃)
  • webpack5,使用eslint-webpack-plugin

以前使用loader,现在改用插件。
配置的写法是相似的。

3.2.2 配置

1 安装eslint

命令:npm install eslint eslint-webpack-plugin --save-dev
需要安装eslinteslint-webpack-plugin

此两个包的关系与babel-loader和@babel/core类似。

安装失败,提示npm error network ‘proxy‘ config is set properly. See: ‘npm help config‘,参考https://blog.csdn.net/m0_74358570/article/details/141425542

2 注册插件

注意配置文件是node语法。

// webpack.config.js
// 1 引入插件
const eslintplugin = require("eslint-webpack-plugin");
// 2 配置插件
module.exports = {plugins: [new eslintplugin({// 插件配置})]
}
3 配置插件

直接在webpack.config.js配置是可以的,但也可以像.babelrc一样,单独在其他文件——.eslintrc.js里配置。

// webpack.config.js
// 1 引入插件
const eslintplugin = require("eslint-webpack-plugin");
// 2 配置插件
module.exports = {plugins: [new eslintplugin()]
}
// .eslintrc.js
module.exports = {env: {browser: true,// 浏览器环境,可以使用window全局变量,如果是node则不能使用windowes2021: true // 项目es是2021标准},extends: [// 继承规范],plugins: [// 使用插件作为规范],// 解析配置parserOptions: {ecmaVersion: 6, // 指定使用的es版本sourceType: "module", // 模块化实现,默认script引入模块(通过script标签引入js),module:通过import引入ecmaFeature: {jsx: true, // 检查jsx代码}},rules: {"no-console": 0// 0/off:关闭检查,1/warning: 警告,2/error: 错误(会中断执行)}
}
4 rules——eslint检查
  • eslint检查主要在开发模式检查,打包不会检查——因此将代码用开发模式启动。
  • 命令:webpack-dev-server
  • 效果:rules属性的no-console为0,项目启动不会报错(a.js中有console),为2,项目启动会报错。
  • 报错处理
    1. 执行以上命令,需要安装webpack-dev-server,安装命令:npm install webpack-dev-server --save-dev
    2. 安装成功后,执行webpack-dev-server,仍报错
    3. package.json 中添加一个 script 来启动 webpack-dev-server. 执行npm run webpack-dev-server
      // package.json
      "scripts": {"webpack-dev-server": "webpack-dev-server"
      }
      
    4. 执行过程中提示安装webpack-cli
      • 注意需要升级webpack版本
    5. 再次执行npm run webpack-dev-server,仍有问题,不管了

3.2.3 规范

1 extends继承规范
  • 如果一个个写rules很麻烦,那么可以继承现成的规范,如eslint-config-standardeslint-config-airbnb,可以安装并继承规范。

eslint-config-standard为例。

.eslintrc.js内定义的规范优先级要高于继承的eslint-config-standard等规范。
多数项目会继承eslint-config-standard规范。

1 安装命令:npm install eslint-config-standard

安装失败,版本冲突疑似

2 继承规范

// .eslintrc.js
// 修改了extends属性
module.exports = {env: {browser: true,// 浏览器环境,可以使用window全局变量,如果是node则不能使用windowes2021: true // 项目es是2021标准},extends: [// 继承规范"standard"],plugins: [// 使用插件作为规范],// 解析配置parserOptions: {ecmaVersion: 6, // 指定使用的es版本sourceType: "module", // 模块化实现,默认script引入模块(通过script标签引入js),module:通过import引入ecmaFeature: {jsx: true, // 检查jsx代码}},rules: {"no-console": 0// 0/off:关闭检查,1/warning: 警告,2/error: 错误(会中断执行)}
}
2 plugins插件
  • plugins,支持特殊语法。
    • 提供额外的rules
    • 提供一套现成的规范

.vue文件,比如要求template内所有的内容需要写在一个div标签内,这样的风格eslint本身的rules没有,那么就需要用到plugins
vue项目会安装eslint-plugin-vue,并且会定义vue特殊的rules,以及继承vue规范。

eslint-plugin-vue为例
1 安装eslint-plugin-vue,命令: npm install eslint-plugin-vue --save-dev
2 注册插件

// .eslintrc.js
// 修改了extends属性
module.exports = {env: {browser: true,// 浏览器环境,可以使用window全局变量,如果是node则不能使用windowes2021: true // 项目es是2021标准},extends: [// 继承规范"standard","plugin:vue/strongly-recommended" //继承vue的规范],plugins: [// 使用插件作为规范"vue"// 注册插件],// 解析配置parserOptions: {ecmaVersion: 6, // 指定使用的es版本sourceType: "module", // 模块化实现,默认script引入模块(通过script标签引入js),module:通过import引入ecmaFeature: {jsx: true, // 检查jsx代码}},rules: {"no-console": 0// 0/off:关闭检查,1/warning: 警告,2/error: 错误(会中断执行)}
}

p3代码分割和打包似乎没讲.

http://www.tj-hxxt.cn/news/117617.html

相关文章:

  • 网站 百度地图房管局备案查询网站
  • 广州易网外贸网站建设关于进一步优化
  • 四川省成都市龙泉驿区疫情吉林关键词优化的方法
  • 做外贸网站 用国外空间 还是 国内空间 区别软文广告经典案例300
  • 政府网站建设管理典型材料seo推广收费标准
  • 咨询手机网站建设平台百度搜索排名机制
  • 企业内部管理系统网站建设毕业设计网站
  • 国外源码网站今天刚刚的最新新闻
  • 郑州做互联网推广的网络营销中的seo与sem
  • 佛山网站建设冯哥西安百度竞价托管公司
  • discuz 手机网站模板西安seo排名外包
  • 服务器可以做网站怎么自己开发网站
  • 4399小游戏电脑版页面黑帽seo技术
  • 相城高端网站建设关键词排名查询工具有什么作用?
  • 亚马逊海淘官网seo同行网站
  • 网站建设日期如何查询舆情网站直接打开怎么弄
  • 免费企业网站管理系统seo招聘要求
  • 佛山网站建设外包公司河北seo技术
  • 如何在微信平台做购买网站windows优化大师自动安装
  • 网站建设日程表模板百度指数排名
  • 多语言建站系统搜索引擎优化教材答案
  • 建设网站的市场背景建立网站的几个步骤
  • wordpress搭建相册关键词优化seo
  • 网站在淘宝上做靠谱吗天津百度推广中心
  • 外贸做独立网站怎么样抖音seo优化
  • 乐清企业网站建设谷歌app下载 安卓
  • 哈尔滨网站建设效果好网络营销的方法有哪些?举例说明
  • 个人网站制作体会建网站模板
  • 怎么关闭网站安全检测seo快速排名点击
  • java网站开发是做什么的郑州网站运营专业乐云seo