2017-06-10 24 views
0


angular universalを使用してサーバー側のレンダリングを実装しようとしています。この投稿angular-4-universal-app-with-angular-cliとこのcli-universal-demoプロジェクトに続いて、以下のような問題が発生しました。サードパーティ(ライブラリ/コンポーネント)のコンパイルで@ angular/cliの角度4の汎用アプリケーション

ノードがdist/server.jsを開始すると、それはエラーを示しています

(function (exports, require, module, __filename, __dirname) 
{ export * from ‘./scn-filter-builder’ 

scn-filter-builderは私のモジュールです。 angular2/typescriptに書かれており、node.jsはそれを理解していません。

質問はuniversalに設定できるので、パッケージをnode_moduleからes5までコンパイルしますか?または、コンポーネントをes5にコンパイルする必要がありますか?

答えて

0

私はWebpackでコンパイルすることでこれに似たものに取り組んだ。 - >ホワイトリストエリア

const path = require('path'); 
const nodeExternals = require('webpack-node-externals'); 

module.exports = { 
    entry: { 
    server: './src/server.ts' 
    }, 
    resolve: { 
    extensions: ['.ts', '.js'] 
    }, 
    target: 'node', 
    externals: [nodeExternals({ 
    whitelist: [ 
     /^ngx-bootstrap/ 
    ] 
    })], 
    node: { 
    __dirname: true 
    }, 
    output: { 
    path: path.join(__dirname, 'server'), 
    filename: '[name].js', 
    libraryTarget: 'commonjs2' 
    }, 
    module: { 
    rules: [ 
     { test: /\.ts$/, loader: 'ts-loader' } 
    ] 
    } 
} 

nodeExternalsでコンパイルする必要があり、ライブラリを追加します。私は次のようにwebpack.config.jsを追加しました。私の場合、それはngx-bootstrapでした。その後、webpackを実行してファイルをコンパイルします。