Сообщение от cyber
|
destus, я на сколько я понял bes, хочет уневерсальный конфиг который не зависит от проекта, или я его понял не так
|
поясню подробнее
в вышеуказанной структуре каталогов
package.json
{
"name": "test_project",
"version": "0.0.1",
"devDependencies": {
"grunt": "^1.0.1",
"grunt-cli": "^1.2.0",
"grunt-contrib-concat": "^1.0.1"
}
}
Gruntfile.js
module.exports = function (grunt) {
grunt.initConfig({
concat: {
test_target: {
//нужно будет правильно указать пути
src: ['src/test1.js', 'src/test2.js'],
dest: 'dist/test.js',
},
},
});
grunt.loadNpmTasks("grunt-contrib-concat");
grunt.registerTask("default", ["concat"]);
};
нужно добиться, например, того, чтобы из каталога с файлом ctr/grunt/Gruntfile.js просто вызывать команду grunt из консоли или добиться какого-нибудь другого работоспособного вызова
возможно test_project/ctr/grunt/node_modules/.bin нужно добавить в path, чтобы вызывать grunt.cmd оттуда из произвольного каталога, но этого недостаточно для того, чтобы всё получилось
в общем, попробовав несколько вариантов и не добившись положительного результата, до углублённого изучения кода grunt-a и его правки, спрашиваю, велосипедил ли кто-нибудь уже так?
сама мысль заюзать grunt из дополнительного каталога ctr (каталога для сборщиков) возникла на основе таких мыслей:
- есть отдельная сущность - сборщик, поэтому надо выделить ей отдельный каталог, внутри этого каталога для каждого сборщика выделить по отдельному каталогу
сборщик использует файлы в каталоге src, чтобы сформировать содержимое каталога dist
- довольно убого и нелогично выглядит, когда все конфиги, build-файлы и т.п. лежат в куче среди собственно исходных файлов или рядом с ними, и, чем больше таких файлов, тем более убого всё это выглядит
например, в случае с grunt
это могло бы выглядеть так
project_root
- dist
- src
-- test1.js
-- test2.js
- node_modules
- Gruntfile.js
- package.json
ещё хуже так, так как дополнительные файлы и каталоги не относятся к исходникам, для которых выделен отдельный каталог src
project_root
- dist
- src
-- test1.js
-- test2.js
-- node_modules
-- Gruntfile.js
-- package.json