Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在浏览器上使用Javascript require和import_Javascript_Node.js_Typescript - Fatal编程技术网

在浏览器上使用Javascript require和import

在浏览器上使用Javascript require和import,javascript,node.js,typescript,Javascript,Node.js,Typescript,我知道require不在浏览器上,但为什么它是特定于nodejs的呢?typescript/ES6中的从“某个模块位置”导入{some module}是否确实执行了相同的操作 另外,是否可以使用导入而不是使用在网页中嵌入js文件?在nodejs中,require的实现方式与requirejs类似。它不是一种语言特征,而是一种普通的功能 如果在node.js中切换到调试模式,您将看到每个填充都被包装到一个函数中: (function( exports, require, module, __fi

我知道
require
不在浏览器上,但为什么它是特定于nodejs的呢?typescript/ES6中的
从“某个模块位置”导入{some module}
是否确实执行了相同的操作


另外,是否可以使用
导入
而不是使用
在网页中嵌入js文件?

在nodejs
中,require
的实现方式与
requirejs
类似。它不是一种语言特征,而是一种普通的功能

如果在node.js中切换到调试模式,您将看到每个填充都被包装到一个函数中:

 (function( exports, require, module, __filename, __dirname) {
     // the original source of the file
 })
另一方面,
import
是ES6规范的一部分

对于
import
require
,node.js内部也会这样做,只是使用了另一种语法。TypeScript或WebPack将
导入
转换为与上面类似的内部语法

在这里可以看到
import
的浏览器支持:


在nodejs中
require
的实现方式与
requirejs
类似。它不是一种语言特征,而是一种普通的功能

如果在node.js中切换到调试模式,您将看到每个填充都被包装到一个函数中:

 (function( exports, require, module, __filename, __dirname) {
     // the original source of the file
 })
另一方面,
import
是ES6规范的一部分

对于
import
require
,node.js内部也会这样做,只是使用了另一种语法。TypeScript或WebPack将
导入
转换为与上面类似的内部语法

在这里可以看到
import
的浏览器支持:

我知道
require
不在浏览器上,但为什么它是特定于nodejs的呢?typescript/ES6中的
从“某个模块位置”导入{some module}
是否确实执行了相同的操作

没错,
require
不是本机浏览器功能。但是,它是CommonJS规范的一部分,但不是node.js独有的。您知道,在ES2015/ES6之前,没有一种本地方式来进行JavaScript的模块化组织/加载。为了解决这个问题,出现了两种主要的方法:CommonJS和异步模块定义(AMD)

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

不同的框架和库使用不同的加载程序。AMD由require.js、Dojo和AngularJS使用(尽管并不完全符合规范)。CommonJS最著名的实现是node.js实现的

我知道
require
不在浏览器上,但为什么它是特定于nodejs的呢?typescript/ES6中的
从“某个模块位置”导入{some module}
是否确实执行了相同的操作

没错,
require
不是本机浏览器功能。但是,它是CommonJS规范的一部分,但不是node.js独有的。您知道,在ES2015/ES6之前,没有一种本地方式来进行JavaScript的模块化组织/加载。为了解决这个问题,出现了两种主要的方法:CommonJS和异步模块定义(AMD)

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


不同的框架和库使用不同的加载程序。AMD由require.js、Dojo和AngularJS使用(尽管并不完全符合规范)。CommonJS最著名的实现是node.js。

require
实现,这是CommonJS规范的权宜之计(至少从node.js的角度来看),因为在ES6之前,在基于浏览器的JavaScript中没有“真正”的方式进行模块化加载。CommonJS、AMD和jQueries插件系统(某种程度上)都试图填补这一角色,直到ES6出现并引入了
import
。您能否更详细地解释一下“也可以使用import而不是使用嵌入js文件在网页中?”的意思?
require
是CommonJS规范的权宜之计吗(至少从node.js的角度来看)由于在ES6之前没有“真正”的方式在基于浏览器的JavaScript中进行模块化加载。CommonJS、AMD和jQueries插件系统(某种程度上)都试图填补这个角色,直到ES6出现并引入了
import
。您能更详细地解释一下您的意思吗“此外,是否可以使用导入而不是使用将js文件嵌入网页?”?