在我的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(); } } })();