我正在使用带有内置 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.
一些想法和假设:
configureWebpack
似乎设置正确(https://cli.vuejs.org/guide/webpack.html#chaining-advanced)- HtmlWebpackPlugin可能不是要使用的插件,因为它的目的是生成 HTML 文件作为输出,但我什至无法成功完成
不幸的是,关于此主题的在线文档并不多,因此希望在这里获得帮助。谢谢。