предисловие
Прежде всего поздравляю всех с Праздником Фонарей.Я давно не писал статей в последнее время.Я просто воспользовался тем,что в последние дни только вышел на работу,а вождь еще не пришел , поэтому я тайно написал блог о создании vue с помощью webpack. Поскольку компания часто использует vue, создание проектов vue с помощью vue-cli кажется немного раздутым, и я чувствую, что лучше настраивать его самостоятельно, поэтому у меня есть это руководство. Из-за ограниченного уровня вы можете поправить меня и вместе добиться прогресса.
Новый проект
1. Создайте новую папку с именем webpackconfig.
2. Используйте команду
npm init -y
Сгенерируйте package.json в папке конфигурации webpack
3. Загрузите пакет зависимостей
npm i webpack webpack-dev-server webpack-cli -D
4. Создайте новую папку src и создайте файл main.js в src.
alert(1)
5. Создайте новый файл webpack.config.js.
файл webpack.config.js
var path = require('path');
var config = {
entry: './src/main.js',
output: {
path: path.resolve(__dirname + '/dist'),//打包生成文件地址
filename: '[name].build.js',//生成文件ming
publicPath: '/dist/'//文件输出的公共路径
}
}
module.exports = config;
запись: импортировать файлы, метод записи объекта может импортировать несколько файлов
entry: {
app: './src/app.js',
vendors: './src/vendors.js'
}
вывод: выходной адрес файла
путь: адрес выходного файла
имя файла: имя выходного файла
publicPath: путь к выходному файлу
6. Создайте новый файл index.html и импортируйте main.js
<!DOCTYPE html><html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<script src="/dist/main.build.js"></script>
</body>
</html>
7. Настройте package.json
"dev": "webpack-dev-server --open --hot",
"build": "webpack --mode=development --progress --hide-modules",
запустить после настройки
npm run dev
откроет службу и всплывет 1
Но в вебпаке будет предупреждение, это предупреждение потому что не настроен режим, то есть не настроен соответствующий режим
mode имеет два параметра: один — режим разработки, а другой — режим производства.
Можно настроить прямо в package.json
"dev": "webpack-dev-server --mode=development --open --hot"
бежать дальше
npm run build
Будет упаковать и генерировать новую папку Dist
8. Введите код, совместимый с загрузчиком
npm i babel-loader babel-core babel-preset-env -D
babel-preset-env помогает нам настроить babel. Нам нужно только сказать ему, с чем мы хотим быть совместимыми (целевая среда выполнения), и он автоматически преобразует код в код, совместимый с соответствующей средой.
Изменить файл webpack.config.js
module: {
rules: [
{
test: '/\.js$/',
include: path.resolve(__dirname + '/src'),
exclude: /node_modules/,
use: [
{
loader: 'babel-loader',
options: ['env']
}
]
}
]
}
9. Скачайте vue и добавьте его в main.js
import Vue from 'vue';
new Vue({
el: '#app',
data: {
msg: 'hello'
}
})
Запуск проекта обнаружил ошибку
vue.runtime.esm.js:620 [Vue warn]: You are using the runtime-only build of Vue where the template compiler is not available. Either pre-compile the templates into render functions, or use the compiler-included build.
(found in <Root>)
Причина сообщения об этой ошибке заключается в том, что используется работающая версия vue, а скомпилированная версия не может быть использована.В настоящее время нам нужно настроить псевдоним позже, а скомпилированную версию использовать нельзя.resolve.aliasНастроен как следующий объект
resolve: {
alias: {
'vue$': 'vue/dist/vue.esm.js',
'@': path.resolve(__dirname, '/src')
}
}
Затем запустите проект и обнаружите, что приветствие было напечатано на странице.
Был создан простой проект vue на основе веб-пакета.
Далее некоторая конфигурация
10. Настройте css
Введите команду для загрузки style-loader css-loader
npm i style-loader css-loader -D
Настройте правила в модуле
{
test: /\.css$/,
use:['style-loader','css-loader'],
include: path.resolve(__dirname + '/src/'),
exclude: /node_modules/
}
Протестируйте внедрение css, создайте новый index.css и импортируйте его в main.js.
index.css
div{
color:skyblue;
}
import './index.css';
Вы можете видеть, что цвет текста изменился
11. Поддержка изображений
Введите команду для загрузки файла-загрузчика url-loader
npm i file-loader url-loader -D
Настройте правила в модуле
{
test: /\.(jpg|png|gif|svg)$/,
use: 'url-loader',
include: path.resolve(__dirname + '/src/'),
exclude: /node_modules/
}
Протестируйте введение картинок, создайте новую папку ресурсов, поместите картинку и импортируйте ее в main.js.
import img from'./assets/a.png'
отображать в html
<img :src="img" alt="">
12. Внедрение html-webpack-плагина
Введите команду для загрузки html-webpack-plugin
npm i html-webpack-plugin -D
установить плагины
var HtmlWebpackPlugin = require('html-webpack-plugin');
plugins: [
new HtmlWebpackPlugin({
template: './index.html',
chunks: ['main']
})
]
13. Для разработки Vue требуются файлы .vue, если представлены vue-laoader и vue-template-compiler.
Введите команду для загрузки vue-loader vue-style-loader vue-template-compiler
npm i vue-loader vue-style-loader vue-template-compiler -D
Настроить vue-загрузчик
{
test: '/\.vue$/',
loader: 'vue-loader'
}
Вам также необходимо ввести vue-loader/lib/plugin
var VueLoaderPlugin = require('vue-loader/lib/plugin');
И мститель в плагине
new VueLoaderPlugin()
Новое приложение.vue
<template> <h1>Hello World!</h1></template>
<script> export default { name: 'App' }</script>
<style></style>
изменить main.js
import Vue from 'vue';import App from './App.vue';
new Vue({ el: '#app', render: h => h(App)});
запустить проект
14. Включите горячее обновление js
Поскольку vue-style-loader инкапсулирует style-loader, горячее обновление работает из коробки, но горячее обновление js пока недоступно Мы будем обновлять браузер каждый раз, когда будем изменять код, поэтому нам нужно продолжить настройку.
const webpack = require('webpack');
и настроить его в плагине
new webpack.HotModuleReplacementPlugin()
Горячее обновление было автоматически включено
До сих пор работал проект vue, созданный webpack.
Далее идут некоторые оптимизации,
15. Настройте псевдонимы в разрешении
resolve: {
extensions: ['.js', '.jsx','.ts','.tsx', '.scss','.json','.css'],
alias: {
'vue$': 'vue/dist/vue.esm.js',
"@": path.resolve(__dirname, 'src'),
"components": path.resolve(__dirname, '/src/components'),
"utils": path.resolve(__dirname + '/src/utils'),
},
modules: ['node_modules']
}
16. Поддержите sass
Введите команду для загрузки sass-loader node-sass
npm i sass-loader node-sass -D
Измените css webpack.config.js
{
test: /\.sass$/,
use:['vue-style-loader',
'css-loader', 'sass-loader'
],
include: path.resolve(__dirname + '/src/'),
exclude: /node_modules/
},
Базовая конфигурация почти такая же, и нужно добавить некоторые вещи, которые будут добавлены позже.
Эта статья является основой для вебпака для сборки проекта vue.Следующая статья будет дополнена и снова углублена.Спасибо, я надеюсь, что вы сможете высказать больше мнений и идти дальше и дальше по дороге фермеров кода.
Спасибо за накрутку адреса звездного проектаGitHub.com/Nobody-Mengbo/Я…