ES6 (一)——ES6 简介及环境搭建

news2024/11/13 21:12:05

目录

简介

环境搭建

可以在 Node.js 环境中运行 ES6

webpack

入口 (entry)

loader

插件 (plugins)

利用 webpack 搭建应用

gulp

如何使用?


简介

ES6, 全称 ECMAScript 6.0 ,是 JavaScript 的下一个版本标准,2015.06 发版。ES6 主要是为了解决 ES5 的先天不足,比如 JavaScript 里并没有类的概念,但是目前浏览器的 JavaScript 是 ES5 版本,大多数高版本的浏览器也支持 ES6,不过只实现了 ES6 的部分特性和功能。

ECMAScript 6 目前基本成为业界标准,它的普及速度比 ES5 要快很多,主要原因是现代浏览器对 ES6 的支持相当迅速,尤其是 Chrome 和 Firefox 浏览器,已经支持 ES6 中绝大多数的特性。

环境搭建

可以在 Node.js 环境中运行 ES6

Node.js 是运行在服务端的 JavaScript,它对 ES6 的支持度更高。

webpack

webpack 是一个现代 JavaScript 应用程序的静态模块打包器 (module bundler) 。当 webpack 处理应用程序时,它会递归地构建一个依赖关系图 (dependency graph) ,其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个 bundle 。

webpack 主要有四个核心概念:

入口 (entry)

输出 (output)

loader

插件 (plugins)

入口 (entry)

入口会指示 webpack 应该使用哪个模块,来作为构建其内部依赖图的开始。进入入口起点后,webpack 会找出有哪些模块和库是入口起点(直接和间接)依赖的。在 webpack 中入口有多种方式来定义

示例:

单个入口(简写)语法:

const config = {
  entry: "./src/main.js"
}

对象语法:

const config = {
  app: "./src/main.js",
  vendors: "./src/vendors.js"
}

输出 (output):

output 属性会告诉 webpack 在哪里输出它创建的 bundles ,以及如何命名这些文件,默认值为 ./dist:

const config = {
  entry: "./src/main.js",
  output: {
    filename: "bundle.js",
    path: path.resolve(__dirname, 'dist')
  }
}

loader

loader 让 webpack 可以去处理那些非 JavaScript 文件( webpack 自身只理解 JavaScript )。loader 可以将所有类型的文件转换为 webpack 能够有效处理的模块,例如,开发的时候使用 ES6 ,通过 loader 将 ES6 的语法转为 ES5 

配置:
 

const config = {
  entry: "./src/main.js",
  output: {
    filename: "bundle.js",
    path: path.resolve(__dirname, 'dist')
  },
  module: {
    rules: [
      {
          test: /\.js$/,
          exclude: /node_modules/,
          loader: "babel-loader",
          options: [
            presets: ["env"]
          ]
      }
    ]
  }
}

插件 (plugins)

loader 被用于转换某些类型的模块,而插件则可以做更多的事情。包括打包优化、压缩、定义环境变量等等。插件的功能强大,是 webpack 扩展非常重要的利器,可以用来处理各种各样的任务。使用一个插件也非常容易,只需要 require() ,然后添加到 plugins 数组中。

// 通过 npm 安装
const HtmlWebpackPlugin = require('html-webpack-plugin');
// 用于访问内置插件 
const webpack = require('webpack'); 
 
const config = {
  module: {
    rules: [
      {
          test: /\.js$/,
          exclude: /node_modules/,
          loader: "babel-loader"
      }
    ]
  },
  plugins: [
    new HtmlWebpackPlugin({template: './src/index.html'})
  ]
};

利用 webpack 搭建应用

webpack.config.js

const path = require('path');
 
module.exports = {
  mode: "development", // "production" | "development"
  // 选择 development 为开发模式, production 为生产模式
  entry: "./src/main.js",
  output: {
    filename: "bundle.js",
    path: path.resolve(__dirname, 'dist')
  },
  module: {
    rules: [
      {
        test: /\.js$/,
        exclude: /node_modules/,
        loader: "babel-loader",
        options: [
          presets: ["env"]
        ]
      }
    ]
  },
  plugins: [
    ...
  ]
}

示例构建了一个最简单的配置,webpack 会从入口 main.js 文件进行构建,通过 loader 进行js转换,输出一个为 bundle.js 的文件,至此一整个过程就构建完成。

gulp

gulp 是一个基于流的自动化构建工具,具有易于使用、构建快速、插件高质和易于学习的特点,常用于轻量级的工程中。

如何使用?

在开始之前, 需要确保已经安装了 Node.js和npm

全局安装 gulp:

$ npm install --global gulp

在项目中引入依赖:

$ npm install --save-dev gulp

在项目根目录下创建名为 gulpfile.js 的文件:

const gulp = require('gulp');

// default 表示一个任务名,为默认执行任务
gulp.task('default', function() {
  // 放置默认的任务代码
})

在项目文件夹下输入命令gulp时, 就是触发这个default任务, 因此, 我们定义多个自定义事件, 这样在输入gulp时, 就可以直接将我们写的命令也一起触发.

示例:
 

const gulp = require('gulp');
const uglify = require("gulp-uglify");  
 
gulp.task('default', function() {
  gulp.src('./src/main.js')
      .pipe(uglify())
      .pipe(gulp.dest('./dist'));
})

gulp也有很多常用的插件,在这里就不多讲了,大家需要的时候可以搜索下载。

找到了一位大佬的博客,上面讲了很多gulp常用的插件,以及gulp更详细的使用

http://t.csdnimg.cn/xeWbg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2034762.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

探索 Kubernetes 持久化存储之 Rook Ceph 初窥门径

在 Kubernetes 生态系统中,持久化存储是支撑业务应用稳定运行的基石,对于维护整个系统的健壮性至关重要。对于选择自主搭建 Kubernetes 集群的运维架构师来说,挑选合适的后端持久化存储解决方案是关键的选型决策。目前,Ceph、Glus…

护眼台灯什么牌子好?曝光劣质产品常见的四大套路

孩子使用护眼台灯什么牌子好?孩子不仅是家庭的希望,也是国家的未来。为了让孩子们在未来具备更强的竞争力,父母们总是竭尽全力提供最佳的教育资源,如购置优质学位房、报名各类培训课程和兴趣班。然而,在这些努力之外&a…

AR技术:汽车行业创新发展的新动力

在当今科技飞速发展的时代,增强现实技术(AR)正逐渐在各个领域展现出其独特的优势和应用价值。在汽车行业中,AR也扮演着越来越重要的角色,为汽车的设计、制造、维修和销售等环节带来了诸多创新和变革。以下是汽车行业中…

排序算法之折半插入排序

title: 折半插入排序 date: 2024-7-19 10:17:24 0800 categories: 排序算法 tags:排序算法折半插入排序 description: 折半插入排序(Binary Insertion Sort)是插入排序的一种改进版本。它在插入每个元素时使用二分查找(Binary Search&#x…

一文读懂第三代半导体

一、氮化嫁(GaN)定义 氮化镓材料定义:氮化镓(GaN)主要是由人工合成的一种半导体材料,禁带宽度大于2.3eV,也称为宽禁带半导体材料。 氮化镓材料为第三代半导体材料的典型代表,是研制微电子器件、光电子器件…

AI技术在招聘数据分析洞察中的作用

一、引言:AI赋能招聘新纪元 在数字化转型浪潮中,人工智能技术(AI)正以前所未有的速度渗透至各行各业,其中,招聘领域正经历着一场深刻的变革。传统招聘模式依赖于人工筛选简历、面试评估等低效且主观性强的…

【源码+论文】基于VUE的新闻类网站

系统包含:源码论文 所用技术:SpringBootVueSSMMybatisMysql 获取资料请私聊我 1 概述 1.1课题背景及意义 随着现代网络技术发展,对于新闻类网站的设计现在正处于发展的阶段,所以对的要求也是比较严格的,要从系统的…

c++编程(20)——类与对象(6)继承

欢迎来到博主的专栏——c编程 博主ID:代码小豪 文章目录 继承继承与权限访问 基类和派生类基类和派生类的赋值兼容转换基类与派生类的类作用域派生类与基类的构造函数基类与派生类拷贝构造函数 继承与静态成员final关键字 面向对象编程的核心思想是封装、继承和多态…

LeetCode - 209 - 长度最小的子数组

力扣209题 题目描述:长度最小的子数组 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 子数组 [numsl, numsl1, ..., numsr-1, numsr] ,并返回其长度**。**如果不存在符合条件的子数组&…

unordered_map与unordered_set的实现

目录 1.底层结构 1)方式 2)哈希冲突 3)哈希函数 4)哈希冲突的解决 1.闭散列 1)线性探测 扩容: 2)二次探测 2.开散列 1)概念 2)实现 插入操作: 删…

8个不可错过的高清视频素材网

寻找优质高清视频素材是许多创意工作者和内容创作者必不可少的一项任务。无论是在制作广告、影视作品,还是在进行视频编辑和设计工作,高质量的视频素材都能为你的作品增色不少。 推荐8个备受好评的高清视频素材网站,这些网站提供丰富多样、高…

Django基础知识

文章目录 新建Django项目helloworld关联数据库admin 新建Django项目 创建django-admin startproject project_name 运行 python manage.py runserver 创建app: python manage.py startapp app_name 目录: 配置文件 settings.py 路由配置 urls.py 项目管理 manage.p…

facebook广告效果下降,可能是进入了疲劳期

在做facebook广告的时候,你是否遇到过原本效果很好的广告,突然开始走下坡路的情况,这可能是因为广告进入了疲劳期,广告疲劳期指的是广告展现频率过高,用户多次看到相同广告后就对此感到了厌倦,所以会出现广…

IMA自动接触系统ACS操作手测

IMA自动接触系统ACS操作手测

飞轮科技首席执行官马如悦受邀出席可信数据库发展大会,三大事件,一文解读!

近日,由中国通信标准化协会、大数据技术标准推进委员会主办,InfoQ 极客传媒联合主办的 “2024 可信数据库发展大会” 在京成功召开。此次大会汇聚了众多数据库行业领军企业、专家学者,共同探讨全球数据库发展趋势,分享最具权威性的…

合成数据的pipline

参考:https://github.com/yizhongw/self-instruct 总体来说就是 大模型自己遵循一套流程来生成数据,然后来微调自己。 1.指令生成 每一个迭代都选8个任务的指令作为该任务的提示样本,其中6个是人写的,2个是生成的。 然后组成输…

从零到一:家政保洁小程序搭建全攻略与功能作用深度解析

目录 一、家政保洁小程序主要功能 二、家政保洁小程序搭建教程 (一)前期准备 (二)注册与选择工具 (三)设计与开发 (四)测试与优化 (五)发布与推广 一、…

笔记本CPU天梯图(2024年8月),含AMD/骁龙等新CPU

原文地址(高清无水印原图/持续更新/含榜单出处链接): 2024年8月笔记本CPU天梯图 2024年8月笔记本CPU天梯图 2024年8月5日更新日志:常规更新Cinebench R23、PassMark笔记本CPU天梯图,新增Geekbench 6.2单核多核天梯图&…

您真的了解人类反馈强化学习(RLHF)吗?

生成性人工智能,就像ChatGPT和Gemini这样的应用,现在可火了,感觉我们生活中越来越离不开它们。 不过呢,这些工具虽然厉害,但用的时候也得留个心眼,因为它们可能会搞出些问题来。比如,有时候AI可…

DP转Type-c方案 带PD快充(外接显卡与VR)

DP转Type-C技术允许用户将DisplayPort信号转换为Type-C接口,‌以便连接和支持Type-C接口的设备。‌ DP转Type-C技术主要应用于需要将DisplayPort信号转换为Type-C接口的情况,‌以便连接和支持只有Type-C接口的设备。‌这种转换技术通过专门的转换器或连…