2016-09-09 5 views
0

私は流星1.4.1.1アプリを持っています。[email protected]です。メイン流星アプリのファイルに次の式を書き込むと、すべてが機能します。node_modulesのユートロスでデストラクションの割り当てが機能していない

const {a, b} = {a:1, b:2};

しかし、同じ式がnode_modules /いくつかのモジュールでJSファイル内にあるときに、流星アプリは次のエラーで失敗します。

W20160910-00:34:14.284(5.5)? (STDERR) const {a,b} = {a: 1, b: 2}; 
W20160910-00:34:14.284(5.5)? (STDERR)  ^
W20160910-00:34:14.285(5.5)? (STDERR) 
W20160910-00:34:14.285(5.5)? (STDERR) SyntaxError: Unexpected token { 
W20160910-00:34:14.285(5.5)? (STDERR)  at exports.runInThisContext (vm.js:53:16) 
W20160910-00:34:14.285(5.5)? (STDERR)  at Module._compile (module.js:373:25) 
W20160910-00:34:14.285(5.5)? (STDERR)  at Object.Module._extensions..js (module.js:416:10) 
W20160910-00:34:14.286(5.5)? (STDERR)  at Module.load (module.js:343:32) 
W20160910-00:34:14.286(5.5)? (STDERR)  at Module.Mp.load (/home/chaudharyp/.meteor/packages/babel-compiler/.6.9.1.s4764v++os+web.browser+web.cordova/npm/node_modules/reify/node/runtime.js:16:23) 

誰もがこれで私を助けることができます?ありがとう。

+0

モジュールが蒸散していないように見えます。 –

+0

はい。これは、babelが構造化代入構文を理解できないためです。右?しかし、私が理解できないのは、なぜこれが* node_modules *フォルダのモジュールでのみ起こり、メインの流星アプリファイルでは起こっていないかということです。 – chaudharyp

+2

バベルは依存モジュールで動作するように構成されていない可能性があります。通常、依存関係は公開前に別々にコンパイルされます。 – loganfsmyth

答えて

1

通常、npmパッケージはes5で配布されるため、es6パッケージは公開される前に翻訳されます。したがって、ほとんどのビルド設定は、babelにnode_modulesフォルダを無視するように指示します。これは重要なことです。なぜなら、あなたのnpmパッケージをすべて解凍しようとするとビルドダウンを著しく遅くするからです。私はこの流星の設定に精通していないが、私はそれがこの一般的なプラクティスに従っていると確信しています。

通常、node_modulesフォルダ内では、通常、あなたは直ちに回避しません。独自のパッケージを開発しており、変更するたびに公開し更新する必要がない場合は、npm linkを試してください。次に、あなたのパッケージの "main"を/ distのようなフォルダに置き換えます。あなたがあなたのパッケージプロジェクトに乗り換えたら、あなたの流星プロジェクトが更新を集めます。

関連する問題