pasaran / yate

Yet Another Template Engine
MIT License
214 stars 28 forks source link

Не работает запуск файла с указанием `module` #111

Open alexeyten opened 12 years ago

alexeyten commented 12 years ago

Если в файле задано имя модуля, то его нельзя «выполнить» сразу.

a.yate

module "qwe"

match / {
    "Hello"
}
$ yate a.yate a.json

.../yate/lib/actions.js:204
    var result = vm_.runInNewContext(js, {
                     ^
Module "main" is undefined
petrukhin commented 11 years ago

И без модуля эта ошибка

cat test.yate 
match / {
    <html></html>
}
yate test.yate data.js > index.html

/usr/local/lib/node_modules/yate/lib/actions.js:209
    var result = vm_.runInNewContext(js, {
pasaran commented 11 years ago

Без модуля вроде работает. Какая версия?

petrukhin commented 11 years ago

yate@0.0.23

dhcp-202-184-wifi:yate petrukhin$ yate test.yate data.js > index.html

/usr/local/lib/node_modules/yate/lib/actions.js:209
    var result = vm_.runInNewContext(js, {
                     ^
SyntaxError: Unexpected token var
    at Object.yate.run (/usr/local/lib/node_modules/yate/lib/actions.js:209:22)
    at Object.<anonymous> (/usr/local/lib/node_modules/yate/yate:70:23)
    at Module._compile (module.js:449:26)
    at Object.Module._extensions..js (module.js:467:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.runMain (module.js:492:10)
    at process.startup.processNextTick.process._tickCallback (node.js:244:9)
pasaran commented 11 years ago

Хмм. Я вот поставил в папку 0.0.23 и все вроде ок. Возможно дело в том, что у тебя оно глобально установлено в /usr/local/....

Попробуй просто локально поставить.

> npm install yate@0.0.23
> ./node_modules/.bin/yate test.yate data.js
petrukhin commented 11 years ago

Это на МакОсиnode -vv0.8.15 Вчера ставил на линукс тоже самоеПричём компилится без ошибок вроде dhcp-202-184-wifi:yate petrukhin$ ./node_modules/.bin/yate test.yate data.js > index.html /Users/petrukhin/Sites/yate/nodemodules/yate/lib/actions.js:209    var result = vm.runInNewContext(js, {                     ^SyntaxError: Unexpected token var    at Object.yate.run (/Users/petrukhin/Sites/yate/node_modules/yate/lib/actions.js:209:22)    at Object. (/Users/petrukhin/Sites/yate/node_modules/yate/yate:70:23)    at Module._compile (module.js:449:26)    at Object.Module._extensions..js (module.js:467:10)    at Module.load (module.js:356:32)    at Function.Module._load (module.js:312:12)    at Module.runMain (module.js:492:10)    at process.startup.processNextTick.process._tickCallback (node.js:244:9)  24.01.2013, 16:25, "Sergey Nikitin" notifications@github.com:Хмм. Я вот поставил в папку 0.0.23 и все вроде ок. Возможно дело в том, что у тебя оно глобально установлено в /usr/local/....Попробуй просто локально поставить.> npm install yate@0.0.23

./node_modules/.bin/yate test.yate data.js — Reply to this email directly or view it on GitHub.

pasaran commented 11 years ago

Я на линуксе. Хмм.

А что оно там накомпиляло? Просто вывод от

> ./node_modules/.bin/yate test.yate

запость.

petrukhin commented 11 years ago
(function() {                                                                   

    var cmpNN = yr.cmpNN;                                                       
    var cmpSN = yr.cmpSN;                                                       
    var nodeset2xml = yr.nodeset2xml;                                           
    var nodeset2boolean = yr.nodeset2boolean;                                   
    var nodeset2attrvalue = yr.nodeset2attrvalue;                               
    var nodeset2scalar = yr.nodeset2scalar;                                     
    var scalar2attrvalue = yr.scalar2attrvalue;                                 
    var scalar2xml = yr.scalar2xml;                                             
    var simpleScalar = yr.simpleScalar;                                         
    var simpleBoolean = yr.simpleBoolean;                                       
    var selectNametest = yr.selectNametest;                                     
    var closeAttrs = yr.closeAttrs;                                             

    var M = new yr.Module();                                                    

    var j0 = [ ];                                                               

    // match /                                                                  
    M.t0 = function t0(m, c0, i0, l0, a0) {                                     
        var r0 = '';                                                            

        r0 += closeAttrs(a0);                                                                                                                                                                               
        r0 += '<html></html>';                                                  

        return r0;                                                              
    };                                                                          
    M.t0.j = 1;                                                                 
    M.t0.a = 1;                                                                 

    M.matcher = {                                                               
        "": {                                                                   
            "": [                                                               
                "t0"                                                            
            ]                                                                   
        }                                                                       
    };                                                                          
    M.imports = [ ];                                                            

    yr.register('main', M);                                                     

})();
pasaran commented 11 years ago

Вроде все ок. А попробуй оставить только локальную версию.

npm remove -g yate

On Thu, Jan 24, 2013 at 4:36 PM, Pavel notifications@github.com wrote:

(function() {

var cmpNN = yr.cmpNN;
var cmpSN = yr.cmpSN;
var nodeset2xml = yr.nodeset2xml;
var nodeset2boolean = yr.nodeset2boolean;
var nodeset2attrvalue = yr.nodeset2attrvalue;
var nodeset2scalar = yr.nodeset2scalar;
var scalar2attrvalue = yr.scalar2attrvalue;
var scalar2xml = yr.scalar2xml;
var simpleScalar = yr.simpleScalar;
var simpleBoolean = yr.simpleBoolean;
var selectNametest = yr.selectNametest;
var closeAttrs = yr.closeAttrs;

var M = new yr.Module();

var j0 = [ ];

// match /
M.t0 = function t0(m, c0, i0, l0, a0) {
    var r0 = '';

    r0 += closeAttrs(a0);
    r0 += '<html></html>';

    return r0;
};
M.t0.j = 1;
M.t0.a = 1;

M.matcher = {
    "": {
        "": [
            "t0"
        ]
    }
};
M.imports = [ ];

yr.register('main', M);

})();

— Reply to this email directly or view it on GitHubhttps://github.com/pasaran/yate/issues/111#issuecomment-12649188.

petrukhin commented 11 years ago

Без изменений

$ npm remove -g yate 
$ ./node_modules/.bin/yate test.yate data.js > index.html

/Users/petrukhin/Sites/yate/node_modules/yate/lib/actions.js:209
    var result = vm_.runInNewContext(js, {
                     ^
...
pasaran commented 11 years ago

Хренотень какая-то. А если просто склонировать репозиторий, сделать там npm install и потом? Вообще, запусти потом make tests

Что-то странное. То ли с путями, то ли не пойму с чем.

On Thu, Jan 24, 2013 at 4:45 PM, Pavel notifications@github.com wrote:

Без изменений

$ npm remove -g yate $ ./node_modules/.bin/yate test.yate data.js > index.html

/Users/petrukhin/Sites/yate/nodemodules/yate/lib/actions.js:209 var result = vm.runInNewContext(js, {

                 ^

...

— Reply to this email directly or view it on GitHubhttps://github.com/pasaran/yate/issues/111#issuecomment-12649474.

pasaran commented 11 years ago

Ок. Попробуй сделать так. (я только что тоже на похожую ошибку напоролся). Компилируешь. Оно тебе выдает что-то типа этого:

/home/nop/reps/yate/lib/actions.js:214
    var result = vm_.runInNewContext(js, {
                     ^

Открываешь этот файл. Перед этой строчкой вставляешь:

console.log(js);

Еще раз запускаешь компиляцию вот так:

...yate test.yate data.js > aaa.js

После чего запускаешь этот aaa.js.

node aaa.js

И вот присылаешь ту ошибку, которая оно выдала. Ну или просто весь этот aaa.js.

petrukhin commented 11 years ago
dhcp-202-184-wifi:yate petrukhin$ node aaa.js

/Users/petrukhin/Sites/yate/aaa.js:862
})();var data = var data = {
                ^^^
SyntaxError: Unexpected token var
    at Module._compile (module.js:437:25)
    at Object.Module._extensions..js (module.js:467:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.runMain (module.js:492:10)
    at process.startup.processNextTick.process._tickCallback (node.js:244:9)
petrukhin commented 11 years ago

Всё гут У меня просто была задекларировна переменная Спасибо за дебаг