编译导入其他js文件的LiveScript
Compile LiveScript that imports other js files
我可能误解了 LiveScript 的工作原理,但我应该如何在 .ls 文件中导入另一个 js 文件并使其编译?例如,我想像这样访问 DOM 文档:
el = document.getElementById 'app'
并加载 mithril.js(在同一个本地目录中):
require! 'mithril.js'
但是编译时像:
lsc -c file.ls
这目前告诉我它找不到 'document' 或任何其他秘银特定变量(例如 'm')。
找不到 document
?你不是 运行 你在浏览器中的代码吗?
require! 'mithril.js'
编译为 var mithril = require('mithril.js');
你想调用秘银 m
,而不是 mithril
,所以这样做
require! mithril: m
或这个 m = require 'mithril'
如果您将文件编译为 Javascript 并在浏览器中 运行 运行它们,那么您不需要要求 Mithril。
只需确保它已添加到您的脚本之前。
例如:
# file.ls
element = document.get-element-by-id 'example'
m.module element app
然后运行lsc -c file.ls
// file.js
(function() {
var element = document.getElementById('example');
m.module(element, app);
}).call(this);
现在这只是一个普通的 JS 文件,其中包含一些对 Mithril 变量的引用。我们需要记住,当我们 link 他们对我们的 HTML.
<script src='https://cdnjs.cloudflare.com/ajax/libs/mithril/0.1.34/mithril.js'></script>
<script src='file.js'></script>
重要的是秘银排在第一位。
如果您需要 Mithril,以便在浏览器之外使用它,那么您必须稍微重新调整您的 require 语句。
如果您查看 line 34 of the Mithril source, you'll see that m
is just a local function. Then on line 1066,它会尝试创建一个全局变量 m
,前提是 window
存在。它不会在 Node/IO.js 中执行,因此它将值附加到 module.exports
.
这意味着您必须使用 require
:
返回的值
m = require 'mithril.js'
m.module! # works!
我可能误解了 LiveScript 的工作原理,但我应该如何在 .ls 文件中导入另一个 js 文件并使其编译?例如,我想像这样访问 DOM 文档:
el = document.getElementById 'app'
并加载 mithril.js(在同一个本地目录中):
require! 'mithril.js'
但是编译时像:
lsc -c file.ls
这目前告诉我它找不到 'document' 或任何其他秘银特定变量(例如 'm')。
找不到 document
?你不是 运行 你在浏览器中的代码吗?
require! 'mithril.js'
编译为 var mithril = require('mithril.js');
你想调用秘银 m
,而不是 mithril
,所以这样做
require! mithril: m
或这个 m = require 'mithril'
如果您将文件编译为 Javascript 并在浏览器中 运行 运行它们,那么您不需要要求 Mithril。
只需确保它已添加到您的脚本之前。
例如:
# file.ls
element = document.get-element-by-id 'example'
m.module element app
然后运行lsc -c file.ls
// file.js
(function() {
var element = document.getElementById('example');
m.module(element, app);
}).call(this);
现在这只是一个普通的 JS 文件,其中包含一些对 Mithril 变量的引用。我们需要记住,当我们 link 他们对我们的 HTML.
<script src='https://cdnjs.cloudflare.com/ajax/libs/mithril/0.1.34/mithril.js'></script>
<script src='file.js'></script>
重要的是秘银排在第一位。
如果您需要 Mithril,以便在浏览器之外使用它,那么您必须稍微重新调整您的 require 语句。
如果您查看 line 34 of the Mithril source, you'll see that m
is just a local function. Then on line 1066,它会尝试创建一个全局变量 m
,前提是 window
存在。它不会在 Node/IO.js 中执行,因此它将值附加到 module.exports
.
这意味着您必须使用 require
:
m = require 'mithril.js'
m.module! # works!