2017-10-10 122 views
-1

我知道require不在浏览器上,但为什么,它是否是nodejs特有的?打字稿/ ES6中的import { some-module } from 'some-module-location'实际上是否也一样?使用Javascript需求并导入浏览器

此外,可以使用import而不是使用<script>将js文件嵌入到网页中?

+0

'require'是CommonJS规范的权限(至少从node.js的角度来看),因为在ES6之前没有“真正”的方式在基于浏览器的JavaScript中进行模块化加载。 CommonJS,AMD和jQueries插件系统(种类)都试图填补这一角色,直到ES6进入并引入'import'。 – zero298

+0

你能详细说一下你的意思吗?“另外,可以导入使用,而不是使用

0

我知道require不上的浏览器,但为什么,它是具体的NodeJS?打字稿/ ES6中的import { some-module } from 'some-module-location'实际上是否也一样?

你说得对,require不是本地浏览器功能。但是,它是CommonJS规范的一部分,但不是node.js所特有的。你看,在ES2015/ES6之前,没有本地的方式来做JavaScript的模块化组织/加载。为了解决这个问题,有两个主要的方法:CommonJS和异步模块定义(AMD)。

两者都有一个require“关键字”,用于将指定的模块加载到上下文中。但是,每个都以不同的方式加载它。您可以阅读很多有关不同问题的差异,如:Difference between RequireJS and CommonJS。主要区别在于CommonJS是同步的,而AMD是异步的。

不同的框架和库使用不同的装载机。 AMD被require.js,Dojo和AngularJS使用(虽然不完全符合规范)。 CommonJS最着名的实现是node.js。