2

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テストするために my に移動します。

require! 'prelude-ls'

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

私のコンパイルコマンドは次のとおりです。

lsc -cwd $myFilePath そして、それはうまくコンパイルされます。次に、そこに移動して最終結果を取得し、テストして次のエラーを受け取ります。

Uncaught Error: Module name "prelude-ls" has not been loaded yet for context: _. Use require([])

まあ、これは非常に一般的なエラーであり、その修正はlsではなくjsファイルで行われることがわかりました。また、たどったリンクのどれも問題を解決しませんでした。2台のコンピューターで試しましたが、まったく同じ結果が得られました。

私の最終的な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 での最初の使用について言及していません。

4

2 に答える 2

1

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')
于 2014-09-15T12:42:15.820 に答える
0

最初は理解できませんでした。正解ですが、答えがわかりにくいと思います。まとめさせてください。

実際には非常にシンプルで、ドキュメントのように機能します

prelude-lsnpm または bower でインストールする必要があります。ファイルを含める必要がありますprelude-browser.js(でprelude-ls/browser/prelude-browser.js)。

次に、コードの先頭にプレリュードが必要です。

prelude = require 'prelude-ls'

などを呼び出すことができますprelude.sum

2 番目のオプションは、次のように、必要な関数を正確にインポートすることです。

{map, filter, lines} = require 'prelude-ls'

直接呼び出すことができます。

それは gulp と angularjs 参考までに動作します。

この答えは明らかです。

于 2015-10-27T15:55:07.023 に答える