Cet article présente principalement en détail comment utiliser vue-cli pour développer des applications multipages. L'éditeur pense que c'est plutôt bien, je vais donc le partager avec vous maintenant et le donner comme référence. Suivons l'éditeur et jetons un coup d'œil.
Cet article explique comment utiliser vue-cli pour développer des applications multipages et les partager avec tout le monde. Les détails sont les suivants :
Webpack modifié. fichier de configuration
Configuration globale
Modifier webpack.base.conf.js
Ouvrir ~buildwebpack.base.conf. js, trouver une entrée, ajouter plus d'entrée
1 2 3 4 5 | entry: {
app: './src/main.js',
app2: './src/main2.js',
app3: './src/main3.js',
},
|
Copier après la connexion
Lors de l'exécution et de la compilation, chaque entrée correspondra à un Chunk
exécuter un environnement de développement de développement
Modifiez webpack.dev .conf.js
Ouvrez ~buildwebpack.dev.conf.js, recherchez le nouveau HtmlWebpackPlugin sous les plugins, ajoutez plusieurs pages correspondantes derrière et ajoutez la configuration Chunk pour chaque page
chunks : L'application dans ['app'] correspond au fichier d'entrée défini par l'entrée dans webpack.base.conf.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | plugins:[
new HtmlWebpackPlugin({
filename: 'index.html',
template: 'index.html',
inject: true,
chunks: ['app']
}),
new HtmlWebpackPlugin({
filename: 'index2.html',
template: 'index2.html',
inject: true,
chunks: ['app2']
}),
new HtmlWebpackPlugin({
filename: 'index3.html',
template: 'index3.html',
inject: true,
chunks: ['app3']
})
]
|
Copier après la connexion
run build compile
Modifiez config/index.js
Ouvrez ~configindex.js, recherchez l'index sous build : path.resolve(__dirname, '../dist/index.html'), et ajoutez plusieurs pages après it
1 2 3 4 5 | build: {
index: path.resolve(__dirname, '../dist/index.html'),
index2: path.resolve(__dirname, '../dist/index2.html'),
index3: path.resolve(__dirname, '../dist/index3.html'),
},
|
Copier après la connexion
Modifiez webpack.prod.conf.js
Ouvrez ~buildwebpack.prod.conf.js, recherchez le nouveau HtmlWebpackPlugin sous les plugins et ajoutez le correspondant Plusieurs pages et ajoutez une configuration Chunk pour chaque page
Le nom de fichier dans HtmlWebpackPlugin fait référence à la version correspondante dans config/index.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | plugins: [
new HtmlWebpackPlugin({
filename: config.build.index,
template: 'index.html',
inject: true,
minify: {
removeComments: true,
collapseWhitespace: true,
removeAttributeQuotes: true
},
chunksSortMode: 'dependency',
chunks: ['manifest','vendor','app']
}),
new HtmlWebpackPlugin({
filename: config.build.index2,
template: 'index2.html',
inject: true,
minify: {
removeComments: true,
collapseWhitespace: true,
removeAttributeQuotes: true
},
chunksSortMode: 'dependency',
chunks: ['manifest','vendor','app2']
}),
new HtmlWebpackPlugin({
filename: config.build.index3,
template: 'index3.html',
inject: true,
minify: {
removeComments: true,
collapseWhitespace: true,
removeAttributeQuotes: true
},
chunksSortMode: 'dependency',
chunks: ['manifest','vendor','app3']
}),
]
|
Copier après la connexion
S'il y a plusieurs pages, vous pouvez envisager d'utiliser it Bouclez et ajoutez HtmlWebpackPlugin aux plugins
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | exports.getEntry = function (globPath, pathDir) {
var files = glob .sync(globPath);
var entries = {},
entry, dirname, basename , pathname, extname;
for ( var i = 0; i < files.length; i++) {
entry = files[i];
dirname = path.dirname(entry);
extname = path.extname(entry);
basename = path. basename (entry, extname);
pathname = path.join(dirname, basename );
pathname = pathDir ? pathname.replace( new RegExp('^' + pathDir), '') : pathname;
entries[pathname] = ['./' + entry];
}
return entries;
}
|
Copier après la connexion
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | var pages = Object.keys(utils.getEntry('../src/views *.html', '../src/views/'));
pages.forEach( function (pathname) {
var conf = {
filename: '../views/' + pathname + '.html',
template: '../src/views/' + pathname + '.html',
inject: false,
};
if (pathname in config.entry) {
conf.favicon = 'src/images/favicon.ico';
conf.inject = 'body';
conf.chunks = ['vendors', pathname];
conf.hash = true;
}
config.plugins.push( new HtmlWebpackPlugin(conf));
});
|
Copier après la connexion
La même entrée peut également être utilisée
1 2 3 4 | entry: {
app: utils.getEntry('../src/scripts *.js', '../src/scripts/')
},
|
Copier après la connexion
Ce qui précède est ce que j'ai compilé pour tout le monde, j'espère que cela sera utile. à tout le monde à l'avenir.
Articles connexes :
Comment implémenter le changement de défilement d'étiquettes dans JS
Comment utiliser la fenêtre EasyUI dans jQuery
Comment utiliser le plug-in de date laydate.js dans Angular4.0
Problèmes concernant les chemins d'image non sécurisés lors de l'utilisation d'Angular4
Comment créer des applications Electron dans Webpack
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!