[英]Angular 4 universal app with @angular/cli with third party (library/component) compilation
我正在嘗試使用angular universal
實現服務器端渲染。 跟着這篇文章angular-4-universal-app-with-angular-cli和這個cli-universal-demo項目,我遇到了如下問題。
當節點啟動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
?
因此,我最終通過使用Webpack對其進行了處理來解決類似問題。 我剛剛添加了webpack.config.js並添加了以下內容:
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->白名單區域中添加需要編譯的庫。 就我而言,它是ngx-bootstrap。 然后只需運行webpack即可編譯文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.