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, время: 09:18. |