一、Require函数
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} {注意:} 注意:
- Wepack本身是一个预编译路径,不能够require纯变量的打包工具,因为无法预知变量路径
- require(path) ,path 至少要有三部分组成, 目录,文件名和后缀
- 目录:webpack 才知道从哪里开始查找
- 后缀 文件后缀,必须要加上,不然会报错
- 文件名:可用变量表示
综上以下引用方式是错误的!
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都是被模块化所使用。
遵循规范
- equire 是 AMD规范引入方式
- import是es6的一个语法标准,如果要兼容浏览器的话必须转化成es5的语法
调用时间
- require是运行时调用,所以require理论上可以运用在代码的任何地方
- import是编译时调用,所以必须放在文件开头
本质
- require是赋值过程,其实require的结果就是对象、数字、字符串、函数等,再把require的结果赋值给某个变量
- 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函数相关推荐
- 原生js已载入就执行函数_手写CommonJS 中的 require函数
前言 来自于圣松大佬的文章<手写CommonJS 中的 require函数> 什么是 CommonJS ? node.js 的应用采用的commonjs模块规范. 每一个文件就是一个模块, ...
- 【Kotlin】空安全 ⑥ ( 先决条件函数 | checkNotNull 函数 | require 函数 | requireNotNull 函数 | error 函数 | assert 函数 )
文章目录 一.先决条件函数 1.先决条件函数概念 2.先决条件函数原型 3.先决条件函数代码示例 一.先决条件函数 1.先决条件函数概念 在 Kotlin 中提供了一些 内置函数 , 在这些函数中可以 ...
- html js require函数,Require.js的基本用法详解
一:什么是require.js ①:require.js是一个js脚本加载器,它遵循AMD(Asynchronous Module Definition)规范,实现js脚本的异步加载,不阻塞页面的渲染 ...
- lua/require函数
Lua提供高级的require函数来加载运行库,lua中的require函数功能主要有: 1.require函数会搜索目录加载文件 2.require会判断是否文件已经加载避免重复加载同一文件. 由于 ...
- 自制 require 函数:让浏览器轻松实现 js 文件按需加载
唉?这种文章你也点进来看,你不知道有 LABjs.RequireJS.SeaJS... 这些库吗? 反正我是没用过这些库,什么 AMD .CMD 哪来那么多术语... 前端的库太多了,要看各种乱七八糟 ...
- require js define 函数
模块不同于传统的脚本文件,它良好地定义了一个作用域来避免全局名称空间污染.它可以显式地列出其依赖关系,并以函数(定义此模块的那个函数)参数的形式将这些依赖进行注入,而无需引用全局变量.RequireJ ...
- Common Lisp 函数 require 和 provide 源代码分析
2019独角兽企业重金招聘Python工程师标准>>> Common Lisp 函数 require 和 provide 源代码分析 === 涉及文件: l1-files.lisp ...
- html调用js函数_使用Require.js实现模块化开发
在javascript中,我们把比较复杂的都是用模块化,今天我们就来了解一下require.js来实现模块化开发 require.js是什么? require.js是在AMD规范上实现的一个 Java ...
- 文件包含漏洞(LFI、RFI)(require()、include()函数)
文章目录 一.文件包含漏洞分类 二.文件包含漏洞原理 三.文件包含函数 四.测试是否存在本地文件包含(LFI)漏洞 五.文件包含漏洞实例 "百度杯"CTF比赛 2017 二月场in ...
最新文章
- 【转】Maven Jetty 插件的问题(css/js等目录死锁)的解决
- WindowsServer2012史记7-茴香豆的五种写法和四种”显示计算机”的方法
- PostgreSQL 消息平台实践
- Python学习—函数
- 【solr专题之三】Solr常见异常
- 使用自动伸缩组在AWS中运行安全数据库集群
- 【牛客 - 157D】插排树(dfs,树形dp)
- html中可以自定义属性,,,妈的竟然才知道..
- php symbol table,gdb方式遍历EG(symbol_table) 哈希表的key_PHP教程
- 对称加密 与 非对称加密
- STM32F103mini教程学习总结与心得(二)---->串口通信
- Linux下出现command not found的解决办法
- 51单片机入门——8X8点阵LED
- 如何进行自学软件测试?
- 手持式频谱分析仪推荐哪一款?
- 经典游戏PK:魔兽争霸VS星际争霸VS红警
- 一次成功编译Bilibili安卓播放器
- 软件测试面试两分钟自我介绍
- 3d可视化虚拟建模vr展示三维模型方案
- POJ - 1077 Eight(A∗算法)
热门文章
- 3d Max人物动画学习笔记(二)蒙皮
- wuc-tab标签点击不了_微信公众号新增标签功能,格力被中国移动取消竞标资格,全国电子无偿献血证上线,QQ新增辣椒酱表情,这就是今天的其他大新闻!...
- 面试题01.05.一次编辑
- 关于家庭小型无线网络信号不稳定的说明
- 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。
- 4G模块 | 基于4G Cat.1的内网穿透实践
- 视觉世界中的“众里寻她”--开放环境下的人物特征表示
- win10台式计算机调亮度,Win10系统台式机怎么调节亮度
- 前端在线微信扫码支付的小功能
- 51单片机入门 - 自己动手搭建实验板