웹 팩 구축 react 다 중 페이지 응용 상세 설명
creat-react-app 를 이용 하여 react 응용 프로그램 을 새로 만 듭 니 다.
npm install -g create-react-app
그리고 프로젝트 를 만 듭 니 다.
create-react-app demo
create-react-app 는 비 계 를 자동 으로 초기 화하 고 React 프로젝트 의 각종 의존 도 를 설치 합 니 다.이 과정 에서 네트워크 문제 가 발생 하면 cnpm 타 오 바 오 미 러 로 설치 하 십시오.그리고 우 리 는 프로젝트 에 들 어가 서 시작 했다.
cd demo
그리고 프로젝트 를 시작 합 니 다.
npm start
그러면 다음 페이지 가 보 입 니 다.그리고 src/App.js 에 들 어가 서 App.js 의 코드 를 아래 코드 로 교체 합 니 다.(webpack 에서 그림 과 icon 을 처리 하고 싶 지 않 기 때 문 입 니 다)
import React, { Component } from 'react';
import './App.css';
class App extends Component {
render() {
return (
<div className="App">
<div className="App-header">
<h2>Welcome to App</h2>
</div>
<p className="App-intro">
To get started, edit <code>src/App.js</code> and save to reload.
</p>
</div>
);
}
}
export default App
그리고 index.js 의 내용 을 다음 코드 로 바 꿉 니 다.(registerServiceWorker 삭제)
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
ReactDOM.render(<App />, document.getElementById('root'));
그리고 src 아래 registerServiceWorker.js(이 파일 은 pwa 응용 프로그램 을 구축 하 는 데 사 용 됩 니 다.당분간 사용 할 수 없습니다)와 logo.svg 파일(그림 파일 을 처리 하고 싶 지 않 습 니 다)과 App.test.js(테스트 용)를 삭제 합 니 다.현재 src/아래 에 네 개의 파일 이 있 습 니 다.다음은 src 아래 에 두 개의 폴 더 app 1 과 app 2 를 새로 만 들 고 각각 네 개의 파일 을 app 1 과 app 2 에 복사 합 니 다.파일 디 렉 터 리 는 다음 과 같 습 니 다.
다음은 Public 파일 에 들 어가 서 favicon.ico(처리 하고 싶 지 않 음)와 manifest.json(pwa 구축 용)을 삭제 하고 index.html 의 내용 을 다음 과 같이 바 꿉 니 다.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="theme-color" content="#000000">
<title>React App</title>
</head>
<body>
<noscript>
You need to enable JavaScript to run this app.
</noscript>
<div id="root"></div>
</body>
</html>
이 index.html 가 바로 우리 의 모델 html 입 니 다.본론 으로 들 어가 서 웹 팩 을 설치 하고 웹 팩 을 설정 합 니 다.
1.설치 의존.package.json 파일 을 아래 파일 로 대체 합 니 다.
{
"name": "demo",
"version": "0.1.0",
"private": true,
"dependencies": {
"react": "^15.6.1",
"react-dom": "^15.6.1"
},
"devDependencies": {
"babel-core": "^6.26.0",
"babel-loader": "^7.1.2",
"babel-preset-es2015": "^6.24.1",
"babel-preset-react": "^6.24.1",
"clean-webpack-plugin": "^0.1.16",
"css-loader": "^0.28.7",
"extract-text-webpack-plugin": "^3.0.0",
"file-loader": "^1.0.0",
"glob": "^7.1.2",
"html-webpack-plugin": "^2.30.1",
"postcss-loader": "^2.0.6",
"style-loader": "^0.18.2",
"url-loader": "^0.5.9",
"webpack": "^3.5.6",
"webpack-dev-server": "^2.8.1"
},
"scripts": {
"start": "webpack-dev-server --open",
"build": "webpack"
}
}
2.현재 디 렉 터 리 의 node 삭제modules,그리고 다시 콘 솔 에서 실행
npm i
3.루트 디 렉 터 리 아래/demo 아래 웹 팩.config.js 파일 을 새로 만 들 고 다음 코드 를 기록 합 니 다.
const webpack = require('webpack');
const glob = require('glob');
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const CleanWebpackPlugin = require('clean-webpack-plugin');
const webpackConfig = {
entry: {},
output:{
path:path.resolve(__dirname, './dist/'),
filename:'[name].[chunkhash:6].js'
},
// , 8080
devServer: {
inline: true,
port: 8181
},
module:{
rules:[
{
test:/\.js?$/,
exclude:/node_modules/,
loader:'babel-loader',
query:{
presets:['es2015','react']
}
},
{
test: /\.(scss|sass|css)$/,
loader: ExtractTextPlugin.extract({fallback: "style-loader", use: "css-loader"})
},
]
},
plugins: [
new ExtractTextPlugin("[name].[chunkhash:6].css"),
new CleanWebpackPlugin(
['dist'],
{
root: __dirname,
verbose: true,
dry: false
}
)
],
};
//
function getEntries(globPath) {
const files = glob.sync(globPath),
entries = {};
files.forEach(function(filepath) {
const split = filepath.split('/');
const name = split[split.length - 2];
entries[name] = './' + filepath;
});
return entries;
}
const entries = getEntries('src/**/index.js');
Object.keys(entries).forEach(function(name) {
webpackConfig.entry[name] = entries[name];
const plugin = new HtmlWebpackPlugin({
filename: name + '.html',
template: './public/index.html',
inject: true,
chunks: [name]
});
webpackConfig.plugins.push(plugin);
})
module.exports = webpackConfig;
4.그리고 다음 코드 를 직접 실행 합 니 다.
npm run build
dist 에서 두 페이지 의 app 1 과 app 2 를 성공 적 으로 보 았 습 니 다.npm run start 를 직접 사용 하려 면 localhost:8181/app1.html 에서 페이지 를 보고 디 버 깅 합 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.