Questions tagged «commonjs»

CommonJS是一个项目,旨在将JavaScript移出浏览器。

5
CommonJS,AMD和RequireJS之间的关系?
即使阅读了很多,我仍然对CommonJS,AMD和RequireJS感到非常困惑。 我知道CommonJS(以前称为ServerJS)是用于在浏览器之外使用该语言时定义一些JavaScript规范(即模块)的组。CommonJS模块规范具有一些实现,例如Node.js或RingoJS,对吗? CommonJS,异步模块定义(AMD)和RequireJS之间是什么关系? 是RequireJS的的实现CommonJS的模块定义?如果是,那么AMD是什么?


5
CommonJs模块系统中“ module.exports”和“ exports”之间的区别
在此页面(http://docs.nodejitsu.com/articles/getting-started/what-is-require)上,声明“如果要将导出对象设置为函数或新对象,则必须使用module.exports对象。” 我的问题是为什么。 // right module.exports = function () { console.log("hello world") } // wrong exports = function () { console.log("hello world") } 我console.logged结果(result=require(example.js))和第[Function]一个是{}。 您能否解释其背后的原因?我在这里阅读了这篇文章:Node.js中的module.exports与export。它很有帮助,但没有说明采用这种方式进行设计的原因。如果直接返回出口参考书会不会有问题?

4
Babel 6更改默认导出方式
以前,babel将添加这行module.exports = exports["default"]。它不再这样做。这意味着在我不能做之前: var foo = require('./foo'); // use foo 现在,我必须这样做: var foo = require('./foo').default; // use foo 没什么大不了的(我猜这就是应该一直以来的样子)。问题是我有很多代码取决于事情的工作方式(我可以将大多数代码转换为ES6导入,但不是全部)。任何人都可以给我有关如何使旧方法工作的提示,而不必经历我的项目并解决此问题的方法(甚至是一些有关如何编写codemod来做到这一点的说明也很巧妙)。 谢谢! 例: 输入: const foo = {} export default foo 使用Babel 5输出 "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var foo = {}; exports["default"] = foo; module.exports = exports["default"]; 使用Babel …

20
如何检查脚本是否在Node.js下运行?
我有一个Node.js脚本所需的脚本,我想保持JavaScript引擎独立。 例如,我只想exports.x = y;在Node.js下运行。如何执行此测试? 发布此问题时,我不知道Node.js模块功能是否基于CommonJS。 对于我给出的具体示例,一个更准确的问题是: 脚本如何判断是否已将其作为CommonJS模块使用?

14
字段“浏览器”不包含有效的别名配置
我已经开始使用webpack2(确切地说是v2.3.2),并且在重新创建配置后,我一直遇到一个我似乎无法解决的问题(对丑陋的转储表示抱歉): ERROR in ./src/main.js Module not found: Error: Can't resolve 'components/DoISuportIt' in '[absolute path to my repo]/src' resolve 'components/DoISuportIt' in '[absolute path to my repo]/src' Parsed request is a module using description file: [absolute path to my repo]/package.json (relative path: ./src) Field 'browser' doesn't contain a valid alias configuration aliased …

5
Node.js-使用module.exports作为构造函数
根据Node.js手册: 如果您希望模块导出的根是一个函数(例如构造函数),或者想一次导出一个完整的对象而不是一次构建一个对象,则将其分配给module.exports而不是export 。 给出的示例是: // file: square.js module.exports = function(width) { return { area: function() { return width * width; } }; } 并像这样使用: var square = require('./square.js'); var mySquare = square(2); console.log('The area of my square is ' + mySquare.area()); 我的问题:为什么示例不使用正方形作为对象?以下内容是否有效,是否会使示例更加“面向对象”? var Square = require('./square.js'); var mySquare = new …

7
将“ Vanilla” Javascript库加载到Node.js中
我希望在Node.js服务器中使用某些具有某些功能的第三方Javascript库。(特别是我想使用找到的QuadTree javascript库。)但是这些库只是简单的.js文件,而不是“ Node.js库”。 因此,这些库不遵循exports.var_nameNode.js对其模块期望的语法。据我了解,这意味着当您这样做时,module = require('module_name');或者module = require('./path/to/file.js');最终将得到一个没有公共可访问功能的模块,等等。 然后我的问题是“我如何将一个任意的javascript文件加载到Node.js中,这样我就可以利用其功能而不必重写它就可以了exports?” 我对Node.js还是很陌生,所以请让我知道我对它的工作方式是否有明显的了解。 编辑:进行了更多的研究,现在我看到Node.js使用的模块加载模式实际上是最近开发的用于加载称为CommonJS的 Javascript库的标准的一部分。它在Node.js的模块文档页面上说得很对,但是直到现在我都没想到。 我的问题的答案可能最终是“等到您的库的作者开始写CommonJS接口或自己做的那样做。”

4
typescript中的module.exports
有人知道如何做一个module.exports吗? 我尝试了一些不同的方法以 export class Greeter {} 将编译为 exports.Greeter = Greeter; 但是我真正想要的是: exports = Greeter; 这样我就可以这样使用它: import { Greeter } from "greeter"; const greeter = new Greeter(); 并不是 import { Greeter } from "greeter"; const greeter = new Greeter.Greeter(); 使用Typescript可以吗?

7
如何使用RequireJS / AMD处理循环依赖关系?
在我的系统中,我在浏览器中加载了许多“类”,每个类在开发过程中都是一个单独的文件,并串联在一起进行生产。加载它们时,它们在全局对象(这里)上初始化一个属性G,如以下示例所示: var G = {}; G.Employee = function(name) { this.name = name; this.company = new G.Company(name + "'s own company"); }; G.Company = function(name) { this.name = name; this.employees = []; }; G.Company.prototype.addEmployee = function(name) { var employee = new G.Employee(name); this.employees.push(employee); employee.company = this; }; var john = new …

1
什么是CommonJS,我为什么要关心它如何帮助编写.js应用程序?[关闭]
从目前的情况来看,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我正在学习JS,并且更有经验的人提到他们使用CommonJS来处理保持JS代码井井有条的情况(因为没有“模块”功能)。 我查看了Quora,但它解释了该小组及其目标,而不是我怎么使用它。

2
RequireJS:如何定义包含单个“类”的模块?
我有许多JavaScript“类”,每个类都在其自己的JavaScript文件中实现。为了进行开发,这些文件是分别加载的,对于生产来说,它们是连接在一起的,但是在两种情况下,我都必须手动定义加载顺序,如果B使用A,请确保B紧随A之后。我计划使用RequireJS作为实现CommonJS Modules / AsynchronousDefinition为我自动解决此问题。 有没有比定义每个导出一个类的模块更好的方法呢?如果不是,您如何命名模块导出的内容?如下例所示,模块“ employee”导出类“ Employee”,对我来说还不够干。 define("employee", ["exports"], function(exports) { exports.Employee = function(first, last) { this.first = first; this.last = last; }; }); define("main", ["employee"], function (employee) { var john = new employee.Employee("John", "Smith"); });

11
Angular2代码中的TypeScript错误:找不到名称“模块”
我定义了以下Angular2组件: import {Component} from 'angular2/core'; @Component({ selector: 'my-app', moduleId: module.id, templateUrl: './app.component.html' }) export class AppComponent { } 当我尝试对此进行编译时,在第5行出现以下错误: src/app/app.component.ts(5,13): error TS2304: Cannot find name 'module'. 我相信module.id指的是CommonJSmodule变量(请参阅此处)。我在tsconfig.json中指定了CommonJS模块系统: { "compilerOptions": { "target": "es5", "module": "commonjs", "declaration": false, "removeComments": true, "noLib": false, "emitDecoratorMetadata": true, "experimentalDecorators": true, "sourceMap": true, "pretty": true, "allowUnreachableCode": false, …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.