0부터 웹 팩으로 vue3.0 프로젝트 프로젝트의 실현을 구축합니다
초보 엔지니어를 위한 입문 강좌
모바일 단일 페이지 데모
본문
첫걸음
네가 적합하다고 생각하는 디스크를 찾아라.입력
mkdir test
, cd test
, npm init -y
.두 번째 단계
설치 종속
웹 팩 시리즈 의존
webpack webpack-cli
babel 시리즈 의존
@babel/core @babel/preset-env
모바일 호환 방안
amfe-flexible autoprefixer
axios
axios
webpack loader
babel-loader
css-loader
file-loader
postcss-loader
pm2rem-loader
style-loader
이것은 단독으로 말하자면, vue3.0sfc가 다시 썼다.vue 파일의 컴파일 방식,parseComponent 등 방법을 사용하려면 반드시 -v16 접두사의 이loader를 사용해야 합니다. 당시에 이loader를 찾는 데 비교적 긴 시간이 걸렸습니다.
vue-loader-v16
vue-template-complier
webpack plugin
html-webpack-plugin
webpack-dev-server
Vue & Vuex
vue@next
vuex@next
상기 의존 패키지를 설치하려면 yarnadd 또는 npm i를 사용하십시오
세 번째 단계
현재 루트 디렉터리에 index를 만듭니다.html, HTML 코드 초기화
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>h5 static</title>
</head>
<body>
<div id="app"></div>
</body>
</html>
만들다.babelrc, babel 설정 초기화
{
"presets": ["@babel/preset-env"]
}
postcss를 만듭니다.config.js 초기화postcss 설정
module.exports = {
plugins: [require('autoprefixer')],
}
만들다.gitignore
node_modules
.vscode
.idea
scripts 디렉터리 만들기, yarn 잠금 스크립트 작성
if (!/yarn\.js$/.test(process.env.npm_execpath || '')) {
console.warn(
'\u001b[33mThis repository requires Yarn 1.x for scripts to work properly.\u001b[39m
'
)
process.exit(1)
}
스크립트를 패키지에 설정합니다.json 설정 중
{
"name": "h5-static",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"start": "webpack-dev-server",
"build": "webpack --mode=production",
"preinstall": "node ./scripts/checkYarn.js"
},
"author": "upeartaker",
"license": "ISC",
"dependencies": {
"@babel/core": "^7.11.6",
"@babel/preset-env": "^7.11.5",
"@vue/compiler-sfc": "^3.0.0",
"amfe-flexible": "^2.2.1",
"autoprefixer": "8.0.0",
"axios": "^0.20.0",
"babel-loader": "^8.1.0",
"css-loader": "^4.3.0",
"file-loader": "^6.1.0",
"html-webpack-plugin": "^4.5.0",
"postcss-loader": "^4.0.2",
"px2rem-loader": "^0.1.9",
"style-loader": "^1.2.1",
"vue": "^3.0.0",
"vue-loader": "^15.9.3",
"vue-loader-v16": "^16.0.0-beta.5.4",
"vue-template-compiler": "^2.6.12",
"vuex": "^4.0.0-beta.4",
"webpack": "^4.44.2",
"webpack-cli": "^3.3.12",
"webpack-dev-server": "^3.11.0"
},
"browserslist": [
"defaults",
"not ie < 11",
"last 2 versions",
"> 1%",
"iOS 7",
"last 3 iOS versions"
]
}
이 중preinstall은 yarn 잠금 스크립트입니다.
const path = require('path')
const VueLoaderPlugin = require('vue-loader-v16/dist/plugin.js').default
const HtmlWebpackPlugin = require('html-webpack-plugin')
module.exports = {
entry: path.resolve(__dirname, './src/main.js'),
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'bundle.js',
},
resolve: {
extensions: ['.js'],
},
module: {
rules: [
{
test: /\.js$/,
use: ['babel-loader'],
exclude: /node_modules/,
},
{
test: /\.css$/,
use: [
'style-loader',
'css-loader',
{
loader: 'px2rem-loader',
options: {
remUnit: 37.5,
},
},
{
loader: 'postcss-loader',
options: {
sourceMap: true,
postcssOptions: {
path: 'postcss.config.js',
},
},
},
],
},
{
test: /\.(png|svg|jpg|gif)$/,
use: ['file-loader'],
},
{
test: /\.(woff|woff2|eot|ttf|otf)$/,
use: ['file-loader'],
},
{
test: /\.vue$/,
loader : 'vue-loader-v16'
}
],
},
optimization: {
minimize: true,
},
plugins: [
new HtmlWebpackPlugin({
template: path.resolve(__dirname, './index.html'),
inject: 'body',
}),
new VueLoaderPlugin()
],
}
4단계Demo를 작성하여 프로젝트를 사용할 수 있는지 테스트합니다.
src 디렉터리에 들어가서main을 만듭니다.js 파일, 다음 코드 작성,
import 'amfe-flexible'
import './index.css'
import { createApp } from 'vue'
import App from './App.vue'
const app = createApp(App)
app.mount('#app')
앱을 만듭니다.vue 파일, 코드 작성
<template>
<Fragment>
{{ message }}
<button @click="handleClick"> </button>
</Fragment>
</template>
<script>
import { Fragment, ref } from 'vue'
export default {
name: 'root',
components: [Fragment],
setup() {
const message = ref('hello')
const handleClick = () => {
message.value = 'hit'
}
return {
message,
handleClick,
}
},
}
</script>
다섯 번째 단계실행 스크립트
yarn start
총결산이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Qiita API v2를 Ajax에서 사용하기위한 webpack 설정 (로컬 개발 환경 전용)에서는 Qiita의 기사 목록, 사용자 세부 정보, 기사를 '좋아요'한 사람 목록 및 재고가 있는 사람 목록을 검색할 수 있습니다. Qiita 화면에서 기사를 재고한 사람을 볼 수 없기 때문에 API를 통해 기사를 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.