【问题标题】:Vue CLI 3 using index pug to generate pug templateVue CLI 3 使用 index pug 生成 pug 模板
【发布时间】:2019-01-16 08:04:37
【问题描述】:

我正在使用带有内置 Webpack 的 Vue CLI 3,并且我正在尝试使用 index.pug 作为源索引模板而不是默认的 HTML。我想输出一个 index.pug 文件作为 webpack 进程的结果,以便 Node 服务器进一步填充动态数据。

这是我的vue.config.js

'use strict'
const path = require('path')
const webpack = require('webpack')
const HtmlWebpackPlugin = require('html-webpack-plugin')

const resolve = (dir) => {
  return path.join(__dirname, '.', dir)
}

module.exports = {
  outputDir: path.resolve(__dirname, 'server/app'),
  baseUrl: process.env.ENV === 'production' ? process.env.VUE_APP_CDN_URL + 'app/' : '/',
  configureWebpack: {
    context: path.resolve(__dirname, './'),
    entry: {
      app: './client/main.js'
    },
    resolve: {
      extensions: ['.js', '.vue', '.json'],
      alias: {
        'vue$': 'vue/dist/vue.esm.js',
        '@': resolve('client')
      }
    },
    plugins: [
      new HtmlWebpackPlugin({
        template: './public/index.pug',
        inject: true
      }),
    ]
  },
  chainWebpack: config => {
    config.module
      .rule('pug')
      .test(/\.pug$/)
      .use('pug-loader')
        .loader('pug-loader')
  }
}

不幸的是,上面失败了:

Error: Child compilation failed:
Module parse failed: Unexpected token (1:0)
You may need an appropriate loader to handle this file type.

一些想法和假设:

不幸的是,关于这个主题的在线文档并不多,所以希望在这里得到帮助。谢谢。

【问题讨论】:

    标签: webpack-4 vue-cli-3 pug-loader


    【解决方案1】:

    可能不是直接答案,但我们必须将生成的脚本添加到 JSP。另一种方法是使用ManifestPlugin 并为每个条目文件创建一个生成的资产列表并将它们附加到 index.pug。

    我有一个未解决的问题,但您可以使用他们的 generate 函数来想出一些方法来按照您喜欢的方式对资产进行分割。

    【讨论】:

    • 这可以工作,但似乎解决了一些应该可以通过 VueCLI/Webpack 配置的问题。您是否有关于如何使用 ManifestPlugin 提取资产并注入 index.pug 的代码示例?
    • 是的,支持可配置的配置会很好。在此之前,请查看生成深层链接,该链接展示了如何使用 generate 函数创建自己的清单。
    猜你喜欢
    • 2019-04-20
    • 2018-12-06
    • 2019-12-14
    • 2018-06-30
    • 2018-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多