10

公式の Ember Cli ドキュメントに記載されているように、特に標準的な AMD のケースについて、ember-cli での依存関係のインポートについて困惑しています。このドキュメントは多くの例を提供しておらず、読者が AMD について十分な知識を持っていることを前提としているように思われますが、私には当てはまりません。私の直接の使用例は import math.js です。残念ながら、math.js の公式ドキュメントには、 Ember Cli を使用したインポートに関する例が記載されていません。次に、比較的明確な例が記載されたこの投稿を見つけました。特に、次の例は非常に関連性があるようです。

app.import({
  development: 'vendor/lodash/dist/lodash.js',
  production:  'vendor/lodash/dist/lodash.min.js'
}, {
  'lodash': [
    'default'
  ]
}); 

次に、以下のように math.js で同様のことを行いました。

app.import({
  development: 'bower_components/mathjs/dist/math.js',
  production:  'bower_components/mathjs/dist/math.min.js'
}, {
  'mathjs': [
    'default'
  ]
});

しかし、うまくいきません。で使ってみたところ

import mathjs from 'mathjs'

エラーが発生しました。最終的に、次のソリューションを使用しました。

// Brocfile.js
app.import('bower_components/mathjs/dist/math.min.js');

// some controller.js
var math = window.math

上記の解決策は機能しますが、名前の競合が発生する可能性があるため、好きではありません。さらに、math.js のドキュメントに基づいて、標準の AMD タイプのインポートをサポートする必要があるようです。

だから、私の質問は次のとおりです。
1.lodash上記の例では、'default'どういう意味ですか? それは、対応するモジュールでエクスポートされたものへの一般的な参照ですか? 一般的に使用できるかどうか (math.js など) を確認するにはどうすればよいですか?
2.モジュールがrequire.jsをサポートしている場合、それは標準のAMDモジュールであるというのは本当ですか? もしそうなら、以下のようなコードが与えられます:

require.config({
  paths: {
    mathjs: 'path/to/mathjs',
  }
});
require(['mathjs'], function (math) {
  // use math.js
  math.sqrt(-4); // 2i
});

どうすればEmber Cliコードにマップできますか?

4

1 に答える 1