CommonJS是什么?我们主流的前端框架vue/react都是基于node来构建的。在NodeJS出现之前,由于没有特别复杂的页面,前端是没有模块化这个概念的,而NodeJS诞生之后,它使用CommonJS的模块化规范。从此,js模块化开始快速发展。因此,我们知道,commonjs就是一个模块化的规范。目前流行的js模块化规范有CommonJS、AMD、CMD、UMD以及ES6的模块系统。至于什么是模块化?你能看到这里说明你已经工作有点时间了,这个不需要太多的解释,自行领悟吧。小编文采不行,不知道怎么解释,简单来说,一般来说,一个文件就是一个模块,这个文件内的作用域唯一,可以向外暴露变量,函
以前我可以这样做:importfoo=require('foo');但现在TypeScript(1.5)支持es6模块语法,在ES6模块语法中实现相同功能的正确方法是什么。 最佳答案 正确的方法是继续使用旧的导入语法。新的导入语法仅适用于ES模块,旧的导入语法适用于ES6之前的模块。两者是有区别的,故意如此。import*asfoofrom'foo'导入模块'foo'的所有属性,它不导入默认值asfoo。Fromthedesignerofthefeature:导出默认声明总是声明一个名为default的导出成员,并且总是作为对exp
我正在尝试使用Typescript将Durandal与node.js服务器集成,以便在服务器端和客户端定义模块。我遇到的问题是,Durandal强烈依赖RequireJS和AMD定义模块的风格,我不想在服务器端引入,而且由于它使用RequireJS,我没有任何机会运行CommonJS客户端上的-ish模块(node.js的默认值)。棺材上的最后一个钉子是,我发现无法定义哪些文件应编译为AMD模块,哪些文件应由tsc编译为CommonJS-这似乎是一个最简单的解决方案。我不认为将客户端部分和服务器部分分开是一种选择,因为很多代码对于这两个部分都是通用的。所以,我的问题有三个:有没有办法在
我正在尝试找出将我的应用程序拆分为几个可供其他应用程序使用的CommonJS模块的最佳方法。我有5个TS类,我想将它们捆绑为一个CommonJS模块。然后我打算将此模块发布到私有(private)NPM存储库,以便其他应用程序可以使用它。理想情况下,我想将相关的*.d.ts定义文件打包。最好的方法是什么?我正在使用外部TS模块,但这些模块会为每个TS类生成一个单独的CommonJS模块。 最佳答案 据我所知,typescript还不支持组合外部模块。来自他们在codeplex上的wiki:TypeScripthasaone-to-o
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题吗?更新问题,以便editingthispost提供事实和引用来回答它.关闭2年前。Improvethisquestion在浏览器中加载CommonJS模块作为客户端JavaScript代码的最佳方式是什么?CommonJS模块将它们的功能放在module.exports命名空间中,并且通常使用require(pathToModule)包含在服务器端脚本中。在客户端加载它们不能以相同的方式工作(需要替换require,需要考虑异步等)。我找到了模块加载器和其他解决方案:Browserify、RequireJS
在此页面(http://docs.nodejitsu.com/articles/getting-started/what-is-require)上,它声明“如果要将导出对象设置为函数或新对象,则必须使用module.exports对象。”我的问题是为什么。//rightmodule.exports=function(){console.log("helloworld")}//wrongexports=function(){console.log("helloworld")}我console.logged结果(result=require(example.js))第一个是[Functio
我看到有文章解释了commonJs和AMD之间的区别,但我无法将commonJS和SystemJS联系起来。这两者都用于AngularJS2开发。既然这两个都是模块加载器,那为什么我们都需要呢? 最佳答案 CommonJS是一种规范,而SystemJS是开源Javascript,一种遵循CommonJS规范的加载器。CommonJS规范定义了JavaScript中的模块是如何工作的,它们如何被暴露以及如何被调用。SystemJS是一个遵循CommonJS规范和其他规范的加载器。下面是一个简单的20分钟youtube视频教程,它解释了
我对CommonJS、AMD和RequireJS仍然很困惑,即使阅读了很多。我知道CommonJS(以前称为ServerJS)是一个用于定义一些JavaScript规范(即模块)的组,当语言在外部使用时浏览器。CommonJS模块规范有一些实现,例如Node.js或RingoJS,对吧?What'stherelationbetweenCommonJS,AsynchronousModuleDefinition(AMD)andRequireJS?IsRequireJSanimplementationoftheCommonJSmoduledefinition?Ifyes,what'sAMDt
我对CommonJS、AMD和RequireJS仍然很困惑,即使阅读了很多。我知道CommonJS(以前称为ServerJS)是一个用于定义一些JavaScript规范(即模块)的组,当语言在外部使用时浏览器。CommonJS模块规范有一些实现,例如Node.js或RingoJS,对吧?What'stherelationbetweenCommonJS,AsynchronousModuleDefinition(AMD)andRequireJS?IsRequireJSanimplementationoftheCommonJSmoduledefinition?Ifyes,what'sAMDt
写过前端代码大概率听说过amdcmdumdcommonjsesm这些名词,想当初我第一次看到这些的时候,人都麻了,都是些啥啊.后来我知道了,这些都是js的模块规范.amd-浏览器中的js模块化解决方案AMD全称是AsyncModuleDefinition异步模块定义RequireJs是AMD模块规范的一个具体实现.AMD中定义一个计算器模块calculator,这个模块依赖另一个名为math的模块calculator.jsdefine('calculator',['math'],function(math){return{add:function(left,right){returnmath.