webpack.config.js
module : {
loaders : [
{test : /\.js$/, loader : 'babel-loader', include : path.resolve(__dirname, 'src')},
{test : /\.css$/, loader : ExtractTextPlugin.extract('css?minimize&-autoprefixer')},
{test : /\.(tpl|html)$/, loader : 'html'},
{test: /\.(png|jpg|gif)$/,loader: 'url?name=[name].[ext]?[hash]'}
],
},
plugins : [
new htmlWebpackPlugin({
filename : path.resolve(__dirname, '../resources/views/index.blade.php'),
template : 'src/templates/index.html',
hash : true,
files : {
css : ['main.css'],
}
}),
]
使用require('css/index.css') 这样的方法可以达到预期,但如果在html中使用标签<link href='xxx'/>的方法,没有加文件后增加版本号hash。
同样的问题,如果js文件用CDN话,没有自动加上版本号。而且自动生成的js文件main.bundle.js会出现在script标签前面。
<script src="main.bundle.js?fjidosahfsahj456ds4">
<script src="http://xxx.cdn.net/vue.js">
问题是
1.怎样设置使标签链接后自动加上版本号?
2.怎样使自动生成的文件main.bundle.js与cdn共存?
------更新------
如果是CDN上的文件,你是怎么知道它的版本号,webpack也不可能读取CDN上的内容来取content的hash啊?所以,要想利用webpack加上版本号,必须要把CDN上的库纳入webpack的管理,比如说:用
file-loader
搬运文件的时候就可以获取文件的hash值,然后在上线的时候再把该文件覆盖掉CDN上的文件。你是怎么做到让htmlWebpackPlugin自动生成的
<script>
会先于你模板上的<script>
的?我记得要么是生成在<head>
的末尾,要么是生成在<body>
的末尾的呀。当时我为了respond.js的<script>
要怎么放才能后于所有的css(包括htmlWebpackPlugin自动生成的)而烦恼,后来是直接把respond.js的<script>
直接写到<body>
了。