在我的Angularjs应用程序中使用节点模块

我遇到了几个模块,我想在我的Angular应用程序中使用,但是在如何在我的angular度应用程序中工作的十字路口,因为我将需要在我的工厂文件中“require()”。

inheritance人节点模块即时兴趣: https : //github.com/TimNZ/node-xero

在这个当前的项目中,我在Yeoman使用Gulp Angular来生成我的样板,并且很难弄清楚如果我需要修改任何gulp脚本,我应该怎么做这个工作。

我想我可以只是“Browserify”将使用require()的单个文件,但是这是错误的方法? 我应该只是浏览所有的项目文件? 这是标准做法吗?

任何build议表示赞赏,目前有我站在静止。

所有我想要使用的与Xero有关的模块似乎都是节点模块。

最简单的起点是使用Browserify来构build一个独立的包,它使用您select的全局。

为此,可以创build一个需要使用节点模块的JS文件。 您可以使用以下内容创build一个名为bundle-index.js的文件:

 exports.xero = require('node-xero'); 

然后你可以运行这个命令来构build一个独立的模块:

 browserify --standalone the_global bundle-index.js > bundle.js 

其中the_global是一个适合于将包含导出的全局对象的名称。 通过script元素中包含的bundle.js文件,您可以像这样使用它:

 var privateApp = new window.the_global.xero.PrivateApplication({ ... }); 

这样做的事情会涉及到对当前项目的干扰最less。 如果您只需要使用Browserify来要求不经常更改的第三方库,则可以从构build独立包的简单手动过程开始。

请注意,您可以通过将其他导出添加到bundle.js来导出其他所需的模块:

 exports.xero = require('node-xero'); exports.someOtherModule = require('some-other-module'); 
 (function(){ var xero = require('node-xero'); angular .module('app') .factory('myFactory', myFactory); function myFactory(){ var helper = { myMethod: myMethod, }; return helper; function myMethod(){ xero.doStuff(); } } })();