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

公司网站建设需求书/人民日报今日新闻

公司网站建设需求书,人民日报今日新闻,客服外包怎么收费,韩国出线形势在webpack中支持的模块语法风格有:ES6,commonJS和AMD ES6风格(推荐) 在webpack2中,webpack支持ES6模块语法。这意味着在没有babel等工具处理的情况下你就可以使用import和export。下面的方法在webpack中被支持: import 静态地导入…

webpack中支持的模块语法风格有:ES6,commonJS和AMD

ES6风格(推荐)

在webpack2中,webpack支持ES6模块语法。这意味着在没有babel等工具处理的情况下你就可以使用import和export。下面的方法在webpack中被支持:

import

静态地导入其他模块的导出

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

注:import只能静态的导入其他模板。不能在其他逻辑或者包含变量中动态使用

export

导出变量,函数

import()

import('path/to/module') -> promise

 import()在运行期间动态的加载模块,它在内部依赖promise。import()的调用被视为一个分割点,这意味着请求的模块以及它的子模块被分隔到单个的包中。

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

 import()的注释

行内注释让import()更加地强大。添加注释到import()中,使我们能够对模块进行命名以及选择不同的模式。下面有一些列子:

 // single targetimport(/* webpackChunkName: "my-chunk-name" *//* webpackMode: "lazy" */'module')// Multiple possible targetsimport(/* webpackInclude: /\.json$/ *//* webpackExclude: /\.noimport\.json$/ *//* webpackChunkName: "my-chunk-name" *//* webpackMode: "lazy" *//* webpackPrefetch: true *//* webpackPreload: true */`./locale/${language}`)import(/* webpackIgnore: true */'ignored-module.js')

 行内注释可设置的属性

  1. webpackIgnore: 如果将webpackIgnore被设置为true,将不能动态导入
  2. webpackChunkName:给包命名。从2.6.0起,占位符[index]和[request]在给定的字符串中被支持,[index]为递增的数字,[request]为实际解析的文件名。在注释中添加webpackChunkName:'my-chunk-name',这会使分隔的包名为 [my-chunk-name].js而不是[id].js
  3. webpackPrefetch:告诉浏览器,这个资源在将来可能会被需要用于一些导航。
  4. webpackPreload:告诉浏览器,这个资源在当前导航中可能会需要。
  5. webpackMode:从2.6.0起,能够指定不同的动态导入模式。可选项如下:
    • 'lazy'(default):为每一个import()的模块生成一个懒加载chunk。
    • 'lazy-once':只生成一个满足所有import()调用的懒加载chunk。在第一次调用import()时就会去获取chunk,在之后调用import()会使用相同的网络响应。注意这只在部分动态语句中才有意义,例如:import(`./locales/${language}.json`),这儿可能有多个模块路径被请求。
    • 'eager':不生成额外的chunk,所有的模块被包含中当前的chunk中并且不会增加额外的网络请求。只要被解析,promise依然会返回。与静态导入不同的是,直到调用import(),module才会被执行
    • 'weak':如果模块功能已经在其他地方被加载了(如:在其他模块中导入了它或者加载了包含这个模块的脚本),就尝试去加载这个模块。promise依然会返回,但是只有当chunk已经在客户端了才会resolve,如果模块不可用就会reject。不会发送网络请求。
    • 'webpackInclude':在导入期间这个正则表达式会用于匹配,只有被匹配到的模块才会被打包。
    • 'webpackExclude':在导入期间这个正则表达式会用于匹配,只要是被匹配到的模块就不会被打包。

commonJS

commonJS的目标是为浏览器之外的JavaScript指定一个生态系统。下面的commonJS方法在webpack中被支持:

require

 require(dependency: String);

 从其他的模块中同步检索exports。编辑器会确认在输出包中依赖是可用的

var $ = require('jquery');
var myModule = require('my-module');

 require.resolve

var ID = require.resolve(dependency: String);

 同步检索模块ID,编辑器会确认在输出包中依赖是可用的

require.cache

对同一个模块的多次require,只有一个模块执行并且只有一次导出。这是因为在运行期间存在cache。从cache中移除值这会导致新的模块执行以及新的导出。

var d1 = require('dependency');require('dependency') === d1;delete require.cache[require.resolve('dependency')];require('dependency') !== d1;// in file.jsrequire.cache[module.id] === module;require('./file.js') === module.exports;delete require.cache[module.id];require.cache[module.id] === undefined;require('./file.js') !== module.exports; // in theory; in praxis this causes a stack overflowrequire.cache[module.id] !== module;

 require.ensure

 require.ensure(dependencies: String[],callback: function(require),errorCallback: function(error),chunkName: String)

 分隔指定的依赖到单独的包中,并且包会被异步加载。使用commonJs语法这是唯一一种动态加载包的方式。这意味着,该代码可以在执行中运行,只有在满足某些条件时才加载依赖项。这个功能在内部依赖promise

if ( module.hot ) {require.ensure(['b'], function(require) {var c = require('c');// Do something special...});

 require.ensure支持如下参数:

  1. dependencies:字符串数组。声明在callback要执行的所有模块。
  2. callback:一个函数。当所有的依赖加载完成就会这些这个回调函数。require会作为这个函数的参数,在函数中可以使用require去引入其他的依赖。
  3. errorCallback:如果依赖加载失败就会执行这个函数
  4. chunkName:给通过require.ensure()创建的包名指定一个名字

AMD

AMD是一个JavaScript规范,它为书写模块,加载模板定义了接口。在webpack中支持如下的AMD方法

define (with factory)

define([name: String], [dependencies: String[]], factoryMethod: function(...))

 如果提供了dependencies,factoryMethod会带着每个dependency输出(按dependencies的相同顺序)被调用,如果dependencies没有被提供,factoryMethod会带着require, exports 和 module被调用,如果这个函数有返回值,这个值会作为模块的输出。webpack会忽略name

define(['jquery', 'my-module'], function($, myModule) {// Do something with $ and myModule...// Export a functionreturn function doSomething() {// ...};
});

 它不能在异步函数中使用

define (with value)

define(value: !Function)

 

define({answer: 42
});

 简单的导出value,这儿的value可以是除函数之外的任何值

require (amd-version)

require(dependencies: String[], [callback: function(...)])

 它与require.ensure()类似。它会分隔dependencies到一个独立中包中,并且这个包会被异步加载

require(['b'], function(b) {var c = require('c');
});

 webpack

除了上面描述的模块语法之外,webpack还提供了一些webpack特有的方法

require.context

require.context(directory: String,includeSubdirs: Boolean /* optional, default true */,filter: RegExp /* optional, default /^\.\/.*$/, any file */,mode: String  /* optional, 'sync' | 'eager' | 'weak' | 'lazy' | 'lazy-once', default 'sync' */
)

 require.include

require.include(dependency: String)

 在不执行依赖项的情况下包含依赖项.在优化性能时非常有用

require.include('a');
require.ensure(['a', 'b'], function(require) { /* ... */ });
require.ensure(['a', 'c'], function(require) { /* ... */ });

 这会生成如下输出:

  • 入口chunk:file.js 和 a
  • 异步chunk:b
  • 异步chunk:c

如果没有使用require.include('a')。a会被复制在两个anonymous chunk中

转载于:https://www.cnblogs.com/QxQstar/p/10331205.html

http://www.lbrq.cn/news/1440055.html

相关文章:

  • 帝国做网站是选择静态还是伪静态/建站系统源码
  • b2b电子商务平台登录/女装标题优化关键词
  • 手机网站建设服务电话/360优化大师官方下载手机
  • 网站建设实施/能让网络非常流畅的软件
  • 温州知名网站推广/站长工具网站
  • 游戏网站上做银商为赌博人员/成都比较靠谱的seo
  • 做网站推广每天加班/站长工具官网域名查询
  • wordpress 做购物网站/百度知道灰色词代发收录
  • 男朋友说是做竞彩网站维护的/b站引流推广网站
  • 建设景区网站推文/整合营销策略
  • 亿网行网站建设/网络优化工程师有前途吗
  • 网站为什么维护/朝阳区seo搜索引擎优化怎么样
  • wordpress nextgen gallery/网站seo提升
  • wordpress响应多少才正常/兰州seo优化
  • 太原网站优化教程/百度网站首页提交入口
  • 企业网站建设 建立作用/做网站企业
  • 合肥专业网站建设/简述如何对网站进行推广
  • 石家庄上门足疗/网站seo优化方案
  • 深圳网络seo优化/网站需要怎么优化比较好
  • 品牌网站建设仁術大蝌蚪/百度seo官方网站
  • 观澜网站建设/网站seo优化运营
  • 什么网站可以做实验室/精准ip地址查询工具
  • 抖音小程序推广怎么挂才有收益/哈尔滨关键词优化报价
  • 柳州网站建设33/大地seo视频
  • 辽宁城乡建设工程招标网(官网)/网站seo关键词优化技巧
  • 企业网站开发需要多钱/百度ocpc如何优化
  • 免费的ppt网站推荐/如何建立网页
  • 计算机专业网站建设实训日志/网站seo入门基础教程
  • 销售网站免费做/哈尔滨电话本黄页
  • 建站之星极速版/晨阳seo顾问
  • AuthController类讲解
  • 一维数组的创建、初始化与使用指南
  • msyql中,max_connections和max_user_connections区别
  • 学习观察和行动:机器人操作中任务-觉察的视图规划
  • 前端组件库双雄对决:Bootstrap vs Element UI 完全指南
  • MyBatisPlus插件原理