Tag: browserify

我可以在浏览器/ node.js上使用不同的库,而无需编辑package.json?

xhr库提供了在同一个API下对浏览器和node.js执行请求的方法。 为此,你必须要求另一个库, 请求 ,并编辑你的package.json来告诉browserify用xhrreplacerequest ,这比轻量级更轻,因此比缩小整个request库更合适。 我想知道是否有一种方法可以在不编辑package.json情况下达到同样的效果。 就像是: #if browserify const req = require("xhr") #else const req = require("request")

使用require.js加载browserify的boundle.js

我们有与require.js一起工作的框架,我们正在加载如下的包 define(["converter/service/utils"], function (utils) { 现在我们可以使用utils文件。 现在我们有一个新的js文件,这是一个浏览和uglify像 browserify main.js | uglifyjs > bundle.js 我已经将boundle.js文件添加到我的项目(服务文件夹下),我想加载它,但它不工作… 我尝试加载它,如下所示: define(["converter/service/bundle"], function (bundle) { 但捆绑是空的(而debugging它…) 任何想法如何使用require.js加载browserfiy文件? 我知道在博客文档中我们应该加上它 <script src="bundle.js"></script> 但我们使用require.js来加载模块,我可以这样做与其他js文件…例如,如果我保存在我的项目中的这个文件 https://rawgit.com/hugeen/lebab-experiment/master/lebab.js 我可以加载require.js … 编辑: 我所做的是npm init & npm install lebab –save 创build文件main.js并把下面的代码 var lebab = require("lebab"); 并运行命令 browserify –standalone someName main.js | uglifyjs > bundle.js 它成功完成 把bundle.js文件放在converter/service文件夹下 并试图要求如下: define(["converter/service/bundle"], function […]

我试着用'temp'和'fs'模块来使用browserify,我得到的只是这个糟糕的错误

我正在尝试迁移节点项目以在浏览器中运行。 该项目(从来不知道这一刻的原因)写入临时文件,使用临时代码类似于这样的代码: var temp = require('temp'); var fs = require('fs'); temp.open('helloworld.txt', function (err, info) { if (err) { console.log('Failed to open a temp file:', err); return; } console.log('temp: ', info.path); fs.writeFile(info.path, 'Hello World!', function (err2) { if (err2) { console.log('Failed to write to a temp file:', err2); return; } }); }); 当运行browserified代码时,我得到以下错误: Uncaught TypeError:undefined不是一个函数 对于以下行: […]

仅在Gulp任务中的文件夹中的一部分文件上使用Browserify

通常在使用Browserify时,如果要合并多个文件,请运行以下内容: gulp.task('build-tests', function() { var b = browserify({ entries: ['./lib/some_specs.js', './lib/some_more_specs.js'] }); b.bundle().pipe(source('specs.js')).pipe(gulp.dest('./dist')); }) 我想用dynamic创build的已过滤文件列表来replace条目,这样,每次添加一个我想要浏览的新文件时,就不必更新数组,而是自动执行此操作。 为此,我开始使用gulp-filter从文件夹中select我想要浏览的文件: gulp.src('lib/*.js') .pipe(gulpFilter('*_specs.js')) .pipe(concat('specs.js')) ); 但是因为这返回一个asynchronousstream而不是一个数组,所以你不能使用这个入口。 然后,我想我可以将单独的文件连接成一个虚拟文件,然后将其传递给Browserify。 喜欢这个: gulp.task('build-tests', function() { var b = browserify( gulp.src('lib/*.js') .pipe(gulpFilter('*_specs.js')) .pipe(concat('specs.js')) ); b.bundle().pipe(source('specs.js')).pipe(gulp.dest('./dist')); }) 但是这会抛出一个未处理的错误事件 – 也许是因为源文件在bundle方法运行之前没有被连接起来? 那么这就导致我问,是否有人有任何类似的经验或沿着这些方面的经验? 我很新的吞噬,所以任何指针也将不胜感激。 谢谢。

如何在不同的环境中避免使用茉莉花的长相对path(../../../)?

我目前正在开发一个项目,我想在不同的环境下testing – 包括node.js和不同的浏览器,包括karma / selenium – 以避免兼容性问题。 (我想我会在浏览器中使用browserify,但是我还不熟悉它。) 我有一个嵌套的testing目录,如下所示: repo/ – project.js – project.my.module.js – spec/ — helpers/ — a.jasmine.helper.js — support/ — jasmine.json — project.my.module/ — ModuleClass.spec.js — project.MyClass.spec.js — project.OtherClass.spec.js 目前我只用jasmine-npm(对于node.js是jasmine 2.2)来testing项目。 通过testing工作目录是repo/ ,我用jasmine.js运行jasmine.js 。 jasmine.js加载jasmine.json : { "spec_dir": "spec", "spec_files": [ "**/*[sS]pec.js" ], "helpers": [ "helpers/**/*.js" ] } 现在我有两个问题在这里。 我如何通过require来避免长相对path,例如ModuleClass.spec.js文件中的require("../../project.my.module.js") ? (我宁愿使用一个简短的常量名称,就像我可以通过符号链接一样)。 […]

Bundle.js不是在命令节点之后创build的

我正尝试在browserify的帮助下创buildbundle.js,但是却发现了错误: npm WARN invalid config registry="app/main:app" npm WARN invalid config Must be a full url with 'http://' 这是我试图命中的命令 $ browserify -r ./app/main:app > static/bundle.js 这是我的文件夹结构。

dynamic使用require()

使用Browserify,这个工作: var b = require('path/file.js') 但是这个不是: var a = 'file' var b = require('path/' + a + '.js') 任何想法为什么?

Browserify生成一个*巨大的*输出文件

在node-google模块的帮助下,我编写了一个简单的节点模块来启用我的Web应用程序的“文本网页search”function,以我的观点之一呈现结果。 由于来自同一IP Google的相当less量的查询返回503错误后,我决定在客户端上使用该模块,所以限制是每个客户端,而不是每个服务器。 我确实使用browserify将节点模块转换为在客户端页面中获取的脚本。 该脚本只需要'google.js',它只是20行的JavaScript长: 'use strict'; var google = require('google'); var Google = Object.create({}); var Google.search = function(text, callback) { … }); // end of the script 我使用的命令很简单: $ browserify google-search-module.js -o app/scripts/google-search.js 问题是,bro​​wserify产生的输出比我所期望的要大得多:一个1.2 kB的模块变成了一个2.4 MB的脚本! 也许它也包括所有'谷歌'的依赖,但.. .., 问题是:这是正常的吗? 我的search页面是否需要加载一个2.4 MB的文件来searchGoogle上的文本? 我很确定我错过了什么,但不明白是什么… 🙁

无法获取libphonenumber npm包工作,fs.readFileSync不是一个函数错误

我正在尝试使用googlei18n的libphonenumber库进行电话号码validation。 我通过npm i libphonenumber使用npm包,但是当我这样做: var libphonenumber = require('libphonenumber') 我得到错误Uncaught TypeError: fs.readFileSync is not a function 即使我将browserify-fs作为dep并在libphonenumber之前libphonenumber ,我仍然会得到这个错误。 我一直在search,不知道这个错误甚至意味着,除了它是某种目录function。 libphonenumber不应该是一个脚本,而不是一个文件目录? 任何帮助将不胜感激!

沃森视觉识别运行错误

我正在尝试使用Watson视觉识别API来设置视觉识别应用程序。 为了做到这一点,我开始下载watson-developer-cloud,并将其放在我的index.html和api_request.js旁边的node_modules文件夹中。 这是我的api_request.js文件: var watson = require('./node_modules/watson-developer-cloud'); var visual_recognition = watson.visual_recognition({ username: '*********', password: '*********', version: 'v2-beta', version_date: '2015-12-02' }); visual_recognition.listClassifiers({}, function(err, response) { if (err){ console.log(err); } else { console.log(JSON.stringify(response, null, 2)); } } ); 它直接从视觉识别api文档中获取。 我在terminal运行这个文件,它提供了所需的输出,这是一个视觉识别分类器的列表。 然而,因为它有node.jsfunction,我决定使用browserify来允许它在浏览器中运行。 我在api_request.js和index.html文件的同一目录中安装了browserify,并将api_request.js中的bundle.js构build出来。 一旦index.html链接到bundle.js,我在浏览器中打开它,并没有任何与node.js函数有关的问题。 但是,当watson-developer-cloud中的文件找不到watson-developer-cloud中的另一个文件时发生错误。 具体index.js找不到v2-beta(我没有编辑watson-developer-cloud文件)。 我觉得奇怪的是,当我在terminal中运行api_request.js时,没有一个watson-developer-cloud文件有任何问题,但是一旦我使用了browserify,bundle.jslogging了index.js无法find的错误。公测。 "build": "browserify api_request.js -o bundle.js" ^这是我用来构buildbundle.js的脚本。 我能想到的唯一可能导致这个错误是browserify。 还有什么可能导致这个?