Require函数

Require函数: 用于引入模块、 JSON、或本地文件。 可以从 node_modules 引入模块。 可以使用相对路径(例如 ./、 ./foo、 ./bar/baz、 …/foo)引入本地模块或 JSON 文件,路径会根据 __dirname定义的目录名或当前工作目录进行处理

// 引入本地模块:
const myLocalModule = require('./path/myLocalModule');// 引入 JSON 文件:
const jsonData = require('./path/filename.json');// 引入 node_modules 模块或 Node.js 内置模块:
const crypto = require('crypto');

注 意 : \color{#FF0000} {注意:} 注意:

  1. Wepack本身是一个预编译路径,不能够require纯变量的打包工具,因为无法预知变量路径
  2. require(path) ,path 至少要有三部分组成, 目录,文件名和后缀
  3. 目录:webpack 才知道从哪里开始查找
  4. 后缀 文件后缀,必须要加上,不然会报错
  5. 文件名:可用变量表示

综上以下引用方式是错误的!

let imgUrlStr = '../images/a.png';
let imgUrl = require(imgUrlStr);
//webpack无法知道是哪个模块或图片被引入,故无法将图片hash并输出到指定dist文件下

鉴于require在纯变量的情况下找不到模块,所以我们至少要在require参数中写明一个目录(如下边代码中的example 2和example 3),这样的话,虽然不知道具体的模块,但是webpack也会为我们做些分析工作:
如分析目录: ‘…/images’ 或着 提取正则表达式 ‘/^.*.png$/‘

let imgName = 'a';
let imgAllName = 'a.png';// example 1
let imgUrl = require('../images/a.png');                // 纯字符串
// example 2
let imgUrl = require('../images/' + imgAllName);        // 目录 + 文件全名
// example 3
let imgUrl = require('../images/' + imgName + '.png');  // 目录 + 文件名 + 后缀

import与require区别

node编程中最重要的思想就是模块化,import和require都是被模块化所使用。

遵循规范

  1. equire 是 AMD规范引入方式
  2. import是es6的一个语法标准,如果要兼容浏览器的话必须转化成es5的语法

调用时间

  1. require是运行时调用,所以require理论上可以运用在代码的任何地方
  2. import是编译时调用,所以必须放在文件开头

本质

  1. require是赋值过程,其实require的结果就是对象、数字、字符串、函数等,再把require的结果赋值给某个变量
  2. import是解构过程,但是目前所有的引擎都还没有实现import,我们在node中使用babel支持ES6,也仅仅是将ES6转码为ES5再执行,import语法会被转码为require

参考:
资料一:https://blog.csdn.net/liubangbo/article/details/105028135
资料二:https://www.cnblogs.com/sunshq/p/7922182.html

一、Require函数相关推荐

  1. 原生js已载入就执行函数_手写CommonJS 中的 require函数

    前言 来自于圣松大佬的文章<手写CommonJS 中的 require函数> 什么是 CommonJS ? node.js 的应用采用的commonjs模块规范. 每一个文件就是一个模块, ...

  2. 【Kotlin】空安全 ⑥ ( 先决条件函数 | checkNotNull 函数 | require 函数 | requireNotNull 函数 | error 函数 | assert 函数 )

    文章目录 一.先决条件函数 1.先决条件函数概念 2.先决条件函数原型 3.先决条件函数代码示例 一.先决条件函数 1.先决条件函数概念 在 Kotlin 中提供了一些 内置函数 , 在这些函数中可以 ...

  3. html js require函数,Require.js的基本用法详解

    一:什么是require.js ①:require.js是一个js脚本加载器,它遵循AMD(Asynchronous Module Definition)规范,实现js脚本的异步加载,不阻塞页面的渲染 ...

  4. lua/require函数

    Lua提供高级的require函数来加载运行库,lua中的require函数功能主要有: 1.require函数会搜索目录加载文件 2.require会判断是否文件已经加载避免重复加载同一文件. 由于 ...

  5. 自制 require 函数:让浏览器轻松实现 js 文件按需加载

    唉?这种文章你也点进来看,你不知道有 LABjs.RequireJS.SeaJS... 这些库吗? 反正我是没用过这些库,什么 AMD .CMD 哪来那么多术语... 前端的库太多了,要看各种乱七八糟 ...

  6. require js define 函数

    模块不同于传统的脚本文件,它良好地定义了一个作用域来避免全局名称空间污染.它可以显式地列出其依赖关系,并以函数(定义此模块的那个函数)参数的形式将这些依赖进行注入,而无需引用全局变量.RequireJ ...

  7. Common Lisp 函数 require 和 provide 源代码分析

    2019独角兽企业重金招聘Python工程师标准>>> Common Lisp 函数 require 和 provide 源代码分析 === 涉及文件: l1-files.lisp ...

  8. html调用js函数_使用Require.js实现模块化开发

    在javascript中,我们把比较复杂的都是用模块化,今天我们就来了解一下require.js来实现模块化开发 require.js是什么? require.js是在AMD规范上实现的一个 Java ...

  9. 文件包含漏洞(LFI、RFI)(require()、include()函数)

    文章目录 一.文件包含漏洞分类 二.文件包含漏洞原理 三.文件包含函数 四.测试是否存在本地文件包含(LFI)漏洞 五.文件包含漏洞实例 "百度杯"CTF比赛 2017 二月场in ...

最新文章

  1. 【转】Maven Jetty 插件的问题(css/js等目录死锁)的解决
  2. WindowsServer2012史记7-茴香豆的五种写法和四种”显示计算机”的方法
  3. PostgreSQL 消息平台实践
  4. Python学习—函数
  5. 【solr专题之三】Solr常见异常
  6. 使用自动伸缩组在AWS中运行安全数据库集群
  7. 【牛客 - 157D】插排树(dfs,树形dp)
  8. html中可以自定义属性,,,妈的竟然才知道..
  9. php symbol table,gdb方式遍历EG(symbol_table) 哈希表的key_PHP教程
  10. 对称加密 与 非对称加密
  11. STM32F103mini教程学习总结与心得(二)---->串口通信
  12. Linux下出现command not found的解决办法
  13. 51单片机入门——8X8点阵LED
  14. 如何进行自学软件测试?
  15. 手持式频谱分析仪推荐哪一款?
  16. 经典游戏PK:魔兽争霸VS星际争霸VS红警
  17. 一次成功编译Bilibili安卓播放器
  18. 软件测试面试两分钟自我介绍
  19. 3d可视化虚拟建模vr展示三维模型方案
  20. POJ - 1077 Eight(A∗算法)

热门文章

  1. 3d Max人物动画学习笔记(二)蒙皮
  2. wuc-tab标签点击不了_微信公众号新增标签功能,格力被中国移动取消竞标资格,全国电子无偿献血证上线,QQ新增辣椒酱表情,这就是今天的其他大新闻!...
  3. 面试题01.05.一次编辑
  4. 关于家庭小型无线网络信号不稳定的说明
  5. 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。
  6. 4G模块 | 基于4G Cat.1的内网穿透实践
  7. 视觉世界中的“众里寻她”--开放环境下的人物特征表示
  8. win10台式计算机调亮度,Win10系统台式机怎么调节亮度
  9. 前端在线微信扫码支付的小功能
  10. 51单片机入门 - 自己动手搭建实验板