웹 팩 설정 이해
29290 단어 webpack
공식 문서
링크:https://www.webpackjs.com
웹 팩 이 뭐 예요?
모듈 패키지 도구
웹 팩 환경 조합
nodejs: https://www.nodejs.org
웹 팩 프로젝트 구축
npm init
npm install webpack webpack - cli - g 전역 설치
npm install webpack webpack - cli -- save - dev (- D) 프로젝트 에 설치
npx (npx webpack - v 현재 프로젝트 웹 팩 버 전 보기) 현재 프로젝트 를 조작 할 수 있 습 니 다.
웹 팩 설정
새 웹 팩. config. js babel 은 웹 팩 이 es6 를 es5 babel 로 변환 하 는 데 도움 을 줍 니 다.https://babeljs.io/setup#installation
로 컬 서버 1. npm install http - server -- save 2. pageage. json 에서 스 크 립 트 에 설정 인자 'server' 추가: 'http - server dist'
const path = require('path')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const CleanWebpackPlugin = require('clean-webpack-plugin')
const MiniCssExtractPlugin = require('mini-css-extract-plugin')// css 1.npm install --save-dev mini-css-extract-plugin 2. const MiniCssExtractPlugin = require('mini-css-extract-plugin')
const OptimizeCssAssetsWebpackPlugin = require('optimize-css-assets-webpack-plugin')// css 1.npm install optimize-css-assets-webpack-plugin -D
const webpack = require('webpack') //
const WorkboxPlugin = require('work-box-plugin') // PWA ,
module.export = {
mode: 'production', // production ,development
devtool: 'cheap-module-eval-source-map', // js(main.js) ,eval source-map inline-source-map source-map base64 js (main.js) cheap-inline-source-map cheap-module-eval-source-map module cheap-module-source-map
entry: 'xxx.js', //
devServer: {
open: true, //
port: 8080, //
proxy: {
'/api': 'http://localhost:8080'
}
},
module: { // loader webpack js
rulus: [{
test: /\.js$/,
exclude: /node_modules/, // node_modules
loader: "babel-loader" , // webpack babel
options: {
presets: [["@babel/preset-env", {
useBuiltIns: 'usage' // babel-polyfill babel-polyfill
}]] // '@babel/preset-env' es6 es5 https://babeljs.io/docs/en/babel-polyfill es6 es5
}
},
{
test: /\.(jpg|png|svg|eot)$/,
use: {
loader: 'file-loader' // webpack .jpg .svg .eot .png
}
},
{
test: /\.jpg$/,
use: {
loader: 'url-loader' // webpack .jpg
options: {
name: '[name].[ext]', // name ext
outputPath: '/images', // dist images
limit: 20480 // 20480 images 20480 file—loader dist js
}
}
},{
test: /\.css$/,
use: [
MiniCssExtractPlugin.loader, // css
// 'style-loader',
// 'css-loader',
{
loader: 'css-loader',
options: {
importLoaders: 2 // saas saas postcss-loader saas-loader
modules: true // css
//
// import css from './xxx.css'
// div.addClass(css.box)
// css xxx.css
// box css
}
}
'saas-loader'
'postcss-loader'
] // postcss-loader saas-loader css-loader style-loader
}]
},
optimization: { // css
minimizer: [
new OptimizeCssAssetsWebpackPlugin({})
]
},
// plugin weboack
plugins: [new HtmlWebpackPlugin({ // html (index.html) js html
template: '../xxx.html' // html
}), new CleanWebpackPlugin({ // dist
['dist']
}),new MiniCssExtractPlugin({ // css
filename: '[name].csss',
chunkFilename: '[name].chunk.css'
}),new webpack.ProvidePlugin({
$: 'jquery' // $, jquery
}), new WorkboxPlugin.GenerateSW({ // PWA
// index.js
// if ('serviceWorker' in navigator) {
// window.addEventListener('load', () => {
// navigator.serviceWorker.register('/server-worker.js')
// .then(registration => {
// console.log(' ')
// })
// .catch(error => {
// console.log(erroe)
// })
// })
//}
clientsClaim: true,
skipWaiting: true
})],
optimization: {
usedExports: true,// js css package.json sideEffects: ['*.css'] => MiniCssExtractPlugin development production import js
splitChunks: { // , lodash npm install lodash -D
chunks: 'all',
minSize: 30000,
minChunks: 1, //
}
},
output: { //
publicPath: 'www.xxx.com', // cdn
filename: '[name].js' //
path: path.resolve(__dirname, ' ') // __dirname webpack.config.js
}
}
css 기본 접두사
npm install autoprefixer - D 새 postcss. config. js
module.exports = {
plugins: [
require('autoprefixer')
]
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.