現在、私のプロジェクトはfeather-cliに基づいており、 require
の代わりにimport、exportモジュールを使用する必要があります
しかし、インポート、エクスポートを使用しようとすると、エラーSyntaxError: Unexpected token export
が発生しました。
いくつかの問題により、featherがcommonjsに戻るのを見ました。
https://github.com/feathersjs/feathers/issues/608が承認してマージした後、インポート、エクスポートをエラーなしで使用できることを理解しました。
だから私の質問は、 require
の代わりにインポートとエクスポートを使用するために何ができるかということです。
babel-register
を使用して、実行中にコードをブートストラップすることができます。
// package.json
}
"dependencies": {
"babel-preset-es2015": "^6.24.1",
"babel-register": "^6.24.1",
...
}
// .babelrc
{
"presets": ["es2015"]
}
md5-d9dbd6153ad663c52db1c46098188247
```js
// server.js < your actual code here
import express from 'express';
export const run () => {
const app = express()
......
}
または、実行時にbabel-register
を使用したくない場合は、 babel
を使用してコードをトランスパイルすることもできます。
生成されたアプリケーションは、常に最新バージョンのNodeがサポートするもののみを使用します(次のバージョンでasync/await
を使用するように更新する可能性があります)。 デフォルトでBabelを使用しない理由の詳細については、 https://github.com/feathersjs/generator-feathers/issues/31と、 https ://github.com/feathersjs/feathers-cli/issuesを参照してください。
要約すると、ESモジュールをBabelで使用すると、実装の詳細(特にノードの場合)が完全に確定されていない仕様を使用するためだけに、起動/コンパイル時間が長くなり、メモリ消費量が増える可能性があります。
それでも使用したい場合は、 @ zusamannが指摘したBabelセットアップを使用して、requiretoESモジュールトランスフォーマーを介して生成されたコードを実行できます。
この問題は、クローズされた後、最近のアクティビティがないため、自動的にロックされています。 関連するバグについては、この問題へのリンクを含む新しい問題を開いてください。
最も参考になるコメント
babel-register
を使用して、実行中にコードをブートストラップすることができます。または、実行時に
babel-register
を使用したくない場合は、babel
を使用してコードをトランスパイルすることもできます。