web-dev-qa-db-ja.com

browserifyでテキストファイルを「要求」する方法

Browserify(browserify-middlewareを使用)を使用していますが、次のような単純なテキストファイルをどのように要求できますか。

var myTmpl = require("myTmpl.txt");

私はチェックしました stringify browserifyのプラグインですが、ドキュメントのコードはbrowserify V2で動作しません

22
haimke

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

43
substack

stringify

https://github.com/JohnPostlethwait/stringify

ここに著者の例があります:

var bundle = browserify()
    .transform(stringify(['.hjs', '.html', '.whatever']))
    .add('my_app_main.js');
9
Strider

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 );

理論的には、「Hello、world!」ブラウザのメッセージ。
P.S。私はこれを自分で試したことはありません。

Edit:このソリューションはNodeJSの互換性を損なうことに注意してください-NodeJSは.txtファイルを要求する方法を知らないため、ブラウザ化された状態でのみ機能します。

5
user1619166