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

JavaScript 第27章:构建工具与自动化

在现代JavaScript开发中,构建工具、代码转换工具、代码质量和代码格式化工具对于提高开发效率、保持代码整洁以及确保代码质量有着至关重要的作用。下面将分别介绍Webpack、Babel、ESLint和Prettier的配置与使用,并给出一些示例。

1. 构建工具:Webpack配置与使用

Webpack是一个模块打包器,它可以将各种资源(如JavaScript文件、样式表、图片等)打包成一个或多个捆绑包(bundle)。它支持各种插件和加载器来处理不同类型的资源。

安装
npm install --save-dev webpack webpack-cli
配置文件 webpack.config.js
const path = require('path');module.exports = {entry: './src/index.js', // 入口文件output: {filename: 'main.js', // 输出文件名path: path.resolve(__dirname, 'dist'), // 输出目录},module: {rules: [{test: /\.js$/,exclude: /node_modules/,use: {loader: 'babel-loader', // 使用babel-loader来转译JS},},],},
};

2. 代码转换工具:Babel入门

Babel是一个广泛使用的编译器,可以将现代JavaScript转译为向后兼容的版本,以确保在各种环境中都能正常运行。

安装
npm install --save-dev @babel/core @babel/cli @babel/preset-env
.babelrc 配置文件
{"presets": ["@babel/preset-env"]
}
转换ES6+代码到ES5
npx babel src --out-dir dist

3. 代码质量工具:ESLint配置与常见规则

ESLint是一个静态代码分析工具,可以帮助开发者找出代码中的错误并统一代码风格。

安装
npm install --save-dev eslint
初始化配置 eslint --init
示例配置 .eslintrc.json
{"env": {"browser": true,"es6": true},"extends": "eslint:recommended","rules": {"indent": ["error", 2],"quotes": ["error", "double"],"semi": ["error", "always"]}
}

4. 代码格式化工具:Prettier配置与使用

Prettier是一个代码格式化工具,可以自动调整代码样式,使项目中的代码风格一致。

安装
npm install --save-dev prettier
配置文件 .prettierrc
{"printWidth": 80,"tabWidth": 2,"useTabs": false,"semi": true,"singleQuote": false,"trailingComma": "es5","bracketSpacing": true,"jsxBracketSameLine": false
}

通常情况下,我们会让ESLint与Prettier协同工作,这样可以在保存文件时自动修复代码格式问题。你可以安装eslint-plugin-prettier来集成两者。

以上是这些工具的基本配置和使用方法。根据项目的具体需求,你可能需要进一步定制这些工具的配置来满足特定的要求。

在现代JavaScript开发中,构建工具、代码转换工具、代码质量和代码格式化工具对于提高开发效率、保持代码整洁以及确保代码质量有着至关重要的作用。下面将分别介绍Webpack、Babel、ESLint和Prettier的配置与使用,并给出一些示例。

1. 构建工具:Webpack配置与使用

Webpack是一个模块打包器,它可以将各种资源(如JavaScript文件、样式表、图片等)打包成一个或多个捆绑包(bundle)。它支持各种插件和加载器来处理不同类型的资源。

安装
npm install --save-dev webpack webpack-cli
配置文件 webpack.config.js
const path = require('path');module.exports = {entry: './src/index.js', // 入口文件output: {filename: 'main.js', // 输出文件名path: path.resolve(__dirname, 'dist'), // 输出目录},module: {rules: [{test: /\.js$/,exclude: /node_modules/,use: {loader: 'babel-loader', // 使用babel-loader来转译JS},},],},
};

2. 代码转换工具:Babel入门

Babel是一个广泛使用的编译器,可以将现代JavaScript转译为向后兼容的版本,以确保在各种环境中都能正常运行。

安装
npm install --save-dev @babel/core @babel/cli @babel/preset-env
.babelrc 配置文件
{"presets": ["@babel/preset-env"]
}
转换ES6+代码到ES5
npx babel src --out-dir dist

3. 代码质量工具:ESLint配置与常见规则

ESLint是一个静态代码分析工具,可以帮助开发者找出代码中的错误并统一代码风格。

安装
npm install --save-dev eslint
初始化配置 eslint --init
示例配置 .eslintrc.json
{"env": {"browser": true,"es6": true},"extends": "eslint:recommended","rules": {"indent": ["error", 2],"quotes": ["error", "double"],"semi": ["error", "always"]}
}

4. 代码格式化工具:Prettier配置与使用

Prettier是一个代码格式化工具,可以自动调整代码样式,使项目中的代码风格一致。

安装
npm install --save-dev prettier
配置文件 .prettierrc
{"printWidth": 80,"tabWidth": 2,"useTabs": false,"semi": true,"singleQuote": false,"trailingComma": "es5","bracketSpacing": true,"jsxBracketSameLine": false
}

通常情况下,我们会让ESLint与Prettier协同工作,这样可以在保存文件时自动修复代码格式问题。你可以安装eslint-plugin-prettier来集成两者。

在现代JavaScript开发中,构建工具、代码转换工具、代码质量和代码格式化工具对于提高开发效率、保持代码整洁以及确保代码质量有着至关重要的作用。下面将分别介绍Webpack、Babel、ESLint和Prettier的配置与使用,并给出一些示例。

1. 构建工具:Webpack配置与使用

Webpack是一个模块打包器,它可以将各种资源(如JavaScript文件、样式表、图片等)打包成一个或多个捆绑包(bundle)。它支持各种插件和加载器来处理不同类型的资源。

安装
npm install --save-dev webpack webpack-cli
配置文件 webpack.config.js
const path = require('path');module.exports = {entry: './src/index.js', // 入口文件output: {filename: 'main.js', // 输出文件名path: path.resolve(__dirname, 'dist'), // 输出目录},module: {rules: [{test: /\.js$/,exclude: /node_modules/,use: {loader: 'babel-loader', // 使用babel-loader来转译JS},},],},
};

2. 代码转换工具:Babel入门

Babel是一个广泛使用的编译器,可以将现代JavaScript转译为向后兼容的版本,以确保在各种环境中都能正常运行。

安装
npm install --save-dev @babel/core @babel/cli @babel/preset-env
.babelrc 配置文件
{"presets": ["@babel/preset-env"]
}
转换ES6+代码到ES5
npx babel src --out-dir dist

3. 代码质量工具:ESLint配置与常见规则

ESLint是一个静态代码分析工具,可以帮助开发者找出代码中的错误并统一代码风格。

安装
npm install --save-dev eslint
初始化配置 eslint --init
示例配置 .eslintrc.json
{"env": {"browser": true,"es6": true},"extends": "eslint:recommended","rules": {"indent": ["error", 2],"quotes": ["error", "double"],"semi": ["error", "always"]}
}

4. 代码格式化工具:Prettier配置与使用

Prettier是一个代码格式化工具,可以自动调整代码样式,使项目中的代码风格一致。

安装
npm install --save-dev prettier
配置文件 .prettierrc
{"printWidth": 80,"tabWidth": 2,"useTabs": false,"semi": true,"singleQuote": false,"trailingComma": "es5","bracketSpacing": true,"jsxBracketSameLine": false
}

通常情况下,我们会让ESLint与Prettier协同工作,这样可以在保存文件时自动修复代码格式问题。你可以安装eslint-plugin-prettier来集成两者。

以上是这些工具的基本配置和使用方法。根据项目的具体需求,你可能需要进一步定制这些工具的配置来满足特定的要求。

相关文章:

JavaScript 第27章:构建工具与自动化

在现代JavaScript开发中,构建工具、代码转换工具、代码质量和代码格式化工具对于提高开发效率、保持代码整洁以及确保代码质量有着至关重要的作用。下面将分别介绍Webpack、Babel、ESLint和Prettier的配置与使用,并给出一些示例。 1. 构建工具&#xff…...

Android原生ROM出现WIFI显示网络连接受限,网络无法连接的问题

Android原生ROM出现WIFI显示网络连接受限,网络无法连接的问题 最近手里一台乐视的手机root后, 连接wifi时一直提示网络连接受限,wifi图标显示叹号. 但是不影响正常的网络访问. 解决办法: adb shell settings delete global captive_portal_modeadb shell settings put globa…...

如何实现网页上的闪烁效果

在网页上实现闪烁效果通常可以通过CSS或者JavaScript来完成。有两种方法:一种是使用纯CSS,另一种是结合JavaScript来创建更复杂的闪烁效果。 方法一:使用纯CSS CSS中可以使用animation属性来创建简单的动画效果,包括闪烁效果。这…...

事件总线—Event Bus 使用及讲解

一、工作原理 事件总线,主要用来实现非父子组件之间的传值。 它的工作原理:通过new Vue()再创建一个新的 Vue 实例对象bus,将这个新的实例对象作为桥梁,来实现两个组件之间的传值。 二、工作步骤 1、创建事件总线 bus 我们可以…...

信息安全工程师(67)网络流量清洗技术与应用

前言 网络流量清洗技术是现代网络安全领域中的一项关键技术,它主要用于过滤和清理网络流量中的恶意部分,确保正常的网络通信。 一、网络流量清洗技术的定义与原理 网络流量清洗技术,也称为流量清理(Traffic Scrubbing)…...

【项目】论坛系统测试

文章目录 一、项目介绍二、测试环境三、测试用例3.1 论坛系统功能测试用例3.2 论坛系统非功能测试用例 四、测试计划1. 手工测试1.1 注册页面1.2 登陆页面1.3 主页面(列表页) 2. 自动化测试2.1 添加对应的依赖2.2 Utils类(公有类)…...

XJ02、消费金融|消费金融业务模式中的主要主体

根据所持有牌照类型的不同,消费金融服务供给方主要分为商业银行、汽车金融公司、消费金融公司和小贷公司,不同类型机构定位不同、提供消费金融服务与产品类型也各不相同。此外,互联网金融平台也成为中国消费金融业务最重要的参与方之一&#…...

基于神经网络的农业病虫害损失预测

【摘 要】鉴于农业病虫害经济损失的预测具有较强的复杂性和非线性特性,设计了一种新型的GRNN预测模型,对农业病虫害经济损失进行预测。该模型基于人工神经网络捕捉非线性变化独特的优越性,在神经网络技术和江苏省气象局提供的数据的基础上&am…...

【DSP】TI 微控制器和处理器的IDE安装CCSTUDIO

【DSP】TI 微控制器和处理器的IDE安装CCSTUDIO 1.背景2.下载IDE3.安装IDE1.背景 TI:Texas instruments即德州仪器公司。 https://www.ti.com.cn/CCSTUDIO即Code Composer Studio。 Code Composer Studio 是适用于 TI 微控制器和处理器的集成开发环境 (IDE)。 它包含一整套用于…...

Web应用框架-Django应用基础

1. 认识Django Django是一个用Python编写的开源高级Web框架, 旨在快速开发可维护和可扩展的Web应用程序。 使用Django框架的开发步骤: 1.选择合适的版本 2.安装及配置 3.生成项目结构 4.内容开发 5.迭代、上线、维护 Django官网: Djang…...

qt QMainWindow详解

一、概述 QMainWindow继承自QWidget,并提供了一个预定义的布局,将窗口分成了菜单栏、工具栏、状态栏和中央部件区域。这些区域共同构成了一个功能丰富的主窗口,使得应用程序的开发更加简单和高效。 二、QMainWindow的常用组件及功能 菜单栏&…...

第二单元历年真题整理

1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 参考答案 1. A 2. A 3. A 4. D 5. D 6. D 解析: 栈和队列是两个不一样的结构,不能放在一起表示 7. B 8. C 解析: S --> A0 | B1 --> (S1 | 1) 0 | (S0 | 0)1 --> S10 | 10 | S…...

Ubuntu下载protobuf

1 安装依赖库 sudo apt-get install autoconf automake libtool curl make g unzip -y2 下载protobuf ProtoBuf 下载地址:https://github.com/protocolbuffers/protobuf/releases 如果要在 C 下使⽤ ProtoBuf,可以选择cpp.zip 其他语言选择对应的链接即可 希望支持…...

【算法优化】混合策略改进的蝴蝶优化算法

摘要 蝴蝶优化算法 (Butterfly Optimization Algorithm, BOA) 是一种新兴的智能优化算法,其灵感来自蝴蝶的觅食行为。本文基于经典BOA,通过引入混合策略进行改进,从而提高其在全局寻优和局部搜索中的性能。实验结果表明,改进的蝴…...

什么是标准差?详解

文章目录 一、什么是标准差?二、公式三、举个例子🌰参考 一、什么是标准差? 在统计学中,标准差(Standard Deviation)是用于衡量变量值围绕其平均值变化程度的指标。低标准差表示这些值通常接近平均值&…...

C++20中头文件syncstream的使用

<syncstream>是C20中新增加的头文件&#xff0c;提供了对同步输出流的支持&#xff0c;即在多个线程中可安全地进行输出操作&#xff0c;此头文件是Input/Output库的一部分。包括&#xff1a; 1.std::basic_syncbuf&#xff1a;是std::basic_streambuf的包装器(wrapper)&…...

判断特定时间点开仓的函数(编程技巧)

如何使用最新的MQL4语言创建并应用一个判断当前是否可以开启或增加交易仓位的函数。通过详细讲解函数的代码实现、核心功能及其在实际交易策略中的调用方法。 函数代码 以下是一个用MQL4编写的函数&#xff0c;用于检测在特定时间点是否可以开仓或增仓。 extern int MagicNumb…...

如何新建一个React Native的项目

要新建一个 React Native 项目&#xff0c;你可以使用 React Native 官方推荐的工具 React Native CLI 或者 Expo。两者的区别在于&#xff1a;React Native CLI 提供更多对原生代码的访问权限&#xff0c;适合构建复杂的应用&#xff1b;而 Expo 是一个开发工具链&#xff0c;…...

学习--图像信噪比

目录 图像信噪比 图像信噪比 图像信噪比的计算公式&#xff1a; 其中&#xff0c; M M M和 N N N分别表示图像长度和宽度上的像素数。 f ( i , j ) f(i,j) f(i,j) 和 g ( i , j ) g(i,j) g(i,j)分别是原始图像和去噪后的图像在点 ( i , j ) (i,j) (i,j)处的像素值。 信噪…...

【2024CANN训练营第二季】使用华为云体验AscendC_Sample仓算子运行

环境介绍 NPU&#xff1a;Ascend910B2 环境准备 创建Notebook 华为云选择&#xff1a;【控制台】-【ModelArts】 ModelArts主页选择【开发生产】-【开发空间】-【Notebook】 页面右上角选择【创建Notebook】 选择资源 主要参数 规格&#xff1a;Ascend: 1*ascend-snt…...

浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)

✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义&#xff08;Task Definition&…...

多场景 OkHttpClient 管理器 - Android 网络通信解决方案

下面是一个完整的 Android 实现&#xff0c;展示如何创建和管理多个 OkHttpClient 实例&#xff0c;分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...

短视频矩阵系统文案创作功能开发实践,定制化开发

在短视频行业迅猛发展的当下&#xff0c;企业和个人创作者为了扩大影响力、提升传播效果&#xff0c;纷纷采用短视频矩阵运营策略&#xff0c;同时管理多个平台、多个账号的内容发布。然而&#xff0c;频繁的文案创作需求让运营者疲于应对&#xff0c;如何高效产出高质量文案成…...

JVM 内存结构 详解

内存结构 运行时数据区&#xff1a; Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器&#xff1a; ​ 线程私有&#xff0c;程序控制流的指示器&#xff0c;分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 ​ 每个线程都有一个程序计数…...

现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?

现有的 Redis 分布式锁库&#xff08;如 Redisson&#xff09;相比于开发者自己基于 Redis 命令&#xff08;如 SETNX, EXPIRE, DEL&#xff09;手动实现分布式锁&#xff0c;提供了巨大的便利性和健壮性。主要体现在以下几个方面&#xff1a; 原子性保证 (Atomicity)&#xff…...

iview框架主题色的应用

1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题&#xff0c;无需引入&#xff0c;直接可…...

Rust 开发环境搭建

环境搭建 1、开发工具RustRover 或者vs code 2、Cygwin64 安装 https://cygwin.com/install.html 在工具终端执行&#xff1a; rustup toolchain install stable-x86_64-pc-windows-gnu rustup default stable-x86_64-pc-windows-gnu ​ 2、Hello World fn main() { println…...

MySQL 主从同步异常处理

阅读原文&#xff1a;https://www.xiaozaoshu.top/articles/mysql-m-s-update-pk MySQL 做双主&#xff0c;遇到的这个错误&#xff1a; Could not execute Update_rows event on table ... Error_code: 1032是 MySQL 主从复制时的经典错误之一&#xff0c;通常表示&#xff…...

【LeetCode】算法详解#6 ---除自身以外数组的乘积

1.题目介绍 给定一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O…...