- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想我将从我的 webpack 配置开始。
const webpack = require('webpack');
const path = require('path');
/**
* Environment
*/
const nodeEnv = process.env.NODE_ENV || 'development';
const isProduction = nodeEnv === 'production';
const isDevelopment = !isProduction;
const HtmlWebpackPlugin = require('html-webpack-plugin');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const sourcePath = path.join(__dirname, 'assets');
const buildPath = path.join(__dirname, 'dist');
const extractSass = new ExtractTextPlugin({
filename: '[name].[contenthash].css',
disable: isDevelopment
});
/**
* Plugins
*/
const plugins = [
new HtmlWebpackPlugin({
template: path.join(sourcePath, 'index.html'),
}),
extractSass
];
if (isProduction) {
} else {
plugins.concat([
new webpack.HotModuleReplacementPlugin(),
]);
}
module.exports = {
entry: ['./assets/app.js', './assets/app.scss'],
devtool: isProduction ? 'eval' : 'source-map',
plugins: plugins,
module: {
rules: [{
test: /\.scss$/,
use: extractSass.extract({
use: [{
loader: "css-loader"
}, {
loader: "sass-loader"
}],
// use style-loader in development
fallback: "style-loader"
})
}]
},
output: {
filename: 'bundle.js',
path: buildPath
},
devServer: {
contentBase: buildPath,
port: 9000
}
};
这在 webpack 开发服务器上运行时一切正常,但我试图弄清楚它如何在生产环境中组合在一起。
如您所见,根据 sass-loader 文档,我正在创建一个名为 [name].[contenthash].css
的文件如果NODE_ENV
设置为 production
.我喜欢基于内容哈希提供文件的想法,因为我喜欢完整性。
我遇到的困难是理解如何将文件名和内容哈希传递到我正在创建的 index.html 模板中,这样我就可以 <link>
样式表。
我只是不明白这两个组件是如何组合在一起来生成可发布的版本的。 HtmlWebpackPlugin
在输出目录中生成了一个 .html,但显然它对在哪里可以找到它的样式没有天生的理解。
最佳答案
您的配置似乎是正确的。
Is there any way to pass that file name into the HTML template on production?
应该发生的是 HtmlWebpackPlugin
应该在您的 buildPath
目录中创建一个新的 index.html
文件,该文件具有生成的bundles 自动注入(inject)其中(例如生成的 CSS bundle 将被注入(inject)到 head
标签中,生成的脚本 bundle 将注入(inject)到 body
标签的底部)
除此之外,只需将 dist/index.html
提供给访问您网站/应用程序的任何人即可。所以答案
Is it a server side thing?
是的。
尝试在没有开发服务器的情况下进行构建,只需运行 webpack
,这样您就可以看到配置的输出(开发服务器在内存中构建东西,所以您实际上看不到他们)
关于javascript - 内容哈希、ExtractTextPlugin 和 HtmlWebpackPlugin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42939125/
以下是 webpack 配置条目: entry:{ background: './app/main/background.js', options: './app/main/optio
我需要缩小 2 个 JS 文件并将其中一个内联到 HTML 模板中。我有以下目录结构: - src ---- page.html ---- script-to-inline.js ---- scrip
HtmlWebpackPlugin 不会向 webpack 输出目录输出任何内容:我有这样的设置: var config = { context: __dirname + '/client',
我的环境如下 webpack 角度2 HtmlWebpackPlugin 我提取的 webpack.config.js 文件如下 entry: { 'polyfills': './src/poly
我正在尝试使用 webpack 进行代码/包分割,但是遇到了一个问题。据我所知,HTMLWebpackPlugin 应该动态地将脚本标签插入到 HTML 文件中。该 HTML 文件默认为 index.
我正在从webpack 3迁移到4,这很痛苦;) 我收到此错误: this.htmlWebpackPlugin.getHooks is not a function 我正在尝试升级所有插件,但也许我在
我有很多 HTML 文件需要处理,我正在使用 HtmlWebpackPlugin来生成它们。以下是我的 webpack 中的配置之一: new HtmlWebpackPlugin({
我对 webpack 和其他东西非常陌生,我需要一个解决方案来分离 index.html 的 base href 和 src >bundle.js,用于开发和生产,因为两者是不同的。 为了发展 基本
如何组合多个htmlwebpackplugin代码,写出更优雅的代码? 我需要一个解决方案,可以让我免于每次都重复这个 new HtmlWebpackPlugin({//..somecode}) 部分
给定输入/输出,如 entry: { app: 'src/client/app.js', unauthApp.js: 'src/client/unauth.js' }, outpu
我正在尝试使用带有 HtmlWebpackPlugin 插件的 Webpack 缩小我的 html 文件。我设法将 index.html 文件制作到我的 dist 加载器中,但我在缩小它时遇到了一些麻
我按照这个例子(http://courses.reactjsprogram.com/courses/reactjsfundamentals/lectures/760301)启动一个reactj应用程序
基于本教程: using html-webpack-plugin to generate index.html 如果您添加 标题 html-webpack-plugin 选项的选项,如下所示: new
我正在使用 HtmlWebpackPlugin 将 javascript 注入(inject)到我的模板文件中: ... ... inlineScr
我想我将从我的 webpack 配置开始。 const webpack = require('webpack'); const path = require('path'); /** * Envir
当使用HtmlWebpackPlugin生成dist/index.html文件时,我们可以使用inject选项自动创建 javascript 捆绑文件的标签: new HtmlWebpackPlugi
我正在努力提高我们网站的加载速度。所以我一直在忙于我们的 webpack.config。 经过多次修改后,我现在可以正确分离和散列模块。我还使用 HtmlWebpackPlugin 从模板中自动生成
这是我的 webpack.config.js const path = require("path"); const HtmlWebpackPlugin = require("html-webpack
我的 package.json 的一个片段 "vue": "^2.6.11", "@vue/preload-webpack-plugin": "^2.0.0", vue.config.js 文件, c
我正在使用带有 HTMLWebPackPlugin 的 Webpack 4。我目前正在处理近 30 个不同的页面,并且正在向前推进。这是我在代码中的示例... new HTMLWebp
我是一名优秀的程序员,十分优秀!