Я пытаюсь получить дерево зависимостей для проекта coffee-script, используя browserify.
Кажется, что проект поставляется с возможностью печати дерева зависимостей из командной строки с помощью browserify -t coffeeify --deps ./script.coffee
, с
сценарий.кофе
console.log 'hello'
require 'a.coffee'
взрывается с ошибкой (отредактировано для краткости):
... Unexpected token ILLEGAL at parseDeps (/.../module-deps/index.js:172:45) at done (/.../browserify/node_modules/module-deps/index.js:152:13) at applyTransforms (/.../browserify/node_modules/module-deps/index.js:135:41) at /.../browserify/node_modules/module-deps/index.js:112:17 at fs.js:266:14 at Object.oncomplete (fs.js:107:15)
В идеале я хотел бы автоматизировать создание дерева зависимостей с помощью API браузера, но неясно, как это сделать.
Казалось разумным начать работать в обратном направлении от module-deps, но не очевидно, что это было разработано пройтись по дереву зависимостей для проекта coffee-script. Однако я не отправлял связанный запрос на включение GitHub. В этом свете я надеялся внедрить браузер transform
и прочитать зависимости для каждого файла после того, как браузер уже преобразовал его в javascript из coffee-script, однако module-deps, похоже, принимает только имена файлов, а не сам источник javascript. Что-то вроде следующего:
require('browserify')
.add('./script.coffee')
.transform(require('coffeeify')
.transform((file) ->
data = ''
write = (buf) -> data += buf
end = ->
## parse data for dependencies.
console.log "File ", file, "dependencies", mdeps(data)
@queue(data)
@queue(null)
return through(write, end)
)
Это не работает, потому что функция mdeps
, насколько я могу судить, не существует. Я ожидаю, что это потребует использования одного из парсеров (esprima и т. д.) для поиска require
вызовов.
Кто-нибудь выполнил печать дерева зависимостей coffee-script с помощью браузера? Кажется, это было бы очень полезно, и я был бы удивлен, если бы до этого еще никто не добрался.