Я запускаю веб-пакет и использую prerender-loader для рендеринга семантического статического HTML вместо практически пустой HTML-страницы.
Я могу npm run build
просто отлично, и я вижу нужный HTML в выводе.
Однако, когда я пытаюсь npm start
, я получаю эту ошибку:
ERROR in ./src/index.html (./node_modules/prerender-loader/dist/prerender-loader.js?string!./src/index.html)
Module build failed (from ./node_modules/prerender-loader/dist/prerender-loader.js):
Error: Error: Module not found. attempted require("url")
Я не нашел много ресурсов по этому вопросу. Эта ссылка предлагает предложения, но не дает однозначного ответа.
My webpack.config.js :
/* eslint-env node */
const htmlPlugin = require('html-webpack-plugin');
const miniCssExtractPlugin = require('mini-css-extract-plugin');
const optimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin');
/* eslint-env node */
const htmlPlugin = require('html-webpack-plugin');
const miniCssExtractPlugin = require('mini-css-extract-plugin');
const optimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin');
module.exports = {
entry: './src/main.js',
output: {
filename: 'bundle.js',
path: `${__dirname}/build`
},
optimization: {
minimizer: [
new optimizeCSSAssetsPlugin({}),
]
},
plugins: [
new htmlPlugin({
template: '!!prerender-loader?string!./src/index.html',
}),
new miniCssExtractPlugin({ filename: 'main.css' })
],
module: {
rules: [
{
test: /.html$/,
use: {
loader: 'html-loader'
}
},
{
test: /\.css$/,
use: [
{
loader: 'style-loader'
},
miniCssExtractPlugin.loader,
{
loader: 'css-loader'
},
{
loader: 'postcss-loader'
}
]
},
{
test: /\.(jpg|png|svg)$/,
use: {
loader: 'url-loader',
options: {
limit: 5000
}
}
}
]
}
};
Спасибо за вашу помощь.