Как связать файл json для чтения с помощью require ()? jspm изменяет имя на .json.js

Я изучаю возможность перехода сборки браузера на jspm.

browserify оставляет код вроде:

require("defaults.json")

неповрежденным и находит файл "defaults.json" в исходном каталоге и внедряет его в структуру, которая может быть прочитана предоставленным браузером require()

вместо этого jspm выдает ошибку:

jspm build main.js bundle.js
Building the bundle tree for main.js...

err  Error on fetch for defaults.json.js at file:///tmp/testapp/defaults.json.js
        Loading main.js
        Error: ENOENT: no such file or directory, open '/tmp/testapp/defaults.json.js'
         at Error (native)

Заметь:

  • ошибка ENOENT, такого файла нет.
  • потому что он добавляет ".js" к имени файла, становясь defaults.json.js, а не defaults.json, как появляется в вызове require.

Я попытался установить плагин json для jspm с помощью

jspm install json

Это не помогло, возвращая ту же ошибку при сборке. Переустановка с rm -rf ./jspm_packages и jspm install также возвращает ту же ошибку при сборке.

Как включить файл json в сборку jspm?


person Paul    schedule 07.07.2016    source источник
comment
Вы добавили ! после установки плагина json?   -  person Patrick    schedule 07.07.2016
comment
Кажется, я пробовал require("defaults.json!"), и это не сработало. Это так или это require("json!default.json")....хм.... ни один из этих двух не работает. Я видел! в примерах импорта модулей es6 не знаю, поддерживает ли jspm все это или нет. Что вы думаете?   -  person Paul    schedule 07.07.2016
comment
@ Патрик Спасибо. Магический формат был require("defaults.json!json")   -  person Paul    schedule 07.07.2016
comment
@ Патрик Ааа ... Теперь require("defaults.json!") тоже работает. Непонятно, почему раньше не работало.   -  person Paul    schedule 07.07.2016


Ответы (1)


Как намекнул @Patrick:

require('defaults.json!')

работает после загрузки плагина jspm json с jspm install json.

require('defaults.app!json') 

можно использовать, если файл в формате JSON не имеет расширения .json.

документы jspm ясно объясняют это для ES6 import, и, по-видимому, это тот же синтаксис имени файла, что и в require.

person Community    schedule 07.07.2016