gpt4 book ai didi

javascript - 如何使用 Webpack 2.0 创建带有散列资源名称的 pug 文件?

转载 作者:行者123 更新时间:2023-11-29 10:31:51 24 4
gpt4 key购买 nike

我的目录结构如下。

/public
(git-ignored files)
/src
index.js
/views
index.pug

server.js
webpack.config.js

索引.pug

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<link href="/public/style.css" rel="stylesheet" />
script.
var LANGUAGES = '#{languages}';
</head>

<body>
<div id="body"></div>

<script type="text/javascript" src="/public/bundle.js"></script>
</body>
</html>

这里的关键是#{languages}直接被server.js使用。

服务器.js

...

app.use('/public', express.static(__dirname + '/public'));

app.set('view engine', 'pug');
app.set('views', './views');

app.get('*', function(req, res, next) {
const cookieLanguage = req.cookies[key];
const languages = cookieLanguage
? cookieLanguage
: req.headers['accept-language'];

res.render('index', { languages });
});

...

这意味着index.pug应该是.pug,而不是.html,并且在./views server.js 直接使用的目录。 (languages 值可以根据请求 header 值更改,如上所示。)AFAIK、pug-html-loaderpug-loader.pug 文件转换为静态 .html 文件。

到目前为止,我一直在使用静态 style.cssbundle.js 文件名,它工作没有任何问题,但现在我想要我的 index.pug 文件以具有散列的源文件名。有点像

index.pug(所需)

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<link href="/public/main.cdd8fd4b583e80bf95fc.css" rel="stylesheet" />
script.
var LANGUAGES = '#{languages}';
</head>

<body>
<div id="body"></div>

<script type="text/javascript" src="/public/main.cdd8fd4b583e80bf95fc.js"></script>
</body>
</html>

我已经可以通过 webpack.config.js 创建那些哈希文件名。

webpack.config.js

...

(somewhere)

new ExtractTextPlugin({
filename: '[name].[hash].css'
})

...

(somewhere)

output: {
path: path.join(__dirname, 'public'),
filename: '[name].[hash].js',
publicPath: '/public/'
},

...

我看到 html-webpack-plugin 使用 .html 扩展名执行此操作,但我找不到使用 .pug< 执行此操作的示例 输出。有什么建议或解决方法吗?

最佳答案

我最近写了一个 webpack 插件,我认为它可以解决你的问题。它创建一个 .pug 文件,其中包含脚本标签列表,包括哈希包名称。

只需将它包含在您的 index.pug 中:

包含你的路径/dist/pug-manifest.pug

https://www.npmjs.com/package/webpack-pug-manifest-plugin

关于javascript - 如何使用 Webpack 2.0 创建带有散列资源名称的 pug 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44235762/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com