广告
返回顶部
首页 > 资讯 > 精选 >webpack支不支持es6
  • 699
分享到

webpack支不支持es6

2023-07-05 00:07:02 699人浏览 独家记忆
摘要

这篇文章主要介绍了webpack支不支持es6的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇WEBpack支不支持es6文章都会有所收获,下面我们一起来看看吧。webpack支持es6。webpack 2支持原

这篇文章主要介绍了webpack支不支持es6的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇WEBpack支不支持es6文章都会有所收获,下面我们一起来看看吧。

webpack支持es6。webpack 2支持原生的ES6模块语法,意味着开发者无须额外引入babel这样的工具,就可以使用import和export。但如果使用其他的ES6+特性,仍然需要引入babel工具。

模块方法

在 webpack 打包应用程序时,你可以选择各种模块语法风格,包括 ES6,Commonjs 和 AMD。

尽管 webpack 支持多种模块语法,但我们还是建议尽量使用一致的语法,以此避免一些奇怪的行为和 bug。事实上,当距离最近的 package.JSON 文件中包含值为 "module" 或 "commonjs" 的 "type" 字段时,webpack 会启用语法一致性检查。请大家在阅读前,注意此情况:

  • 在 package.json 中为 .mjs 或 .js 设置 "type": "module"

    • 不允许使用 CommonJS,例如,你不能使用 require,module.exports 或 exports

    • 当引入文件时,强制编写扩展名,例如,你应使用 import './src/App.mjs',而非 import './src/App'(你可以通过设置 Rule.resolve.fullySpecified 来禁用此规则)

  • 在 package.json 中为 .cjs 或 .js 设置 "type": "commonjs"

    • import 和 export 均不可用

  • 在 package.json 中为 .wasm 设置 "type": "module"

    • 引入 wasm 文件时,必须编写文件扩展名

ES6 (推荐)

webpack 2 支持原生的 ES6 模块语法,意味着你无须额外引入 babel 这样的工具,就可以使用 import 和 export。但是注意,如果使用其他的 ES6+ 特性,仍然需要引入 babel。webpack 支持以下的方法:

import

通过 import 以静态的方式导入另一个通过 export 导出的模块。

import MyModule from './my-module.js';import { NamedExport } from './other-module.js';

Warning:

这里的关键词是静态的。标准的 import 语句中,模块语句中不能以「具有逻辑或含有变量」的动态方式去引入其他模块。关于 import 的更多信息和 import() 动态用法。

你也通过 import 来引入 Data URI:

import 'data:text/javascript;charset=utf-8;base64,Y29uc29sZS5sb2coJ2lubGluZSAxJyk7';import {  number,  fn,} from 'data:text/javascript;charset=utf-8;base64,ZXhwb3J0IGNvbnN0IG51bWJlciA9IDQyOwpleHBvcnQgY29uc3QgZm4gPSAoKSA9PiaiSGVsbG8gd29ybGQiow==';

export

默认导出整个模块或具名导出模块。

// 具名导出export var Count = 5;export function Multiply(a, b) {  return a * b;}// 默认导出export default {  // Some data...};

import()

function(string path):Promise

动态的加载模块。调用 import 的之处,被视为分割点,意思是,被请求的模块和它引用的所有子模块,会分割到一个单独的 chunk 中。

Tip:

ES2015 Loader 规范 定义了 import() 方法,可以在运行时动态地加载 ES2015 模块。

if (module.hot) {  import('lodash').then((_) => {    // Do something with lodash (a.k.a '_')...  });}

Warning:

import() 特性依赖于内置的 Promise。如果想在低版本浏览器中使用 import(),记得使用像 es6-promise 或者 promise-polyfill 这样 polyfill 库,来预先填充(shim) Promise 环境。

import() 中的表达式

不能使用完全动态的 import 语句,例如 import(foo)。是因为 foo 可能是系统或项目中任何文件的任何路径。

import() 必须至少包含一些关于模块的路径信息。打包可以限定于一个特定的目录或文件集,以便于在使用动态表达式时 - 包括可能在 import() 调用中请求的每个模块。例如, import(`./locale/${language}.json`) 会把 .locale 目录中的每个 .json 文件打包到新的 chunk 中。在运行时,计算完变量 language 后,就可以使用像 english.json 或 german.json 的任何文件。

// 想象我们有一个从 cookies 或其他存储中获取语言的方法const language = detectVisitorLanguage();import(`./locale/${language}.json`).then((module) => {  // do something with the translations});

Tip:

使用 webpackInclude and webpackExclude 选项可让你添加正则表达式模式,以减少 webpack 打包导入的文件数量。

Magic Comments

内联注释使这一特性得以实现。通过在 import 中添加注释,我们可以进行诸如给 chunk 命名或选择不同模式的操作。

// 单个目标import(        'module');// 多个可能的目标import(              `./locale/${language}`);
import( 'ignored-module.js');

webpackIgnore:设置为 true 时,禁用动态导入解析。

Warning:

注意:将 webpackIgnore 设置为 true 则不进行代码分割。

webpackChunkName: 新 chunk 的名称。 从 webpack 2.6.0 开始,占位符 [index] 和 [request] 分别支持递增的数字或实际的解析文件名。 添加此注释后,将单独的给我们的 chunk 命名为 [my-chunk-name].js 而不是 [id].js。

webpackMode:从 webpack 2.6.0 开始,可以指定以不同的模式解析动态导入。支持以下选项:

  • 'lazy' (默认值):为每个 import() 导入的模块生成一个可延迟加载(lazy-loadable)的 chunk。

  • 'lazy-once':生成一个可以满足所有 import() 调用的单个可延迟加载(lazy-loadable)的 chunk。此 chunk 将在第一次 import() 时调用时获取,随后的 import() 则使用相同的网络响应。注意,这种模式仅在部分动态语句中有意义,例如 import(`./locales/${language}.json`),其中可能含有多个被请求的模块路径。

  • 'eager':不会生成额外的 chunk。所有的模块都被当前的 chunk 引入,并且没有额外的网络请求。但是仍会返回一个 resolved 状态的 Promise。与静态导入相比,在调用 import() 完成之前,该模块不会被执行。

  • 'weak':尝试加载模块,如果该模块函数已经以其他方式加载,(即另一个 chunk 导入过此模块,或包含模块的脚本被加载)。仍会返回 Promise, 但是只有在客户端上已经有该 chunk 时才会成功解析。如果该模块不可用,则返回 rejected 状态的 Promise,且网络请求永远都不会执行。当需要的 chunks 始终在(嵌入在页面中的)初始请求中手动提供,而不是在应用程序导航在最初没有提供的模块导入的情况下触发,这对于通用渲染(SSR)是非常有用的。

webpackPrefetch:告诉浏览器将来可能需要该资源来进行某些导航跳转。

webpackPreload:告诉浏览器在当前导航期间可能需要该资源。

webpackInclude:在导入解析(import resolution)过程中,用于匹配的正则表达式。只有匹配到的模块才会被打包。

webpackExclude:在导入解析(import resolution)过程中,用于匹配的正则表达式。所有匹配到的模块都不会被打包。

webpackExports: 告知 webpack 只构建指定出口的动态 import() 模块。它可以减小 chunk 的大小。从 webpack 5.0.0-beta.18 起可用。

关于“webpack支不支持es6”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“webpack支不支持es6”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网精选频道。

--结束END--

本文标题: webpack支不支持es6

本文链接: https://www.lsjlt.com/news/348711.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • webpack支不支持es6
    这篇文章主要介绍了webpack支不支持es6的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇webpack支不支持es6文章都会有所收获,下面我们一起来看看吧。webpack支持es6。webpack 2支持原...
    99+
    2023-07-05
  • es6支不支持import
    这篇文章主要介绍了es6支不支持import的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇es6支不支持import文章都会有所收获,下面我们一起来看看吧。es6支持import。import语句用于导入由另一...
    99+
    2023-07-05
  • webpack如何配置支持es6 to es5
    这篇文章将为大家详细讲解有关webpack如何配置支持es6 to es5,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1. 安装webpacknpm inst...
    99+
    2022-10-19
  • es6解构支不支持字符串
    今天小编给大家分享一下es6解构支不支持字符串的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。es6解构支持字符串。ES6允许...
    99+
    2023-07-04
  • webstorm不支持es6如何解决
    这篇文章主要介绍“webstorm不支持es6如何解决”,在日常操作中,相信很多人在webstorm不支持es6如何解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”webs...
    99+
    2022-10-19
  • es6支持import吗
    本教程操作环境:windows7系统、ECMAScript 6版、Dell G3电脑。当模块化的概念越来越重要的时候,在es6中,引入了模块的语法:import ,下面我们简单了解一下,import是怎么使用的。1、export一个js文件...
    99+
    2023-05-14
    ES6 import
  • ie8支持es6吗
    这篇“ie8支持es6吗”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“ie8支持es6吗”...
    99+
    2022-10-19
  • hbuilder支持es6吗
    这篇文章主要介绍“hbuilder支持es6吗”,在日常操作中,相信很多人在hbuilder支持es6吗问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”hbuilder支持es6吗”的疑惑有所帮助!接下来,请跟...
    99+
    2023-07-04
  • nodejs支持es6吗
    本文小编为大家详细介绍“nodejs支持es6吗”,内容详细,步骤清晰,细节处理妥当,希望这篇“nodejs支持es6吗”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。nodejs支持es6。Node.js是针对现...
    99+
    2023-07-04
  • kangle支不支持PHP
    kangle支持PHP;kangle是一款跨平台、功能强大、安全稳定、易操作的高性能web服务器和反向代理服务器软件,也是一款专为做虚拟主机研发的web服务器,支持php、asp、asp.net、vb.net、C#、java、ruby等多种...
    99+
    2023-05-14
    kangle php
  • safari支不支持html5
    这篇文章主要介绍了safari支不支持html5的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇safari支不支持html5文章都会有所收获,下面我们一起来看看吧。safari是支持html5的;用户可以直接访...
    99+
    2023-07-05
  • navicat支不支持oracle
    这篇文章主要介绍了navicat支不支持oracle,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。navicat支持oracle。Navicat...
    99+
    2022-10-18
  • navicat支不支持mongodb
    这篇文章将为大家详细讲解有关navicat支不支持mongodb,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Navicat for MariaDB 为 MariaDB数...
    99+
    2022-10-18
  • vuejs支不支持ie8
    这篇文章主要介绍了vuejs支不支持ie8,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 vuejs不支持ie8...
    99+
    2022-10-19
  • css3支不支持rgba
    这篇文章主要介绍“css3支不支持rgba”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“css3支不支持rgba”文章能帮助大家解决问题。 ...
    99+
    2022-10-19
  • vue支不支持ajax
    这篇“vue支不支持ajax”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue支不支持a...
    99+
    2022-10-19
  • php7支不支持laravel5.3
    这篇文章主要讲解了“php7支不支持laravel5.3”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php7支不支持laravel5.3”吧!php7支持“laravel5.3”版本,因为...
    99+
    2023-06-30
  • thinkphp5.1支不支持extra
    本篇文章和大家了解一下thinkphp5.1支不支持extra。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。thinkphp5.1不支持extra,thinkphp5.1中config函数已经取消了extra的支持;可以...
    99+
    2023-07-04
  • vue支不支持ie6
    今天小编给大家分享一下vue支不支持ie6的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。vue不支持ie6;vue官方声明是...
    99+
    2023-07-04
  • ie8支不支持html5
    这篇“ie8支不支持html5”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“ie8支不支持html5”文章吧。ie8不支持h...
    99+
    2023-07-04
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作