0

whenjs で requirejs を使用できません。サイトの実行時にファイルが見つからないという 404 エラーが発生します。whenjs READMEの指示に従っています。

まず、git submodule add https://github.com/cujojs/whenプロジェクトのルート ディレクトリで実行します。

次に、「パッケージを使用してローダーを構成する」を行いますapp/public/js/main.js

requirejs.config({
  baseUrl: "js",
  packages: [
    {
      name: "when",
      path: "../../../when",
      main: "when"
    }
  ]
});

これにより、次のディレクトリ レイアウトが残ります。

project-root/
  app/
    public/
      js/
        main.js
        helpers/
          myhelper.js
  when/

myhelper.jswhenjs を必要とするファイル ( ) には次のものがあります。

define(['when'], function(When) {

これによりエラーが発生します

GET http://localhost:4580/js/when/when.js 404 (Not Found)

jsファイルをからproject-root/whenにコピーしようとしましたapp/public/js/libs/when

project/
  app/
    public/
      js/
        main.js
        helpers/
          myhelper.js
        libs/
          when/

次のコードを使用します。

//main.js
requirejs.config({
  baseUrl: "js",
  packages: [
    {
      name: "when",
      path: "libs/when",
      main: "when"
    }
  ]
});

//myhelper.js
define(['when'], function(When) {

同じエラーが発生します:

GET http://localhost:4580/js/when/when.js 404 (Not Found)

何が入っていても宣言myhelper.jsを無視してpackagesいるようです - 他に何かすべきことがあるかどうかわかりませんか? whenjs の指示は to とは言いません。

私はこれを試しました:

//main.js
requirejs.config({
  baseUrl: "js",
  packages: [
    {
      name: "when",
      path: "libs/when",
      main: "when"
    }
  ],
  paths: {
    w: "./libs/when"
  }
});

//myhelper.js
define(['w/when'], function(When) {

これは生成されず、エラーになります - 私はまだライブラリを使用しようとはしていませんが...</p>

Requirejs のバージョンは v2.1.8 で、パッケージに関する API の説明を読んだことがありますが、私はそれほど賢くはありません。whenjs 命令がここで機能しないということは何ですか? pathspackagesオプションを組み合わせるなど、他の設定の組み合わせも試しましたが、役に立ちませんでした。

これは Node または JavaScript のみのプロジェクトではないため、ディレクトリの大幅な移動はオプションではありません。

どんな助けでも大歓迎です。

4

1 に答える 1

0

pathsのプロパティを使用してみてください: の下にrequirejs.config置くと、次のことを試すことができます。when.jsjs/libs/when/when.js

    requirejs.config({
        paths: {
            'when': 'libs/when/when'
        }
    });
define(['when'], function(When) {...

JavaScript タグに , が含まれている場合は必要ありませんが、必要に応じてbaseUrl指定できます。

これでライブラリの読み込みの問題は解決するはずですが、when.js が AMD をサポートしていない場合はshim、構成に次のように追加できます。

shim: {
    'when': {
        exports: 'When'
    }
}
于 2013-10-25T07:17:36.100 に答える