Подтвердить что ты не робот

Как "требовать" текстовые файлы с браузером?

Я использую browserify (с помощью браузера-промежуточного программного обеспечения) как я могу использовать простые текстовые файлы, например:

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

Я читал stringify плагин для браузера, но код в документации не работает с браузером V2

4b9b3361

Ответ 1

require() действительно лучше всего подходит только для javascript-кода и json файлов для поддержания четности с помощью node и для повышения удобочитаемости вашего кода посторонним, которые ожидают, что require() будет работать так, как это делается в node.

Вместо использования require() для загрузки текстовых файлов рассмотрите использование brfs. С помощью brfs вы сохраняете четность с помощью node, вызывая fs.readFileSync(), но вместо выполнения синхронного ввода-вывода, как в node, 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

Ответ 3

Если вы действительно хотите использовать require(), вы можете посмотреть partialify:

my.txt:

Hello, world!

index.js:

alert( require( "my.txt" ) );

Если сконфигурирован браузер:

var partialify = require( "partialify/custom" );
partialify.alsoAllow( "txt" );

bundle.add( "./index.js" );
bundle.transform( partialify );

Теоретически вы получите "Привет, мир!". сообщение в браузере.
Постскриптум Я сам этого не пробовал.

Изменить: обратите внимание, что это решение нарушает совместимость NodeJS - оно работает только в браузере, так как NodeJS не знает, как требовать файлы .txt.