我正在考虑对我的一些项目采用browserify ,但是要确保其他人不必使用browserify,如果他们想使用(捆绑)的代码。 做到这一点的显而易见的方式是通过module.exports以及通过window.来显示模块导出window. 全球。 但是,我宁愿不污染那些require脚本的全局名称空间。 是否有可能检测脚本是否require d? 如果是的话,我可以做一些事情: var mymodule = (function() { … })(); if (isRequired()) { module.exports = mymodule; } else { window.mymodule = mymodule; } 请注意,无论如何,这将被捆绑预先,所以var mymodule将不会暴露全局。 此外,目前我正在使用揭示模块模式 ,但愿意切换到更适合于browserify的东西。 什么是最好的方式来做一个模块都require能够和<script src= able? 在这两种情况下最好只是揭露全球?
有很多类似的问题,包括堆栈溢出的答案,但没有一个为我工作,所以在这里,我问你们。 我感谢大家的时间。 我最近开始使用浏览器的gulp,这很好。 然后,我尝试使用browserify来使用前端:Backbone和Bootstrap3。 事情似乎工作,直到我试图要求与Bootstrap自带的js文件。 我在我的铬工具中出现错误,指出:jQuery是未定义的。 我试图把它冲进去,但是我很困惑。 我正在使用jQuery 2.1.1,所以我不应该需要填充jQuery,但它现在存在于垫片,因为我绝望,试图一切。 这是我的package.json和我的main.js文件: ————–的package.json —————— { "name": "gulp-backbone", "version": "0.0.0", "description": "Gulp Backbone Bootstrap", "main": "main.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "Rob Luton", "license": "ISC", "devDependencies": { "jquery": "^2.1.1", "backbone": "^1.1.2", "browserify": "^4.2.1", "gulp": "^3.8.6", "vinyl-source-stream": "^0.1.1", "gulp-sass": "^0.7.2", "gulp-connect": […]
我正在使用browserify-shim,我想使用一个通用的jQuery插件。 我已经多次浏览过Browserify-shim文档,我似乎无法理解正在发生的事情和/或它如何知道在哪里放置插件,附加到jQuery对象等。下面是我的package.json文件的样子: "browser": { "jquery": "./src/js/vendor/jquery.js", "caret": "./src/js/vendor/jquery.caret.js" }, "browserify-shim": { "caret": { "depends": ["jquery:$"] } } 根据browserify-shim文档中给出的例子,我不想指定一个输出,因为这个插件(以及大多数,如果不是全部的话,jQuery插件)将自己附加到jQuery对象上。 除非我在上面做错了,我不明白为什么它不起作用(我得到一个错误,告诉我函数是未定义的),当我使用它。 见下文: $('#contenteditable').caret(5); // Uncaught TypeError: undefined is not a function 所以我的问题是,如何用browserify和browserify-shimconfiguration一个通用的jQuery插件(附加到jQuery对象)?
我试图慢慢地将Browserify引入到我的网站,但我不想重写所有的js,我不想重复实例的jQuery和其他库与我的Browserify构build捆绑。 如果我build立我的模块列表jquery作为外部依赖,然后如何将它指向我的全局jQuery实例? 另外的目标是消除全球的mylib(下面的例子),所以我不想在我的模块中使用它。 这就是我想要做的(psudo-code)。 这将在我的网站的回购 – 而不是模块的。 该模块将与Bower一起安装: var mylibs.jQuery = $.noConflict(); // global used by lots of existing code module.exports = { jquery: mylibs.jQuery // can be imported by my module as require('jquery') }; 类似的东西就是我想要实现的。 这可能吗?
我正在使用最新版本的react-router (版本^ 3.0.0)。 我使用ES5编写了以下路由: routes.js : var React = require("react"); var Router = require("react-router"); var AuthorPage = require('./components/authors/authorPage') var App = require('./components/app') var Route = Router.Route; var routes = ( <Route path="/" component={App}> <Route path="authors" component={AuthorPage}/> </Route> ); module.exports = routes; 在另一个名为main.js JS文件中,我执行以下调用: main.js : var React= require("react"); var ReactDom = require("react-dom"); var Router = […]
我正在尝试使用.jsx和.jsx将我的.jsx文件转换成.js文件。 var gulp = require('gulp'); var browserify = require('browserify'); var reactify = require('reactify'); gulp.task('js', function () { browserify('public/javascripts/src/app.jsx') .transform(reactify) .bundle() .pipe(gulp.dest('public/javascripts/dist')) }); “` 以上将Arguments to path.resolve must be strings 。 我设法通过使用vinyl-source-stream解决它 var source = require('vinyl-source-stream'); … .bundle() .source('app.js') … 为什么这个工作? 我对nodejs和gulp相当陌生。 在阅读了项目的README和源代码后,我仍然感到困惑。 任何帮助?
我是nodejs和browserify的新手。 我从这个链接开始。 我有包含这个代码的文件main.js var unique = require('uniq'); var data = [1, 2, 2, 3, 4, 5, 5, 5, 6]; this.LogData =function(){ console.log(unique(data)); }; 现在我用npm安装uniq模块: npm install uniq 然后,我使用browserify命令将所有从main.js开始的必需模块捆绑到一个名为bundle.js的文件中: browserify main.js -o bundle.js 生成的文件如下所示: (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);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.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 unique […]
var gulp = require('gulp'); var $ = require('gulp-load-plugins')(); var source = require('vinyl-source-stream'); var browserify = require('browserify'); gulp.task('scripts', function () { return browserify('./src/app.js').bundle() .pipe(source('app.js')) .pipe(gulp.dest('./build')) // OK. app.js is saved. .pipe($.rename('app.min.js')) .pipe($.streamify($.uglify()) .pipe(gulp.dest('./build')); // Fail. app.min.js is not saved. }); 目前不支持file.contents是stream时pipe道到多个目标。 什么是这个问题的解决方法?
刚刚开始使用browserify ,但我找不到文档如何让它溢出缩小输出。 所以我看起来像这样: $> browserify main.js > bundle.js –minified
我通过apt-get install和所有依赖项安装了节点js和npm,然后安装了browserify npm install browserify -g 它贯穿整个过程,看起来好像安装正确,但是当我尝试在本演练中做一个简单的包时 我得到的错误: / usr / bin / env:node:没有这样的文件或目录