Цитата:
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, время: 09:23. |