2017-02-28 14 views
0

私はユニットテストのジャスミン2.5、WebPACKの2.2.1、およびカルマ1.3.0を使用して、私の角度2のプロバイダをしています...Pouchdb Angular2のWebPACKの問題

私はすでにイオンプロジェクト内の私のプロバイダを使用してそれを構築していますイオンアプリスクリプトはすべて正常に動作します。私は何かが私はPouchdbとそのコンストラクタを使用

うまくいかない角度WebPACKのプロセスとそれを構築しようとしたとき

は、しかしひどく翻訳され、エラーが起こりました。

Unhandled Promise rejection: pouchdb_browser_1.default is not a constructor ; Zone: ProxyZone ; Task: Promise.then ; Value: TypeError: pouchdb_browser_1.default is not a constructor

私はそれを構築する場合は、ポストビルドプロセスのコードが正常に動作します使用してpouchdb_browserにpouchdb_browser_1.defaultを変更します。

残念ながら、テスト中に実行されるコードは変更できません。

webpack.test.js

const helpers = require('./helpers'), 
webpack = require('webpack'), 
LoaderOptionsPlugin = require('webpack/lib/LoaderOptionsPlugin'); `module.exports = { 

devtool: 'inline-source-map', 



resolve: { 
    extensions: ['.ts', '.js'], 
    modules: [helpers.root('src'), 'node_modules'] 
}, 

module: { 
    rules: [{ 
     enforce: 'pre', 
     test: /\.ts$/, 
     loader: 'tslint-loader', 
     exclude: [helpers.root('node_modules')] 
    }, { 
     enforce: 'pre', 
     test: /\.js$/, 
     loader: 'source-map-loader', 
     exclude: [ 
      // these packages have problems with their sourcemaps 
      helpers.root('node_modules/rxjs'), 
      helpers.root('node_modules/@angular') 
     ] 
    }, { 
     test: /\.ts$/, 
     loader: 'awesome-typescript-loader', 
     query: { 
      // use inline sourcemaps for "karma-remap-coverage" reporter 
      sourceMap: false, 
      inlineSourceMap: true, 
      module: "commonjs", 
      removeComments: true 
     }, 
     exclude: [/\.e2e\.ts$/] 
    }, { 
     enforce: 'post', 
     test: /\.(js|ts)$/, 
     loader: 'istanbul-instrumenter-loader', 
     include: helpers.root('src'), 
     exclude: [/\.spec\.ts$/, /\.e2e\.ts$/, /node_modules/] 
    }], 
}, 

plugins: [ 
    // fix the warning in ./~/@angular/core/src/linker/system_js_ng_module_factory_loader.js 
    new webpack.ContextReplacementPlugin(
     /angular(\\|\/)core(\\|\/)(esm(\\|\/)src|src)(\\|\/)linker/, 
     helpers.root('./src') 
    ), 

    new LoaderOptionsPlugin({ 
     debug: true, 
     options: { 

      /** 
      * Static analysis linter for TypeScript advanced options configuration 
      * Description: An extensible linter for the TypeScript language. 
      * 
      * See: https://github.com/wbuchwalter/tslint-loader 
      */ 
      tslint: { 
       emitErrors: false, 
       failOnHint: false, 
       resourcePath: 'src' 
      }, 

     } 
    }) 
]}; 

すべてのアイデアは、以下を参照してください?

ありがとうございます!

答えて

0

CommonJSからES6モジュールへの移行に問題があります。 PouchDBを推奨するTypeScriptの方法、つまりこれをインポートしていますか?

import * as PouchDB from 'pouchdb'; 
+0

お返事に感謝。それは私の問題を解決する – charlesg