Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Snakeskin (https://javascript.ru/forum/project/35057-snakeskin.html)

kobezzza 05.02.2015 13:56

Я уже на высшие силу грешу, вот блин всё вроде верно указано: нода определяется, bin прописан, sha-bang есть... что ему ещё надо то? Ух, тяжело мне виндузятнику.

melky 05.02.2015 13:57

kobezzza, перепроверь окончания строк.
Код:

root@4ce0735a160c:/# echo $SS
/root/.nvm/v0.11.16/lib/node_modules/snakeskin/bin/snakeskin.js
root@4ce0735a160c:/# cat $SS
#!/usr/bin/env node
console.log('HELLO');
root@4ce0735a160c:/# $SS
HELLO
root@4ce0735a160c:/# snakeskin
HELLO

Цитата:

Сообщение от kobezzza (Сообщение 355160)
Ух, тяжело мне виндузятнику.

у меня тоже история была... есть файл с настройкой переменных окружения:
Код:


vagrant@vagrant-ubuntu-trusty-64:~$ cat /vagrant/.env-dev
#!/bin/sh
export NODE_ENV="development"
export PORT=8080
export DEBUG=*,-stylus:*,-express:router:*

думаю ну всё ок, ща задебажу. и не дебажится.

вывожу в консоль NODE_ENV:
Код:

vagrant@vagrant-ubuntu-trusty-64:/vagrant.sync$ echo $NODE_ENV
development

а в коде - нихрена:
Код:

vagrant@vagrant-ubuntu-trusty-64:/vagrant.sync$ nodejs -e "console.log(process.env.NODE_ENV === 'development')"
false

ЧТО ?! 'development' === 'development' ---> FALSE ?!
я долгое время ломал голову, пока не догнал:
Код:

vagrant@vagrant-ubuntu-trusty-64:/vagrant.sync$ echo "<<<$NODE_ENV>>>"
>>>development

т.е. есть символ возврата каретки - WINDOWS блин (CRLF)

после этого добавил в .editorconfig:
Код:

[.env-dev]
end_of_line = lf

и потом всё как по маслу)

kobezzza 05.02.2015 14:00

Цитата:

kobezzza, перепроверь окончания строк.
Где именно?

Кажется я понял, действительно, в Sha-Bang у меня строка закансивается на \r\n и поэтому не видится нода! Твою же мать за ногу!!! Пойду поем и буду фиксить)

melky 05.02.2015 14:16

Цитата:

Сообщение от kobezzza (Сообщение 355164)
Где именно?

во всём файле. а лучше - во всем проекте :)

держи скринкаст
в нём я поменял окончания строк в файле бинарника через VIM и всё заработало


kobezzza 05.02.2015 14:25

Огромное спасибо! Я бы никогда не подумал, что ошибка кроется в такой ерунде! :)

Я решил что сделаю так:

заводить конфиг для редактора мне кажется лишним, а добавлю Gulp-таск, который будет конвертить всё в \n, потом публиковать в NPM, а потом конвертить обратно в родное для ОС значение, т.е. вместо

npm pub


я буду делать

gulp pub

kobezzza 05.02.2015 17:48

Выкатил релиз, должно всё работать, спасибо огромное Gozar и melky за локализацию и помощь в устранении этой баги :)

gulp.task('pub', function () {
	gulp.src('./bin/*.js')
		.pipe(eol('\n'))
		.pipe(gulp.dest('./bin'))
		.on('end', function () {
			run('npm pub').exec(undefined, function () {
				gulp.src('./bin/*.js')
					.pipe(eol())
					.pipe(gulp.dest('./bin'));
			});
		});
});


Вот такой вот таск вышел.

Gozar 05.02.2015 21:43

Цитата:

Сообщение от kobezzza
спасибо огромное Gozar

Не за что.
snakeskin -s head.ss -o head.ss.js
или
snakeskin -s ./head.ss -o ./head.ss.js
fs.js:642
  return binding.mkdir(pathModule._makeLong(path),
                 ^
Error: ENOENT, no such file or directory ''
    at Object.fs.mkdirSync (fs.js:642:18)
    at /usr/lib/node_modules/snakeskin/bin/snakeskin.js:191:7
    at Array.forEach (native)
    at testDir (/usr/lib/node_modules/snakeskin/bin/snakeskin.js:187:64)
    at action (/usr/lib/node_modules/snakeskin/bin/snakeskin.js:268:3)
    at Object.<anonymous> (/usr/lib/node_modules/snakeskin/bin/snakeskin.js:510:4)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)

запуск в папке в которой находится файл head.ss

kobezzza 05.02.2015 22:15

Исправлено, был очередной привет из Линуха.

Кстати, почему ты используешь -s для задания файла-шаблона, ведь гораздо удобнее просто использовать:

snakeskin путь к файлу или текст файла


Можно использовать также с потоками ввода/вывода.

Gozar 05.02.2015 22:23

Цитата:

Сообщение от kobezzza
почему ты используешь -s для задания файла-шаблона

http://www.youtube.com/watch?v=TspTov7AWog начиная с 2:10

Gozar 05.02.2015 22:25

Цитата:

Сообщение от kobezzza
Исправлено, был очередной привет из Линуха.

Уря накАнЭц-то. А то я уже не закрывал консоль. Всё заработало, вотчер подхватил :)


Часовой пояс GMT +3, время: 00:30.