javascript - 在 LiveScript 中使用 prelude-ls

标签 javascript livescript prelude.ls

我只需要在 LiveScript 中使用 prelude-ls 库,而不是在 REPL 中。在我的小测试中,我有 4 个文件:

  • main.htm
  • 应用程序.ls
  • 应用程序.js
  • require.js

我有最新版本的 require.js (2.1.15) 并在我的 main.htm 中加载脚本:

<!DOCTYPE html>
<html>
    <head>
        <script src="./require.js" type="text/javascript"></script>
        <script src="./prelude.js" type="text/javascript"></script>
    </head>
    <body>

    </body>
</html>

然后,我转到我的 application.ls 进行测试:

require! 'prelude-ls'

[1 2 3] |> prelude-ls.map (* 2)

我的编译命令是:

lsc -cwd $myFilePath 它编译得很好。然后,我去那里得到最终结果,进行测试并收到以下错误:

未捕获错误:尚未为上下文加载模块名称“prelude-ls”:_。使用 require([])

好吧,我看到这是一个非常常见的错误,它的更正将发生在 js 文件中,而不是在 ls 中,我点击的链接都没有解决我的问题。我已经在两台电脑上试过了,结果完全一样。

我的最终 js 文件 application.js 是:

// Generated by LiveScript 1.2.0
(function(){
  var preludeLs;
  preludeLs = require('prelude-ls');
  preludeLs.map((function(it){
    return it * 2;
  }))(
  [1, 2, 3]);
}).call(this);

请尽可能帮助我。我真的阅读了 livescript 的所有文档,它没有引用它与 prelude-ls 的首次使用。

最佳答案

我认为您混淆了 AMD.js(此处为 Require.JS)和 CommonJS。 AMD.js 使用

require(['dep1', 'dep2'], function (dep1, dep2) {
  dep1.callSomething();
});

(这允许异步加载)

另一方面,CommonJS(这是 prelude-ls 使用的)基本上是 node 所做的(以及我们用 require! 生成的):

var preludeLs = require('prelude-ls')

关于javascript - 在 LiveScript 中使用 prelude-ls,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25848347/

相关文章:

javascript - 为什么我的内容在使用滚动时消失了

javascript - 根据百分比从一个 rgba 运行到另一个

javascript - 意外的粘贴事件行为

javascript - 在 d3 中使用箭头函数

javascript - 在 AngularJS 中每次调用 Controller 之前清除变量?

javascript - LiveScript - 当有多个回调时如何使用回调运算符?

javascript - 如何运行前奏功能