Django + Webpack + Vue + Code splitting - 如何更改块文件的负载 url
Django + Webpack + Vue + Code splitting - How to change load url of chunk files
我正在将 Django 与 Webpack 和 Vue 一起使用,并在 Webpack 中进行代码拆分。 Webpack 从 .vue 文件的源代码中拆分块文件。但是,我无法在 Web 浏览器上加载块文件,因为 url 在我的项目结构中不正确。我想更改块文件的负载 url,但我不知道这些。如何更改块文件的负载 url?
Chrome 控制台日志:
GET http://localhost:8123/mycomponent.chunk.js 404 (Not Found)
main.js:12 Error: Loading chunk 2 failed.
(error: http://localhost:8123/mycomponent.chunk.js)
at HTMLScriptElement.a (main.js:1)
我需要“/static/js/mycomponent”的 url 个。chunk.js”。
webpack.config.js:
const path = require("path")
const webpack = require('webpack')
const BundleTracker = require('webpack-bundle-tracker')
const VueLoaderPlugin = require('vue-loader/lib/plugin')
module.exports = {
context: __dirname,
entry: './src/main.js',
output: {
path: path.resolve('../static/js/'),
filename: "[name].js",
chunkFilename: '[name].chunk.js',
},
module: {
rules: [
{
test: /\.vue$/,
loader: 'vue-loader'
},
],
},
plugins: [
new BundleTracker({filename: './webpack-stats.json'}),
new VueLoaderPlugin(),
],
resolve: {
alias: {
'vue': path.resolve('./node_modules/vue/dist/vue.js'),
}
},
}
尝试在输出中添加 publicPath: '/static/js/'
。
此外,如果您从 Django 模板页面提供 js,您可以使用 django-webpack-loader,它简化了提供 js 文件并支持热模块重新加载。
我正在将 Django 与 Webpack 和 Vue 一起使用,并在 Webpack 中进行代码拆分。 Webpack 从 .vue 文件的源代码中拆分块文件。但是,我无法在 Web 浏览器上加载块文件,因为 url 在我的项目结构中不正确。我想更改块文件的负载 url,但我不知道这些。如何更改块文件的负载 url?
Chrome 控制台日志:
GET http://localhost:8123/mycomponent.chunk.js 404 (Not Found)
main.js:12 Error: Loading chunk 2 failed.
(error: http://localhost:8123/mycomponent.chunk.js)
at HTMLScriptElement.a (main.js:1)
我需要“/static/js/mycomponent”的 url 个。chunk.js”。
webpack.config.js:
const path = require("path")
const webpack = require('webpack')
const BundleTracker = require('webpack-bundle-tracker')
const VueLoaderPlugin = require('vue-loader/lib/plugin')
module.exports = {
context: __dirname,
entry: './src/main.js',
output: {
path: path.resolve('../static/js/'),
filename: "[name].js",
chunkFilename: '[name].chunk.js',
},
module: {
rules: [
{
test: /\.vue$/,
loader: 'vue-loader'
},
],
},
plugins: [
new BundleTracker({filename: './webpack-stats.json'}),
new VueLoaderPlugin(),
],
resolve: {
alias: {
'vue': path.resolve('./node_modules/vue/dist/vue.js'),
}
},
}
尝试在输出中添加 publicPath: '/static/js/'
。
此外,如果您从 Django 模板页面提供 js,您可以使用 django-webpack-loader,它简化了提供 js 文件并支持热模块重新加载。