0

私はRequireJSと一緒にbabel.jsを試しています。Require が指定されていますが、悲しいことにそれを削除することはできません :( babeljs ドキュメントで、--modules amdES6 コードを AMD 定義にトランスパイルする cli フラグがあることを発見しました。構造は次のとおりです。

.
|-- build.sh
|-- index.html
|-- js
|   |-- assets
|   |   |-- asseta.es6
|   |   |-- asseta.js
|   |   |-- bootstrap.es6
|   |   `-- bootstrap.js
|   `-- main.js
`-- node_modules

index.html

<body>
    <p>Hello world! This is HTML5 Boilerplate.</p>
    <script type="text/javascript" src="node_modules/requirejs/require.js" data-main="js/main.js"></script>
</body>

main.js

(function() {
  require.config({
    baseUrl: "js/assets"
  });
  require(["bootstrap"], function(bootstrap) {
    bootstrap.ready(function(sum) {
      console.log(sum(1,2,3));
    });
  });
}());

bootstrap.es6

import asseta from 'asseta';

console.log(asseta); // undefined :((

export function ready(cb) {
  cb(asseta.sum);
}

asseta.es6

export function sum(...nums) {
  return nums.reduce(((acc, num) => acc += num), 0);
}

アプリケーションに関する私の問題は、アプリケーションを適切にmain.jsロードbootstrapすることです。ログアウトすると、ready 関数を含む既存のオブジェクトを取得しました-> OKしかし、bootstrapモジュールはモジュールを適切にロードできません。asseta私はそのために未定義になります:(

私は何が欠けていますか?

追加情報

このbuild.shスクリプトは、.es6 ファイルのみを ES5 .js にトランスパイルします。

#!/bin/sh

babel --modules amd js/assets/bootstrap.es6 -o js/assets/bootstrap.js
babel --modules amd js/assets/asseta.es6 -o js/assets/asseta.js
4

1 に答える 1

0

ユーザーエラーでした。のようなdefaultキーワードを逃したasseta.es6

export default function sum(...nums) {
  return nums.reduce(((acc, num) => acc += num), 0);
}

または、それを修正する他のアプローチは、defaultキーワードを省略し、次のようにassetaリファクタリングbootstrapすることです。

import { sum } from 'asseta';
于 2015-03-17T09:42:13.820 に答える