Цитата:
1) Поддержка локализации; 2) 2 вида синтаксиса; 3) Поддержка макросов и фильтров; 4) Значительно более мощная система code-reuse; 5) поддержка компиляции как в строку, так и в DocumentFragment 6) Поддержка чанкования; 7) Поддержка асинхронных шаблонов; 8) Поддержка БЭМ; 9) Поддержка модулей; 10) Оптимизация хвтостовой рекурсии, инлайнинг итераторов, инланинг примесей и прочие оптимизации И ещё куча по мелочи. |
Цитата:
nodejs модули подключаются относительно файла в котором require, а snakeskin.compileFile относительно корня сервера. Цитата:
|
Цитата:
Цитата:
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
Чтобы был доступен вызов вызов SS в консоли, то его нужно ставить глобально. npm i -g snakeskin Ты так ставил? |
Цитата:
Установка так: npm install snakeskin --global запуск так: snakeskin -s ./file.ss -o ./path.ss.js непашет. Файл не найден. Точка. |
Цитата:
Цитата:
|
Цитата:
|
Цитата:
Установка так: npm install snakeskin --global запуск так: snakeskin -s ./file.ss -o ./path.ss.js |
Цитата:
|
Цитата:
|
Цитата:
UPD: локализовал багу, она связана с работой путей к файлам в Kubuntu в NPM, завтра исправлю, спасибо за репорт! |
Моя ошибка в том, что я наивно думал, что поведение в Убунте равно в Кубунте :)
|
Цитата:
|
Цитата:
"bin": {
"snakeskin": "bin/snakeskin.js"
}
А нужно исправить на
"bin": {
"snakeskin": "./bin/snakeskin.js"
}
И все будет ок, я думаю это бага NPM |
Цитата:
|
Цитата:
|
Цитата:
Мне виндузятнику мир Линуха кажется не логичным, но в общем проблема в следующем: если ставить ноду через репозитарий, т.е. sudo apt-get install nodejs То PATH переменная будет nodejs, а не node, как например на винде, и из-за Sha-Bang в файле CLI скрипта #!/usr/bin/env node Ругается и говорит ошибку, мол нет такого файла. Решения я сейчас вижу 2: пользователь сам должен задать переменную Path node или изменить Sha-Bang, но я внимательно проглядел как сделано в других CLI утилитах и там обращение идёт именно к node. На эту тему были исьюшки https://github.com/joyent/node/issues/3911 Интересно, что Убунте, на которой я тестил стоял путь node, поэтому у меня всё работало, а на голой Кубунте у меня не заработал ни один CLI пока я не установил сам PATH переменную. Линуксоиды, подскажите мне нубу, что в такой ситуации делать? Я склоняюсь просто написать Sha-Bang #!/usr/bin/env nodejs Но мне смущает, почему никто так не делает, а рекомендуют юзерам задать Path самостоятельно Оо |
Фух, в общем тщательно покурив СтекОверфлоу я решил оставить PATH как есть, а у тех, у кого проблема делать:
ls -s /usr/bin/nodejs /usr/bin/node Хз почему так лучше, но все так рекомендуют. После этой операции snakeskin стал доступен как PATH переменная в консоли. Полный листинг команд: sudo apt-get install nodejs ls -s /usr/bin/nodejs /usr/bin/node sudo apt-get install npm sudo npm install -g snakeskin Также выкатил релиз с исправлением относительных путей в compileFile. |
Цитата:
|
Цитата:
|
Цитата:
|
kobezzza,
Я пишу в консоли node и получаю CLI интерфейс node, можно сделать console.log(10); и выведет 10. |
Ну и да у меня node это линк /etc/alternatives/node который линк /usr/bin/nodejs
Проблема осталась. 6to5 работает без бубна. |
Цитата:
*** Собственно тут несколько решений: 1) Можно натравить ноду ручками на CLI Например, cd myProject npm install snakeskin node ./node_modules/snakeskin/bin/snakeskin.js параметры 2) Можно использовать средства сборки grunt или gulp, а для вотчинга использовать grunt-watch и gulp-watch (на мой взгляд это вообще самое правильное решение) 3) Можно таки указать линк на /usr/bin/node 4) Можно открыть ./bin/snakeskin.js и подредактировать Sha-Bang, вставив nodejs вместо node. 5) Можно использовать NodeJS API. *** Эту проблему и пути решения я опишу в FAQ. |
2 не устраивает.
3. Шутишь? У меня стоит пакет 6to5 в соседней папке и с ним все ок Sha-Bang у него node 4 не работает. |
Цитата:
|
6to5 package.json
{
"name": "6to5",
"description": "Turn ES6 code into readable vanilla ES5 with source maps",
"version": "2.12.6",
"author": {
"name": "Sebastian McKenzie",
"email": "sebmck@gmail.com"
},
"homepage": "https://6to5.org/",
"repository": {
"type": "git",
"url": "git://github.com/6to5/6to5"
},
"preferGlobal": true,
"main": "lib/6to5/index.js",
"bin": {
"6to5": "./bin/6to5/index.js",
"6to5-node": "./bin/6to5-node",
"6to5-runtime": "./bin/6to5-runtime"
},
"browser": {
"./lib/6to5/index.js": "./lib/6to5/browser.js",
"./lib/6to5/register.js": "./lib/6to5/register-browser.js"
},
"keywords": [
"harmony",
"classes",
"modules",
"let",
"const",
"var",
"es6",
"transpile",
"transpiler",
"6to5"
],
"scripts": {
"bench": "make bench",
"test": "make test"
},
"dependencies": {
"acorn-6to5": "0.11.1-16",
"ast-types": "~0.6.1",
"chokidar": "0.11.1",
"commander": "2.5.0",
"core-js": "0.4.4",
"estraverse": "1.8.0",
"esutils": "1.1.6",
"esvalid": "1.1.0",
"fs-readdir-recursive": "0.1.0",
"jshint": "2.5.10",
"lodash": "2.4.1",
"output-file-sync": "^1.1.0",
"private": "0.1.6",
"regenerator": "0.8.3",
"regexpu": "0.3.0",
"roadrunner": "1.0.4",
"source-map": "0.1.40",
"source-map-support": "0.2.8",
"kexec": "0.2.0"
},
"devDependencies": {
"browserify": "6.3.2",
"chai": "1.9.2",
"istanbul": "0.3.2",
"jshint-stylish": "1.0.0",
"matcha": "0.6.0",
"mocha": "1.21.4",
"rimraf": "2.2.8",
"uglify-js": "2.4.15"
},
"optionalDependencies": {
"kexec": "0.2.0"
},
"readme": "<p>blabla</p>\n",
"readmeFilename": "README.md",
"bugs": {
"url": "https://github.com/6to5/6to5/issues"
},
"_id": "6to5@2.12.6",
"dist": {
"shasum": "30294d1698e3690b68360fe19a04f0576f855b96"
},
"_from": "6to5@",
"_resolved": "https://registry.npmjs.org/6to5/-/6to5-2.12.6.tgz"
}
|
Цитата:
cd documents git clone https://github.com/kobezzza/Snakeskin cd Snakeskin В bin/snakeskin.js меняешь на node.js и после в папке Snakeskin делаешь npm i -g После этого всё должно заработать. Цитата:
Цитата:
UPD: эврика, только сейчас обратил внимание на "preferGlobal": true, похоже именно этот параметр форсирует обязательное добавление в PATH в лине, сейчас попробую заюзать его :) |
Цитата:
|
Цитата:
|
Цитата:
Код:
sudo apt-get install nodejs-legacyдля управления версиями node (обновление и т.д) ставится либо nvm либо n вы меня заинтересовали! тоже подключусь к решению) |
Кстати хотел спросить почему ф-ия собирает html через инкремент:
__RESULT__ += а не через массив с join:
__RESULT__.push();
__RESULT__.join('');
? У себя инкремент на строки я видел года 3 назад, вот и интересно стало. |
Цитата:
Сейчас пересоберу пакет с preferGlobals, прям чувствую, что собака там зарыта. |
Цитата:
https://github.com/kobezzza/Snakeski...ile#rendermode |
Цитата:
сейчас так: Код:
root@4ce0735a160c:/# npm i -g snakeskin |
А вот так работает:
Код:
root@4ce0735a160c:/# export SS=/root/.nvm/v0.11.16/lib/node_modules/snakeskin/bin/snakeskin.js |
Пересобрал релиз, залил в NPM
|
Цитата:
Код:
root@4ce0735a160c:/# npm i -g snakeskinКод:
root@4ce0735a160c:/# /usr/bin/env node --version |
| Часовой пояс GMT +3, время: 20:49. |