问题描述
在 JavaScript 里引用依赖库或者文件的时候,有的项目使用 require
有的项目使用 import
,它们的区别是什么?
问题出现的环境背景及自己尝试过哪些方法
比如有的项目里这样:
import {Socket} from "phoenix"
有的项目里却是这样:
const {
normalizeReplacer
} = require('./utils');
而且这样种写法好像不能互相替代。
相关代码
如上。
你期待的结果是什么?实际看到的错误信息又是什么?
哪位大神来解释一下个中原由。
本文参与了SegmentFault 思否面试闯关挑战赛,欢迎正在阅读的你也加入。
require
是 CommonJS 的方法;import
是 ES Module 的方法。两种方法在细节方面有所不同,最常见的几个:import
只能静态加载,动态加载要import()
import
有default
import
可以远程加载不过仓库里的
require
和import
未必如此,因为很多包发布的时候都会经过打包工具,常用的 webpack、rollup、vite 等都会对模块进行转译等处理,所以它不一定完全遵守某个规范。