Tag: browserify

在NodeJS中运行browserify-ed应用程序

这可能听起来有些不正常,但我想调整一个非常大的JavaScript代码库的一部分,以便它可以在NodeJS上运行。 代码是用CommonJS风格编写的,使用了一个使用deamdify和deamdify构build过程。 我没有设置任何东西,我只是熟悉AMD和CommonJS模式。 我想这样做是为了将一些代码转换为服务器端的API,但是仍然需要能够在浏览器中运行。 起初,我以为我可以简单地使用库,而不运行browserify,但我碰到这样的错误: ReferenceError:define没有定义 因为有些库是这样写的: /*global define*/ define([ './defaultValue' ], function( defaultValue) { "use strict"; 所以它看起来像我需要运行deamdify ,这是一个deamdify转换…因此,我需要运行browserify? 然而,其中一个缺点似乎是,它生成了一个单一的Javascript文件(当然),然后全部parsing,并失败,因为它包含对不存在的浏览器对象( document.location )的引用。 我希望只是不使用引用浏览器对象的代码位。 所以我的问题: 有没有关于如何进行的指导? 任何教程? 我在Google上找不到太多东西,但我可能会用错的。 是否有一个NodeJS等效于Browserify? 这似乎有点奇怪,没有必要build立一个单一的Javascript文件,然后运行服务器端。 任何指导,build议等非常受欢迎。

使用节点,mongodb和watchify时未findKerberos

我在添加mongodb到快速应用程序时遇到问题。 npm install mongodb给出了这个结果: > kerberos@0.0.12 install /Users/michael/Documents/heroku/node_viz/app/node_modules/mongodb/node_modules/mongodb-core/node_modules/kerberos > (node-gyp rebuild 2> builderror.log) || (exit 0) CXX(target) Release/obj.target/kerberos/lib/kerberos.o CXX(target) Release/obj.target/kerberos/lib/worker.o CC(target) Release/obj.target/kerberos/lib/kerberosgss.o CC(target) Release/obj.target/kerberos/lib/base64.o CXX(target) Release/obj.target/kerberos/lib/kerberos_context.o SOLINK_MODULE(target) Release/kerberos.node mongodb@2.0.42 node_modules/mongodb ├── readable-stream@1.0.31 (inherits@2.0.1, isarray@0.0.1, string_decoder@0.10.31, core-util-is@1.0.1) ├── es6-promise@2.1.1 └── mongodb-core@1.2.10 (bson@0.4.11, kerberos@0.0.12) 如果我尝试使用var mongodb = require("mongodb"); 并使用watchify把所有东西放在一起,然后我得到一系列重复的消息: Error: Cannot find module '../build/Release/kerberos' from '/Users/michael/Documents/heroku/node_viz/app/node_modules/mongodb/node_modules/mongodb-core/node_modules/kerberos/lib' Error: […]

Browserify + NodeJS:不工作

我是Node和Browserify的新手。 Rightnow我努力奋斗,无法让我的browserify代码运行。 请在我的文件下面find。 问题是,当我直接打开index.html文件到浏览器,然后,它按预期工作,并打印 – “比萨是非常美味”。 但是,当我在节点app.js中运行app.js 并在浏览器中打开URL(localhost:8080),而不是在浏览器控制台中显示任何内容。 另外,当我通过浏览器的“查看源代码”选项查看URL的源代码时,文件“./bundle.js”是空白的我无法理解为什么*)幕后会发生什么*)为什么浏览器控制台是空白*)为什么“bundler.js”文件是空的,以防节点服务。 谢谢 index.js // require the core node events module var EventEmitter = require('events').EventEmitter; //create a new event emitter var emitter = new EventEmitter; // set up a listener for the event emitter.on('pizza', function(message){ console.log(message); }); // emit an event emitter.emit('pizza', 'pizza is extremely yummy'); app.js var […]

如何在不提及文件path的情况下需要一个模块

这是一个示例文件夹结构 folder1 –lib —-app.js folder 2 –www —-Application.js 文件夹2中的Application.js文件需要以下面的方式从文件夹1获取app.js文件var app = require('../../folder1/lib/app')然后浏览Application.js文件。 我想要的是需要app.js进入Application.js,而不必提及path.ie var app = require('app')并且不改变文件夹结构,但是在被浏览时它将映射实际文件即folder1 /lib/app.js用于require('app')。 编辑 我想在folder1中创build一个文件,将负责浏览在folder2中的代码。 例如:$ folder2> node ../folder1/build.js www / Application.js将输出一个browserified文件映射require('app')到app1中的app.js文件夹1

javascript节点模块和纯脚本引用如何在浏览器中共存?

当采用模块化JavaScript方法进行开发时,使用Node.JS + npm和browserify捆绑到浏览器,如何处理这种情况,您可能需要使用不是以npm分发的JavaScript库? 最终,这些库甚至不能兼容模块化(amd / commonJs),因为它们不以模块化方式暴露任何东西。 其中一些存在于鲍尔,我明白,对于这些情况下,有资源,如browserify转换debowerify,但如果预期的图书馆本身不像一个模块行为,这将是没有任何帮助。 所以,我也想弄清楚的是:一旦你已经通过node.js + npm模块走了模块化JavaScript的path,是否达不到模块兼容的任何库的使用? 让我举一个具体的例子: 我有一个应用程序(npm包装淘汰赛)的main.js入口点,代码如下: var ko = require('knockout'); 我知道,当这个kovariables通过browserify到达浏览器时,它并没有绑定到全局范围,而是具有自己的范围,基本上包含了由npm加载的敲除文件/模块中定义的所有内容。 然后我有一个不是节点模块的第三方库,通过使用knockout来实现dom操作。 我将不得不提供第三方库的前提条件,作为一个额外的明确的<script>标记,在我的html文件中引用knockout,这样就把它钩到了全局(窗口)范围。 然后我会在两个地方淘汰赛,但是彼此孤立。 例如,我的main.js中的一个ko.applyBindings对于依赖于全局范围的挖空的另一个库是未知的。 如何(如果可能的话)我的模块化JavaScript实现处理这些双方共同的dom操作? 或者对于这种情况,它是一个互斥的编程模式,必须被采用(所有模块或所有非模块)?

用纯npm脚本创buildvendor.js包

我正在尝试使用现代方法来构build不使用Grunt或Gulp的JavaScript应用程序。 我正在使用package.json的scripts关键字来创build我的编译工具。 它工作的很好,但我遇到了一个挑战。 有没有一种很好的方法来创build单独的vendor.js和app.js包,而不必在vendor.js命令中明确地指定每个依赖项(或者将vendor.js列表命令传递给browserify命令)? 比以下更好的东西: "dependencies": { "react": "latest", "react-dom": "latest", "redux": "latest", "d3": "latest" }, "devDependencies": { "browserify": "latest" }, "scripts": { "vendor": "browserify -r react -r react-dom -r redux -r d3 > vendor.js", "app": "browserify -x react -x react-dom -x redux -x d3 ./app/main.js > app.js" } 最好是,我会回收存储在dependencies关键字中的信息。 显然,我不希望捆绑devDependencies或依赖不使用在我的代码(即使后者可以通过良好的维护要求来防止)。

使用Grunt-babelify-browserify而不导入节点模块

我正在用webdriver.io编写自动化testing。 我正在使用grunt / babelify / browserify,以便我可以在ES6中编写testing。 我在脚本中需要一些节点模块。 我希望能够不将这些节点文件编译到我的分发脚本中,而是直接打印出require语句,因为我仍在运行脚本服务器端。 换句话说,是否有一种方法可以通过browserify“按原样”来代码? 这里是我要求的模块: required libraries var webdriverio = require('webdriverio'); var chai = require("chai"); chai.config.includeStack = true; // prints out full call stack var expect = chai.expect; var chaiAsPromised = require("chai-as-promised"); chai.use(chaiAsPromised); 这是我的咕噜文件: module.exports = function (grunt) { grunt.initConfig({ browserify: { dist: { options: { transform: [ ["babelify", { […]

使用Browserify加载Node.js模块

我正在使用Browserify( http://browserify.org/ )在JavaScript中加载模块。 我不断收到以下错误: 我不知道为什么会这样。 我在名为“wordnet-develop”的目录中有一个“package.json”文件,它位于与JavaScript文件相同的位置。 本来我觉得可能有path问题。 但是,我做了同样的事情,但有一个test.js文件,它的工作。 所以,我认为使用package.json可能有问题。 package.json文件的开头: 我的JavaScript文件的开始: 包含javascript文件的目录: 包含package.json文件的目录(见上面的“wordnet-develop”): UPDATE 我replace了var WordNet = require('./wordnet-develop/node-wordnet'); 用var WordNet = require('./wordnet-develop/lib/wordnet'); 正如klugjo所build议的那样。 它可能已经工作,但现在我得到一个新的错误消息: 这再次发生,但'asynchronous'模块丢失。 我检查了lib / wordnet,它包含了蓝鸟和asynchronous的要求,所以这可能是错误的来源。 但是,我现在不知道该怎么做。 我是新来的node.js和模块,所以我不熟悉的解决scheme。 我应该parsing所有的代码,并在网上find所有必需的模块? 他们不应该被包括在模块中吗? 是我试图在香草JavaScript中使用node.js模块的问题?

从密码导出节点密码密钥会导致与浏览器不同的结果

我试图在浏览器中重新创buildSymfony的MessageDigestPasswordEncoder 。 我有一些与browserify和encryption模块的问题。 我尝试用JavaScript生成哈希,但没有节点。 这是我的代码与节点: var crypto = require('crypto'); var encodePassword = function (raw, salt) { var salted = raw + '{'+salt+'}', hash = crypto.createHash('sha512').update(salted, 'utf-8'); for (var i = 1; i < 5000 ; i++) { hash = crypto.createHash('sha512').update(hash.digest('binary')+salted); } return hash.digest('base64'); }; console.log(encodePassword("admin", "81b6zjhf64w8kogsgkgw804ss8gc0w0")); 它返回: qmNs3bqtTeoS4uRq2Chh1fUNPu+lzn3KR7mWFHAq5NEPrK0QZ9XkLDUniZ39uosnozNrPL7mByzUZ/A19Io4sQ== 现在,考虑到我需要实现这个没有节点,我用了browserify browserify index.js > crypto.js 我创build了一个testing页面,其中包括: <script […]

如何从browserify获取构build错误消息

我们正在用browserify来使用Gulp,并且在诊断错误时遇到问题。 Browserify运行,报告没有问题,但是,许多应该被连接到我的输出js文件的脚本丢失。 我们发现,如果我们缺less一个npm包(如果我们需要运行npm install),或者npm包有什么问题,就会发生这种情况。 过去几次发生的事情,我们很幸运,因为我们刚刚加了一包,所以我们立即知道在哪里看。 现在,我有一个开发失败的机器(失败,我的意思是我的输出.js文件的大小的十分之一应该是一个错过许多js文件,但没有错误报告)。 我不确定哪个软件包没有通过,我没有得到任何诊断信息。 我尝试挂钩.on('错误')如下所述: https ://stackoverflow.com/a/24817446/67038,但没有额外的输出。 Visual Studio Task Runner Explorer的输出如下所示: [18:17:21] Using gulpfile C:\git\…\Gulpfile.js [18:17:21] Starting 'browserify:local'… [18:17:24] Finished 'browserify:local' after 2.63 s [18:17:24] Starting 'build:local'… [18:17:24] Finished 'build:local' after 31 ms Process terminated with code 0. 我能做些什么来从Browserify获得更多信息? 有什么logging可以打开吗?