如何立即制作.go()的LiveScript脚本?

时间:2015-05-20 00:00:40

标签: javascript livescript

(注意:我也在https://github.com/gkz/LiveScript/issues/731上提出了这个问题)

当我直接在html文件中使用LiveScript时,我无法立即运行lifecript代码。例如;

...
<script src="livescript.js"></script>

<div class="my_target"></div>

<script type="text/ls">
# my livescript code will interact with div.my_target
</script>

<script>
/* a javascript code that will interact with div.my_target
</script>

<script type="text/ls">
# my livescript code does something else
</script>

<script>
    var LiveScript = require("LiveScript");
    LiveScript.go();
</script>

LiveScript代码都将运行,但与div.my_target交互的LiveScript代码将与javascript代码 AFTER 进行交互,而不是 BEFORE

如果我定义

<script>
    var LiveScript = require("LiveScript");
    LiveScript.go();
</script>
每次定义LiveScript代码后,

部分,然后所有LiveScript代码,直到此定义将运行多次。

### livescript code 1
### LiveScript.go()
...
### livescript code 2
### LiveScript.go()
...
### livescript code 3
### LiveScript.go()
...

执行此代码时:

  • livescript code 1将运行3次,首先会在定义后立即运行
  • livescript code 2将运行2次,首先会在定义后立即运行
  • livescript code 3将运行1次,这将在定义
  • 之后立即运行

如果是这样的话,LiveScript将在html中使用更容易,并且将像一样使用

...
<script src="livescript.js"></script>
<script>
    var LiveScript = require("LiveScript");
    LiveScript.doSomeMagic_Kaboooommm();
</script>

...
<script type="text/ls">
# my livescript code
</script>

... more html

<script type="text/ls">
# my livescript code
</script>

...

<script type="text/ls">
# my livescript code
</script>
...

有没有这样做?

1 个答案:

答案 0 :(得分:0)

最好将.ls文件编译为.js并引用.html页面中的JavaScript文件。

lsc livescript编译器有选项可以帮助解决此问题,例如watch(w)参数与compile(c)参数相结合,运行lsc -wc .将会监听所有.ls当前目录及下面的文件,并在您进行更改时编译它们。

例如,src/index.ls将编译为src/index.js

我认为不会很快支持使用LiveScript内联功能。