Articles of commonjs browserify

testing使用browserify别名和垫片的CommonJS模块

Browserify允许创build不直接与CommonJS兼容的别名和填充模块。 因为我想在节点CLI中运行我的testing,我可以以某种方式处理这些别名和节点中的模块? 例如,假设我将别名./my-super-module为supermodule和shimming,并将jquery插件的一些别名./vendor/jquery.plugin.js – > ./shims/jquery.plugin.shim.js为jquery.plugin 。 因此,我可以在我的模块中做到这一点: var supermodule = require('supermodule'); require('jquery.plugin'); // do something useful… module.exports = function(input) { supermodule.process(output) } 有没有什么做法,我可以在node.js / cli中testing这个模块,以便解决依赖关系?

Browserify:嵌套/有条件的需求

在下面的CommonJS / Browserify模块中,我怎样才能避免每次都导入foo和bar – 而只是在init()根据条件导入所需的数据呢? var Foo = require('foo'), Bar = require('bar'), Component = function(config) { this.type = config.type; this.init(); }; Component.prototype = { init: function() { var instance = null; switch (this.type) { case ('foo'): instance = new Foo(…); break; case ('bar'): instance = new Bar(…); break; } } };

使用browserify让nower与npm一起工作

大量的JavaScript包pipe理解决scheme都让我们感到非常高兴和诅咒,它们都有各自的优点。 由于在这里无关紧要的原因,我已经解决了我的主要解决schemenpm。 但是,在其他系统(如bower和component)上有太多好的代码可以忽略这些解决scheme。 所以,我正在设置一个环境,我可以使用browserify从npm和bower中加载软件包(我们将保存另一个问题的组件)。 到目前为止最好的方法是使用运行bower install的postinstall脚本来设置我的package.json : { … configuration … "scripts": { "postinstall": "bower install" } } 这在安装第一级依赖关系(即strait bower dependencies和strait npm dependencies)时build立了正确的目录结构: – MyMixedComponent – main.js – package.json – node_modules – npmDependency – bower_components – bowerComponent 在browserify , browserify -t debowerify使用debowerify变换可以很好地构build,但是,当我想从另一个项目中的npm install MyMixedComponent , npm install MyMixedComponent ,目录结构的构build方式和npm一样: – MyNewProject – main.js – package.json […]

使用grunt-browserify(> 2.0.2)作为转换工具很难获得browserify-shim

在grunt-browserify 2.0.2版本中, browserify-shim已经从模块本身中被移除,并被转换为一个transform ,而不是在grunt-browserify任务上的一个简单的option 。 用grunt-browserify使用垫片的旧版本看起来是这样的: 'libs-dev': { src: [path.join('<%= config.dirs.browserLibs %>', 'angular', 'angular.js')], dest: path.join('<%= config.dirs.dest.dev %>', 'js', 'libs.js'), options: { shim: { angular: { path: path.join('<%= config.dirs.browserLibs %>', 'angular', 'angular.js'), exports: 'angular' } } } } 这工作得很好,并围绕libs.js模块生成一个包装,如下libs.js : require=(function(e,t,n){function i(n,s){if(!t[n]){if(!e[n]){var o=typeof require=="function"&&require;if(!s&&o)return o(n,!0);if(r)return r(n,!0);throw new Error("Cannot find module '"+n+"'")}var u=t[n]={exports:{}};e[n][0].call(u.exports,function(t){var r=e[n][1][t];return i(r?r:t)},u,u.exports)}return t[n].exports}var […]

获取browserify需要path的行为更像requirejs

我发现当移动文件时经常需要重写包含path的文件,这是相对于新文件夹而言的。 我想在我的browserify代码中避免这个问题: var View = require('../../../../base/view'); 并且在requirejs里面做更多的事情,它知道我的基本path是js : var View = require('base/view');

如何用browserify“要求”文本文件?

我正在使用browserify(使用browserify-middleware)我怎样才能要求简单的文本文件,如: var myTmpl = require("myTmpl.txt"); 我cherif stringify插件的browserify,但在文档中的代码不工作与browserify V2