웹 팩 4 시리즈 튜 토리 얼 (15): 개발 모델 및 웹 팩 - dev - server
0. 과정 소개 와 자료
이 시간 에 사용 할 plugin 과 loader 의 설정 파일
package.json
은 다음 과 같 습 니 다.{
"scripts": {
"dev": "webpack-dev-server --open"
},
"devDependencies": {
"clean-webpack-plugin": "^0.1.19",
"html-webpack-plugin": "^3.2.0",
"jquery": "^3.3.1",
"webpack": "^4.16.1",
"webpack-cli": "^3.1.0",
"webpack-dev-server": "^3.1.4"
}
}
1. 왜 개발 모델 이 필요 한가?
이전 과정 에서 우 리 는 모두 매개 변 수 를 지정 하지 않 았 다
mode
.그러나 실행 webpack
을 포장 할 때 자동 으로 production
으로 설정 되 지만 콘 솔 에 서 는 warning
알림 이 나온다.개발 모델 은 지정 mode
development
이다.개발 모델 에서 우 리 는 코드 를 디 버 깅 해 야 한다.대응 하 는 설정 은:
devtool
source-map
로 설정 합 니 다.비 개발 모드 에 서 는 포장 부 피 를 줄 이기 위해 이 옵션 을 닫 아야 합 니 다.개발 모델 에서 열 과부하, 경로 재 설정, 프 록 시 연결 등 기능 이 필요 합 니 다.
webpack4
이미 devServer
옵션 을 제공 하여 로 컬 서버 를 시작 하여 개발 자 들 이 이 기능 을 사용 하도록 합 니 다.2. 개발 모델 을 어떻게 사용 합 니까?
글 의 시작
package.json
설정 에 따라 명령 행 에 입력 하면 개발 자 모드 를 시작 할 수 있 습 니 다.시작 효 과 는 다음 그림 과 같 습 니 다:
콘 솔 에서 패키지 정 보 를 출력 했 지만 디스크 에 폴 더 와 패키지 파일 을 만 들 지 않 았 습 니 다.콘 솔 의 패키지 파일 에 대한 내용 은 메모리 에 저 장 됩 니 다.
3. 필요 한 파일 을 작성 합 니 다.
우선 입구 의 html 파일 을 작성 하 십시오:
Document
This is Index html
그 다음 에 프로젝트 디 렉 터 리 에 따라
npm run dev
아래 의 세 개의 js 파일 을 간단하게 밀봉 하여 편리 하 게 /dist/
호출 할 수 있 습 니 다.// minus.js
module.exports = function(a, b) {
return a - b;
};
// multi.js
define(function(require, factory) {
"use strict";
return function(a, b) {
return a * b;
};
});
// sum.js
export default function(a, b) {
console.log("I am sum.js");
return a + b;
}
자, 본론 으로 들 어 갈 준 비 를 하 세 요.
4. webpack 프로필 작성
4.1 설정 코드
설정 내용 이 좀 많 기 때문에 코드 를 넣 고 설명 을 넣 습 니 다.
/vendor/
설정 은 다음 과 같다.const webpack = require("webpack");
const HtmlWebpackPlugin = require("html-webpack-plugin");
const path = require("path");
module.exports = {
entry: {
app: "./app.js"
},
output: {
publicPath: "/",
path: path.resolve(__dirname, "dist"),
filename: "[name]-[hash:5].bundle.js",
chunkFilename: "[name]-[hash:5].chunk.js"
},
mode: "development", //
devtool: "source-map", //
devServer: {
contentBase: path.join(__dirname, "dist"),
port: 8000, //
hot: true, //
overlay: true, // , “ ”。 vue-cli
proxy: {
//
"/comments": {
target: "https://m.weibo.cn",
changeOrigin: true,
logLevel: "debug",
headers: {
Cookie: ""
}
}
},
historyApiFallback: {
// HTML5 history
rewrites: [{ from: /.*/, to: "/index.html" }]
}
},
plugins: [
new HtmlWebpackPlugin({
filename: "index.html",
template: "./index.html",
chunks: ["app"]
}),
new webpack.HotModuleReplacementPlugin(),
new webpack.NamedModulesPlugin(),
new webpack.ProvidePlugin({
$: "jquery"
})
]
};
4.2 모듈 핫 업데이트
모듈 열 업데이트
app.js
와 webpack.config.js
두 플러그 인 이 필요 하 며 순서 가 틀 리 면 안 됩 니 다.또한 HotModuleReplacementPlugin
를 NamedModulesPlugin
로 지정 했다.이 두 개의 플러그 인 이 있 으 면 프로젝트 의 js 코드 에서 변 경 된 파일 을 검색 하고 관련 처 리 를 할 수 있 습 니 다.
예 를 들 어 우 리 는 개발 모델 을 시작 한 후에
devServer.hot
이 파일 을 수정 했다. 이때 브 라 우 저의 콘 솔 에 정 보 를 인쇄 해 야 한다.그러면 true
에서 이렇게 쓸 수 있다.if (module.hot) {
//
module.hot.accept("./vendor/sum.js", function() {
// ,
console.log("/vendor/sum.js is changed");
});
}
vendor/sum.js
이 수 정 될 때마다 자동 으로 리 셋 함 수 를 실행 할 수 있다.4.3 크로스 에이전트
전후 단 분리 개발 이 보편화 되면 서 크로스 오 버 요청 이 흔 해 졌 다.빠 른 개발 을 위해
app.js
를 이용 하여 프 록 시 리 트 윗 을 하여 브 라 우 저의 크로스 도 메 인 제한 을 돌아 갈 수 있 습 니 다.앞의 설정 파일 에 따라 웨 이 보 의 인 터 페 이 스 를 호출 하려 면:
sum.js
.코드 에서 devServer.proxy
를 요청 하면 됩 니 다.$.get(
"/comments/hotflow",
{
id: "4263554020904293",
mid: "4263554020904293",
max_id_type: "0"
},
function(data) {
console.log(data);
}
);
4.4 HTML5--History
프로젝트 사용
https://m.weibo.cn/comments/hotflow
시 임의의 404 응답 이 대 체 될 수 있 습 니 다 /comments/hotflow
.SPA (단일 페이지 응용) 에서 모든 응답 은 직접 대 체 됩 니 다
HTML5 History API
.vuejs 공식 비계
index.html
에서 개발 모델 에서 다음 과 같이 설정 합 니 다.// ...
historyApiFallback: {
rewrites: [{ from: /.*/, to: "/index.html" }];
}
// ...
5. 입구 파일 작성
마지막 으로 앞의 모든 것 을 바탕 으로 아래 입구 파일
index.html
을 작성 합 니 다.import sum from "./vendor/sum";
console.log("sum(1, 2) = ", sum(1, 2));
var minus = require("./vendor/minus");
console.log("minus(1, 2) = ", minus(1, 2));
require(["./vendor/multi"], function(multi) {
console.log("multi(1, 2) = ", multi(1, 2));
});
$.get(
"/comments/hotflow",
{
id: "4263554020904293",
mid: "4263554020904293",
max_id_type: "0"
},
function(data) {
console.log(data);
}
);
if (module.hot) {
//
module.hot.accept("./vendor/sum.js", function() {
// ,
console.log("/vendor/sum.js is changed");
});
}
6. 효과 검출
명령 행 입력:
vue-cli
서버 를 열 면 자동 으로 브 라 우 저 를 엽 니 다.다음 그림 에서 보 듯 이:콘 솔 을 열 면 코드 가 정상적으로 작 동 하 는 것 을 볼 수 있 습 니 다.그 밖 에
app.js
이 열 렸 기 때문에 코드 위 치 를 찾 을 수 있 습 니 다 (아래 그림 녹색 상자 내).7. 참고 자료
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
웹 개발 자가 가지 고 있 는 CentOS 작은 책저 는 이 길이 앞으로 나 아 가 는 것 이 라 고 생각 했 지만 길 은 빙빙 돌 고 있 습 니 다.종이 위 에 있 는 것 은 결국 얕 은 것 을 깨 닫 고 처음에 보면 종종 무슨 일 인지 모 르 며 전체적인 경지 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.