我使用browserify(使用browserify中間件) 我怎麼能要求簡單的文本文件,是這樣的:如何用browserify「要求」文本文件?
var myTmpl = require("myTmpl.txt");
我cheked stringify插件browserify但文檔中的代碼不與browserify V2
工作我使用browserify(使用browserify中間件) 我怎麼能要求簡單的文本文件,是這樣的:如何用browserify「要求」文本文件?
var myTmpl = require("myTmpl.txt");
我cheked stringify插件browserify但文檔中的代碼不與browserify V2
工作require()
真的只是用於JavaScript代碼和json文件,以保持與節點的奇偶性,並提高您的代碼的可讀性給期望require()
在節點中工作的外部人員。
而不是使用require()
加載文本文件,請考慮使用brfs轉換。隨着BRFS,您可以通過調用fs.readFileSync()
但而不是做同步IO作爲節點保持與節點的奇偶,BRFS將內嵌文件內容到束就地所以
var src = fs.readFileSync(__dirname + '/file.txt');
成爲
var src = "beep boop\n";
在
捆綁輸出。
與-t brfs
只是編譯:
browserify -t brfs main.js > bundle.js
更多關於爲什麼超載require()
太多的討論是一個壞主意:http://mattdesl.svbtle.com/browserify-vs-webpack
如果你真的想使用require()
,你可能想看看partialify:
my.txt
:
Hello, world!
index.js
:
alert(require("my.txt"));
凡Browserify配置: 「你好,世界」
var partialify = require("partialify/custom");
partialify.alsoAllow("txt");
bundle.add("./index.js");
bundle.transform(partialify);
理論上你將得到一個消息在瀏覽器中。
P.S.我沒有自己嘗試過。
編輯:請注意,這個解決方案突破兼容性的NodeJS - 它只能在browserified狀態,因爲它的NodeJS不知道如何要求.txt
文件。
這對我有用。請注意 - 如果你這樣做,而且你也在使用babelify,你需要傳遞一個babelify擴展白名單,以便它只處理你想要的文件(.js,.jsx等)而不是文本文件或任何其他類型的文件,你需要。您可以通過將--extensions標誌傳遞給babelify來完成此操作。 –
字符串化:
https://github.com/JohnPostlethwait/stringify
下面是筆者例如:
var bundle = browserify()
.transform(stringify(['.hjs', '.html', '.whatever']))
.add('my_app_main.js');
這個工作,只要有問題的模塊是頂層包樹的一部分 - 也就是說,不需要使用'npm install'安裝的軟件包。但我不確定browserify的轉換是否適用於其他已安裝軟件包所需的軟件包。 – kurttheviking
有沒有一種工作只是使用「要求」? – CMCDragonkai
這爲我完成了這個工作,將着色器代碼作爲字符串插入到我的three.js項目中。 – Air