22

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

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

browserifyのstringifyプラグインを確認しましたが、ドキュメントのコードが browserify V2 で動作しません

4

3 に答える 3

44

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

于 2013-07-06T12:21:42.537 に答える
9

文字列化:

https://github.com/JohnPostlethwait/stringify

著者の例は次のとおりです。

var bundle = browserify()
    .transform(stringify(['.hjs', '.html', '.whatever']))
    .add('my_app_main.js');
于 2014-05-03T13:03:07.770 に答える
5

本当に を使用したい場合は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!」が表示されます。ブラウザのメッセージ。
PS私はこれを自分で試していません。

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

于 2014-04-11T13:40:50.997 に答える