Добавьте стороннюю библиотечную переменную в webpack.server.config в angular 6 - PullRequest
0 голосов
/ 11 марта 2019

Я пытаюсь превратить мое угловое приложение в SEO-дружественное с помощью веб-пакета. Я успешно запустил «npm run build: prod» и «npm run server». Но когда я запускаю свое приложение, я сталкиваюсь с «bxslider is not определен» в файле server.js, который генерируется webpack.

Но я уже определил эту переменную в угловой составляющей.

Вот мой код. webpack.server.config.js

const path = require('path');
const webpack = require('webpack');
var node_modules_dir = path.join(__dirname, 'node_modules');

var config = {
entry: {
   server: './server.ts',
},
target: 'node',
resolve: { 
   extensions: ['.ts', '.js'],
alias:{
  bxslider:'./src/assets/js/bxslider.js'
 }
},
externals: [/(node_modules|main\..*\.js)/,],
output: {
  libraryTarget: 'commonjs2',
  path: path.join(__dirname, 'dist'),
  filename: '[name].js'
},
module: {
  rules: [
    { test: /\.ts$/, loader: 'ts-loader' }
  ]
},
optimization: {
  minimize: false
},
plugins: [
new webpack.ContextReplacementPlugin(
  /(.+)?angular(\\|\/)core(.+)?/,
  path.join(__dirname, 'src'), // location of your src
  {} // a map of your routes
),
new webpack.ContextReplacementPlugin(
  /(.+)?express(\\|\/)(.+)?/,
  path.join(__dirname, 'src'),
  {}
),
new webpack.ProvidePlugin({
   $: 'jquery',
   jQuery: 'jquery',
   "window.jQuery": "jquery"
}),
new webpack.DefinePlugin({

})
]
}
module.exports = config;

Это мой угловой компонент, в котором я определил bxslider сверху

import { Component, OnInit } from '@angular/core';
import { CommonService } from '../common/common.service';
declare var $:any;
import { Subscription }   from 'rxjs';
import { Router , ActivatedRoute} from '@angular/router';
declare var $:any;
declare var bxslider: any;

@Component({
  selector: 'app-layout',
  templateUrl: './auth-layout.component.html'
})
export class AuthLayoutComponent implements OnInit {
   subscription: Subscription;
   constructor(private commonService: CommonService, private router: Router) 
    { }

      ngOnInit() {

      }


  }

И я сталкиваюсь с тем, что bxslider не определен в файле server.js в папке dist. Может кто-нибудь сказать мне, как добавить стороннюю библиотеку в webpack или определенную переменную в файле server.js

Это было бы очень полезно для меня.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...