首页 > 解决方案 > Webpack Aurelia - 如何配置并非所有块都与 Aurelia 捆绑在一起?

问题描述

我正在使用 Aurelia 的 Webpack 示例(https://aurelia.io/docs/build-systems/webpack/a-basic-example#basic-config-example)来设置我的 Webpack 配置:

const { AureliaPlugin } = require('aurelia-webpack-plugin')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const { resolve } = require('path')

module.exports = function(mode) {
  return {
    mode: mode || 'development',
    resolve: {
      extensions: ['.ts', '.js'],
      modules: [resolve(__dirname, 'src'), resolve(__dirname, 'node_modules')],
    },
    entry: {
      addOn: './dist/ContentScript/WebExtContentScriptApp.js',
      // the 'aurelia-bootstrapper' entry point is responsible for resolving your app code
      app: ['aurelia-bootstrapper'],
    },
    output: {
      filename: '[name].js',
      path: resolve(__dirname, 'dist'),
    },
    watch: mode === 'development',
    devtool: mode === 'development' ? 'inline-source-map' : 'source-map',
    devServer: {
      contentBase: './dist',
    },
    module: {
      rules: [
        { test: /\.html$/i, loader: 'html-loader' },
        { test: /\.ts$/i, loader: 'ts-loader' },
      ],
    },
    plugins: [
      // the AureliaPlugin translates Aurelia's conventions to something Webpack understands
      // and must be included in order for Webpack to work
      new AureliaPlugin(),
      new HtmlWebpackPlugin({
        template: 'index.ejs',
        chunks: ['app'],
        metadata: { dev: mode !== 'production' },
      }),
    ],
  }
}

我添加了另一个entry配置addOn。现在运行webpack会按预期生成两个块:appaddOn. 唯一出乎意料(不想要)的是,两个块都与aurelia模块捆绑在一起。仅app应与aurelia模块捆绑在一起。

我如何确定哪个块应该与aurelia模块捆绑在一起?

标签: webpackaurelia

解决方案


可以将entryto use 传递给AureliaPluginusing 对象字面量的构造函数:

new AureliaPlugin({
  entry: 'app',
})

entry选项和其他选项可以在这里找到:https ://github.com/aurelia/webpack-plugin/wiki/AureliaPlugin-options 。


推荐阅读