草庐IT

CommonJS

全部标签

javascript - 在 ES6 的 `import` 语法中,如何准确评估模块?

假设我们有四个模块,A、B、C和D在模块A中:console.log("Aevaluated")functionAClass{console.log("Aconstructor")}varaObj=newAClass()exportdefaultaObj;在模块B中:importaObjfromAexportdefault"B"在模块C中:importaObjfromAexportdefault"C"在模块D中:importbfromBimportcfromCimportaObjfromA那么当模块D被评估时,A评估和A构造函数会在控制台打印多少次?ES6标准中是否描述了这种行为?如果

javascript - import 和 const 有什么区别,在 commonjs 中哪个是首选

我注意到使用const和import在node.js应用程序中使用es6语法和Babel引用库之间的切换。首选方法是什么,使用const和import有什么区别?假设您可能在许多文件/组件中导入同一个库。常量constReact=require('react')导入importReactfrom'react'这是每个的定义,但我仍然不确定使用哪个。importimport语句用于导入从外部模块、另一个脚本等导出的函数、对象或原语。constconst声明创建一个对值的只读引用。这并不意味着它持有的值是不可变的,只是变量标识符不能被重新分配。 最佳答案

javascript - import 和 const 有什么区别,在 commonjs 中哪个是首选

我注意到使用const和import在node.js应用程序中使用es6语法和Babel引用库之间的切换。首选方法是什么,使用const和import有什么区别?假设您可能在许多文件/组件中导入同一个库。常量constReact=require('react')导入importReactfrom'react'这是每个的定义,但我仍然不确定使用哪个。importimport语句用于导入从外部模块、另一个脚本等导出的函数、对象或原语。constconst声明创建一个对值的只读引用。这并不意味着它持有的值是不可变的,只是变量标识符不能被重新分配。 最佳答案

前端的导入导出:「CommonJS」「ES Module」模块化规范

前言模块化开发有助于我们将代码进行拆分,便于开发和维护,但如果不清楚模块化规范,就会在开发时不知道该用require还是import,导出时该用export还是module.exports,所以我们必须搞清除它们的区别和事情的来龙去脉。本篇主要内容是CommonJS和ESModule规范。其它还有AMD、CMD、UMD规范,感兴趣的小伙伴可以自行了解一下。什么是前端模块化随着前端项目越做越大,功能越来越多,我们不能把所有代码写在一个js中,而是把代码按照不同的功能进行划分,但是代码越来越多,代码之间的引用嵌套越来越深,我们又不得不花费大量时间去管理和维护,如何提高代码的管理效率?就是通过模块化

【前端】CommonJS和ES Module的区别面试向

CommonJS特点社区标准使用函数实现仅node环境支持动态依赖(需要代码运行后才能确定依赖,可以在各种代码里写)动态依赖是同步执行的(本质上就是个函数而已)原理://require函数的伪代码---通过代码可以看到this/exports/module.exports是一样的functionrequire(path){if(该模块有缓存吗){return缓存结果;}function_run(exports,require,module,__filename,__dirname){//模块代码会放到这里}varmodule={exports:{}}_run.call(module.expor

CommonJS的理解

CommonJS是什么?我们主流的前端框架vue/react都是基于node来构建的。在NodeJS出现之前,由于没有特别复杂的页面,前端是没有模块化这个概念的,而NodeJS诞生之后,它使用CommonJS的模块化规范。从此,js模块化开始快速发展。因此,我们知道,commonjs就是一个模块化的规范。目前流行的js模块化规范有CommonJS、AMD、CMD、UMD以及ES6的模块系统。至于什么是模块化?你能看到这里说明你已经工作有点时间了,这个不需要太多的解释,自行领悟吧。小编文采不行,不知道怎么解释,简单来说,一般来说,一个文件就是一个模块,这个文件内的作用域唯一,可以向外暴露变量,函

javascript - 用于导入 commonjs/amd 模块的新 es6 语法,即 `import foo = require(' foo')`

以前我可以这样做:importfoo=require('foo');但现在TypeScript(1.5)支持es6模块语法,在ES6模块语法中实现相同功能的正确方法是什么。 最佳答案 正确的方法是继续使用旧的导入语法。新的导入语法仅适用于ES模块,旧的导入语法适用于ES6之前的模块。两者是有区别的,故意如此。import*asfoofrom'foo'导入模块'foo'的所有属性,它不导入默认值asfoo。Fromthedesignerofthefeature:导出默认声明总是声明一个名为default的导出成员,并且总是作为对exp

node.js - 是否可以在同一个 Typescript 项目中混合 AMD 和 CommonJS 模块

我正在尝试使用Typescript将Durandal与node.js服务器集成,以便在服务器端和客户端定义模块。我遇到的问题是,Durandal强烈依赖RequireJS和AMD定义模块的风格,我不想在服务器端引入,而且由于它使用RequireJS,我没有任何机会运行CommonJS客户端上的-ish模块(node.js的默认值)。棺材上的最后一个钉子是,我发现无法定义哪些文件应编译为AMD模块,哪些文件应由tsc编译为CommonJS-这似乎是一个最简单的解决方案。我不认为将客户端部分和服务器部分分开是一种选择,因为很多代码对于这两个部分都是通用的。所以,我的问题有三个:有没有办法在

node.js - 从多个 TypeScript 类创建单个 CommonJS 模块

我正在尝试找出将我的应用程序拆分为几个可供其他应用程序使用的CommonJS模块的最佳方法。我有5个TS类,我想将它们捆绑为一个CommonJS模块。然后我打算将此模块发布到私有(private)NPM存储库,以便其他应用程序可以使用它。理想情况下,我想将相关的*.d.ts定义文件打包。最好的方法是什么?我正在使用外部TS模块,但这些模块会为每个TS类生成一个单独的CommonJS模块。 最佳答案 据我所知,typescript还不支持组合外部模块。来自他们在codeplex上的wiki:TypeScripthasaone-to-o

javascript - 如何在浏览器中 'require' CommonJS 模块?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题吗?更新问题,以便editingthispost提供事实和引用来回答它.关闭2年前。Improvethisquestion在浏览器中加载CommonJS模块作为客户端JavaScript代码的最佳方式是什么?CommonJS模块将它们的功能放在module.exports命名空间中,并且通常使用require(pathToModule)包含在服务器端脚本中。在客户端加载它们不能以相同的方式工作(需要替换require,需要考虑异步等)。我找到了模块加载器和其他解决方案:Browserify、RequireJS