Tag: commonjs

使模块可通过AMD,凉亭,简单的浏览器JS和节点

我刚刚写了一个模块( https://github.com/mercmobily/simpleDeclare ),并通过NPM作为Node模块提供。 它遵循CommonJS。 我想使它也可以使用Bower的人,和类似AMD的装载器,以及直接使用浏览器。 目前的模式是什么? 或者,甚至有可能? 我记得看过几个模块,但是找不到它们,只能find过时的和不太明确的信息(但是我怀疑是在寻找错误的东西)。

CommonJS singelton模块中的循环依赖

我想知道是否和如何以下是可能的: CommonJS环境,用于节点和/或浏览器的模块(带有Browserify )。 两个(或更多)模块,每个返回一个singelton需要在应用程序的不同部分/模块中可用。 他们也应该能够互相呼叫,所以有一个循环依赖的情况。 我知道这是可能的某种dependency injection,但我想要避免一个代码结构,我需要调用类似this.dependencies.ModuleName当从其他的一个Singeltons调用方法。 我希望能够直接调用由require-statements返回的对象的方法。 我意识到这是不可能的直接由两个CommonJS模块出口instanciated singelton对象(因为循环依赖)。 所以我希望可以使用一个共同的代码来做一些魔术。 就像是: var Magic = require('./magic'); module.exports = Magic.createSingelton({ // … }); Browserify由于循环依赖性而失败的示例: (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){ var a = require('./class-a'), b = require('./class-b'); a.printSomething(); b.printSomething(); },{"./class-a":2,"./class-b":3}],2:[function(require,module,exports){ var […]

ES6模块/节点模块重复要求还是将其作为parameter passing?

我有以下疑问ES6模块,并通过扩展也与节点commonjs模块样式。 主要的问题是如何更好地分离?,在每个需要依赖的文件中重复导入/ require语句,或者需要/ imports的主文件,然后将这些值作为parameter passing。 很难用简单的语言来解释,只是一个简单的例子: 脚本,task.js var gulp = require('gulp'), options = require('../options'), babelify = require('babelify'), browserify = require('browserify'), source = require('vinyl-source-stream'), del = require('del'), errorParser = require('../error-parser'); module.exports = function(gp) { /*gulp task*/ } 和 gulpfile.js var gulp = require('gulp'), options = require('./gulp/options'), errorParser = require('./gulp/error-parser'), del = require('del'), gp = require('gulp-load-plugins')(); gt.scriptsTask(gp); […]

eonasdan-bootstrap-datetimepicker v4.17.37小部件不使用common.js加载

道歉,如果这似乎我失去了一些非常明显的东西。 (我正在使用npm和骨干构build的应用程序)我正在尝试使用common.js加载我的datetimepicker模块 datetimepicker = require('eonasdan-bootstrap-datetimepicker') 当我去我的应用程序中添加一个datetimepicker时,我得到: Uncaught TypeError: $(…).datetimepicker is not a function 当我看着我的debugging器,我可以看到模块没有被加载。 它已经安装在我的节点模块文件夹中。 我只是想知道任何人可以发现任何明显的我可能会失踪。 我已经导入时刻和jQuery的列表依赖项。 它们是在datetimepicker之前导入/加载的。 任何帮助不胜感激。

不能要求Electron中的渲染器自定义模块

我正在尝试制作一些可以在我的项目中使用的类,但是我在导入正在导入的模块时遇到了一些麻烦。 我的文件结构如下所示: ├╴main.js └╴src/ ├╴html/ │ └╴index.html ├╴css/ │ └╴index.css └╴js/ ├╴index.js └╴participant.js 所有的index.*文件是相互关联的,因此具有相同的名称。 讨论的问题是index.js , index.html呈现器和participant.js 这是我得到的代码: // index.js const {Participant} = require("./participant"); const addNodeBtn = document.getElementById('add-node'); addNodeBtn.addEventListener('click', () => { // this is really just filler code to see if everything works let p = new Participant("Jason"); alert(`His name was ${p.name}`); }); 和 […]

解决Webpack中的本地Node模块依赖关系?

我正在使用Webpack来连接一个与Discogs API连接的库,名为disconnect 。 所有捆绑很好,直到我开始使用断开连接库的几个select方法。 事实certificate,该库使用的一些模块是本地Node模块,并且该库不正式支持客户端JS环境。 但是 ,我有一个预感,它没有做任何需要Node环境的东西; 而且我希望在放弃之前尽可能地在客户端获得。 阻塞我的实验的依赖之一是一个名为querystring的本地Node模块(据我所知,与环境无关)。 这个模块需要断开连接 ,但是没有在断开连接的package.json中列出,因为它希望在查询string本地可用的节点环境中运行。 我想要做的是有Webpack绑定节点的本地查询string模块,使我的依赖关系断开可以继续使用它。 对于那些想要陷入困境的人,我在浏览器中遇到的具体错误是: Uncaught TypeError:queryString.escape不是Object.getEvent(app.js:14)上的Object.collection.getReleases(collection.js:87)上Object.util.escape(util.js:38)处的函数。 (app.js:47)at webpack_require (app.js:20)at app.js:40 at app.js:43 我的package.json : { "name": "some-app", "version": "0.0.1", "description": "", "main": "src/js/app.js", "scripts": { "dev": "npm run clean && npm run build:html && npm run build:webpack-development", "pro": "npm run clean && npm run build:html && […]

使用CouchDB和Node.js库

CouchDB使用javascript来validation,查询,做map-reduce等等。 我想知道有没有什么办法可以在这些JavaScript函数中使用node.js库? 比如使用require('http')或者用npm安装的一些第三方模块。 谢谢。

CommonJS是同步的,但如果调用asynchronous函数会发生什么情况

CommonJS使用一个require()语句,它是同步的,但是如果你有一个像这样的模块: function asyncFunction() { var promise = …; return promise; } module.exports = asyncFunction(); 这里可能会出现什么样的问题? 你应该总是有同步代码返回module.exports对象? 例如,如果module.exports = {}它将始终是同步的,但在上述情况下module.exports是一个承诺,这是假设是不被认为是同步的。 如果你需要导入一个本质上是asynchronous的模块,在服务器端是否有充分的理由使用requireJS?

Angular 2 + Zone.js +常见的js模块:IF语句exception,即使在假的情况下也执行代码

我试了一下检查。 这绝对是一个exception。 我有一个Angular 2服务,加载@type定义( @type 2),然后加载commmon.js模块( visionmedia / debug )。 在common.js模块中,我有一个简单的if语句,即使条件为false并且不应该执行代码,也会触发错误。 Angular应用程序使用system.js来加载模块。 常规代码 if (false) { console.log('This code is not executed') }正常行为,没有任何反应 exception代码: if (false) { exports.humanize = require('ms'); } if (false) { exports.humanize = require('ms'); }它会触发Error: zone.js:101 GET http://localhost:8002/ms.js 404 (Not Found) 错误本身是有效的。 事实上,这个脚本是不会被发现的。 严重的错误是不应该出现在第一位。 它应该被虚假的条件阻止。 在我看来, zone.js以某种方式parsing指令,即使这种情况是错误的。 我能做些什么来避免这种情况? 我需要检查是否需要一个或另一个path取决于如果相同的脚本在服务器或前端调用。 CJS模块内部更大的图片: // Trying to […]

以下链接语句在JavaScript中意味着什么?

我发现这段代码,并且在阅读时遇到了麻烦: require('happy module') .login('storage', { id:7, type:'foo' })(a, b, function c (err) { return err }); 1)require('happymodule')是一个接受一个string参数并返回一个对象的函数。 2)使用该对象,我调用login方法,并传递两个参数,一个string和一个对象 3)它返回一个函数,我传递三个参数(a,b,函数c(err){return err}); 它是否正确 ?