[英]Reference node_module after running browserify
我找到了一個我希望能夠包含在Angular應用中的nodejs模塊。 我環顧四周,發現可以通過在上面運行browserify來做到這一點。 完成此操作后,我已在html中引用了新文件,但此后我不知道該怎么辦。 我需要在哪里引用它才能獲得角度范圍? 這是我希望能夠訪問的github倉庫
https://github.com/whatadewitt/yfsapi
瀏覽器中的node_modules文件夾中的文件后,我有一個大的js文件。 在Node中的用法是
var YahooFantasy = require('yahoo-fantasy');
// you can get an application key/secret by creating a new application on Yahoo!
var yf = new YahooFantasy(
Y!APPLICATION_KEY,
Y!APPLICATION_SECRET
);
似乎這里需要一個條件,但這不是我首先運行browserify的全部原因嗎? 我在這里想念什么?
從Browserify網站 :
瀏覽器沒有定義require方法,但是Node.js有。 使用Browserify可以編寫使用require的代碼,就像在Node中使用它一樣。
Browserify的目的是為您提供瀏覽器中的模塊系統,並允許您require
文件。 它非常有用,可讓您輕松包含Node模塊並模塊化自己的應用程序。
要使用您在Angular應用中引用的Node模塊,基本上可以完全完成演示在控制器或服務中顯示的內容。 就個人而言,我可能建議創建一個包裝Node模塊並公開與Yahoo Fantasy服務器進行交互的方法的服務。 除非出於某些原因您絕對必須這樣做,否則我可能不會將它放在$scope
上。
這是一些偽ish代碼:
var yf = require('yahoo-fantasy');
function YFantasyService (<dependencies>) {
this.someMethod = function () {
return yf.doStuff();
}
}
YFantasyService.$inject = [<dependencies>];
module.exports = YFantasyService;
注冊您的服務(這是我的應用程序的結構...還有許多其他方式可以編寫和注冊服務,但是您可以理解):
angular.module('YFantasyApp', [<dependencies>])
.service('YFantasyService', require('./YFantasyService'));
然后將其注入其他服務和控制器中,並隨心所欲地對其進行處理。
如果您要構建一個包含yahoo-fantasy
的捆綁軟件-以便可以在對現有代碼進行最少更改的情況下使用它-您可以使用Browserify API:
var browserify = require("browserify");
browserify()
.require("yahoo-fantasy", { expose: "yahoo-fantasy" })
.bundle()
.pipe(process.stdout);
這將生成一個包含yahoo-fantasy
模塊及其所有依賴項的捆綁包,並將公開一個全局的require
函數,您可以調用該函數來訪問所述模塊:
<!doctype html>
<html>
<head>
<title>so-40120643</title>
</head>
<body>
<script src="./bundle.js"></script>
<script>
console.log(require("yahoo-fantasy"));
</script>
</body>
</html>
如果要為全局require
函數使用其他名稱,則可以使用Browserify的externalRequireName
選項。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.