Gruntfile.js в произвольной директории
начато здесь
Задача: на примере склейки двух файлов заюзать grunt под виндой портативно с относительно произвольным расположением файла Gruntfile.js вариант структуры каталогов: test_project - dist -- test.js появится здесь - src -- test1.js -- test2.js - сtr -- grunt --- env ---- nodejs ----- node_modules ----- node.exe ----- npm.cmd --- node_modules ---- .bin ----- grunt.cmd ---- grunt ---- grunt-cli ---- grunt-contrib-concat --- Gruntfile.js --- package.json package.json:
{
"name": "test_project",
"version": "0.1.0",
"devDependencies": {
"grunt": "^1.0.1",
"grunt-cli": "^1.2.0",
"grunt-contrib-concat": "^1.0.1"
}
}
Grunfile.js:
module.exports = function (grunt) {
grunt.initConfig({
concat: {
test_target: {
//пути отсчитываем от расположения Gruntfile.js
src: ['../../src/test1.js', '../../src/test2.js'],
dest: '../../dist/test.js',
},
},
});
grunt.loadNpmTasks("grunt-contrib-concat");
grunt.registerTask("default", ["concat"]);
};
вариант решения: - каталог с node.exe в path test_project\ctr\grunt>set path=%cd%;%path% - в Grunfile.js пути отсчитываем от его расположения - чтобы запускать grunt.cmd не только из каталога .bin, добавляем путь к нему в path test_project\ctr\grunt\node_modules\.bin>set path=%cd%;%path% итого: test_project\ctr\grunt>grunt |
bes, ничего не имею против Grunt, но gulp реальнее удобней. Например, ту же конкатенацию можно сделать так (без подключения плагинов):
gulp
.src([
'path_1',
'path_2'
])
.pipe(gulp.dest('path/all.js'));
Вместе с тем следует сделать важное замечание: когда мы работаем с js кодом (модулями), мы должны оперировать понятием модуля, а не "склеить два файла". Т.е. правильный путь решения данной задачи Webpack или подобные инструменты. |
Цитата:
|
bes,
через rigger можно. |
Цитата:
copy test1.js+test2.js test.js /b /y или type test1.js test2.js > test.js и ещё кучкой способов, задача как бы не в этом была :) |
bes,
Это про склейку других типов файлов было.:) По поводу первого сообщения. То есть папку с каждым проектом надо будет записывать в NODE_PATH ? test_project\ctr\grunt ... Set path |
Цитата:
Цитата:
можно также делать вызов так test_project\ctr\grunt>"node_modules/.bin/grunt" добавив в переменную окружения path (не node_path) каталог ctr\grunt\node_modules\.bin можно будет сделать два дополнительных работоспособных вызова grunt.cmd по короткому имени: из каталогов ctr\grunt\node_modules\ и ctr\grunt\ |
bes,
Ок :)а чем вариант, когда gruntfile лежит на уровень выше чем src не устраивает? Цитата:
|
Цитата:
Цитата:
|
Цитата:
- js - css - json - images - svg - fonts - ... Для этого в вебпаке создана концепция лоадеров Интересные вещи начинаются тогда, когда, например, модуль экспортирует сразу несколько типов файлов, а ты импортишь все это как единый модуль. Пример chosen для jquery import 'chosen'; // js, css, images :) |
| Часовой пояс GMT +3, время: 00:35. |