пакетный файл для объединения файлов .js из подпапок в один объединенный файл - PullRequest
2 голосов
/ 15 апреля 2010

Я изо всех сил пытаюсь заставить это работать. В Интернете множество примеров, но все они делают что-то немного отличное от того, что я собираюсь сделать, и каждый раз, когда я думаю, что могу это решить, меня поражает ошибка, которая ничего не значит для меня.

После отказа от плагина JSLint.VS я пытаюсь создать пакетный файл, который я могу вызвать из события сборки Visual Studio или, возможно, из круиз-контроля, который будет генерировать предупреждения JSLint для проекта. Конечная цель - получить объединенный файл js, который я могу передать в jslint, используя:

cscript jslint.js < tmp.js

, который подтвердил бы, что мои сценарии готовы к объединению в один файл для использования в миниатюре js или выводу кучу ошибок, используя стандартный вывод.

но js-файлы, из которых состоит tmp.js, вероятно, находятся в нескольких подпапках проекта, например:

D:\_projects\trunk\web\projectname\js\somefile.debug.js
D:\_projects\trunk\web\projectname\js\jquery\plugins\jquery.plugin.js

Идеальным решением было бы иметь возможность вызывать командный файл в соответствии с:

jslint.bat %ProjectPath%

, и тогда все js-файлы проекта будут объединены в один временный js-файл. Таким образом, у меня будет гибкость при передаче проекта в командный файл.

Я пытался заставить это работать с копией, xcopy, type и echo, и использовал цикл for, с dir / s и т. Д., Чтобы заставить его делать то, что я хочу, но что бы я ни пытался, я получаю ошибка.

Ответы [ 3 ]

5 голосов
/ 19 апреля 2010

Вы можете создать командный файл со следующим содержимым:

@echo off
pushd "%~1"
for /r %%x in (*.js) do (
    type "%%~x"
)
popd

и затем запустите его через:

jslint.bat PATH > tmp.js

Если вы не хотите использовать перенаправление, попробуйте:

@echo off
pushd "%~1"
echo.>tmp.js
for /r %%x in (*.js) do (
    copy tmp.js + "%%~x" tmp.js > NUL
)
popd

обратите внимание, что для простоты я не удосужился выполнить какую-либо проверку ошибок (например, проверить, указан ли аргумент (хотя если нет, он просто использует текущий каталог), протестировав, что tmp.js не делает уже существует и т. д.).

0 голосов
/ 15 апреля 2010

Посмотрите на http://nefariousdesigns.co.uk/archive/2010/02/website-builds-using-make/

Пост написан для мира Linux, но все же вы можете извлечь из него что-то полезное.

0 голосов
/ 15 апреля 2010

Отличное место для советов по пакетным файлам: DosTips.com

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...