Webpack設定
16678 ワード
Webpack
npm init-yでコンポーネントをインストール
npm i -D webpack webpack-cli webpack-dev-server@next
Webpack-dev-server:開発サーバを開くと、開発の専門ページになります.
"scripts": {
"dev": "webpack-dev-server --mode development",
"build": "webpack --mode production"
},
新しいhtml、jsファイルを作成する
webpack.config.jsの作成
// 전역 모듈 호출
const path = require('path')
module.exports = {
//파일을 읽어들이기 시작하는 진입점을 설정한다.
entry: './js/main.js',
//결과물(번들)을 반환하는 설정
//output은 node.js에서 필요로하는 절대 경로를 설정해주어야 한다.
output: {
//resolve 메서드는 인수들의 경로를 합쳐준다.
//dirname 또한 전역변수이며 현재 파일이 있는 그 경로를 지칭한다.
path: path.resolve(__dirname, 'dist'),
filename: 'main.js'
}
}
ポイントに入るにはいろいろな種類があります.entry: {
home: 'home.js',
about: 'about.js',
contact: 'contact.js'
}
terminal-npm run build時にdistフォルダを作成するかどうか.
既存のファイルを削除する場合は、clean propertyを出力に追加します.
output: {
path: path.resolve(__dirname, 'public'),
filename: 'main.js',
clean: true
}
const HtmlPlugin = require('html-webpack-plugin')
結果を生成する過程でpluginsを使用します.
//번들링 후 결과물의 처리 방식 등 다양한 플러그인들을 설정
plugins: [
new HtmlPlugin({
template: './index.html'
})
],
devServer: {
host: 'localhost'
}
静的フォルダを作成したらfaviconを挿入して画像フォルダを作成し、logoを挿入します.
index.htmlにimg要素を挿入して画像ファイルパスを設定する
npm i-D copy-webpack-plugin後webpack.config.jsで呼び出した後にプラグイン配列を挿入する
const path = require('path')
const HtmlPlugin = require('html-webpack-plugin')
const CopyPlugin = require('copy-webpack-plugin')
module.exports = {
entry: './js/main.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'main.js',
clean: true
},
plugins: [
new HtmlPlugin({
template: './index.html'
}),
new CopyPlugin({
patterns: [
{ from: 'static' }
]
})
],
devServer: {
host: 'localhost'
}
}
CopyPluginでは、from内のフォルダのサブフォルダをdistフォルダにコピーできます.scssで、cssファイルをインポートできます.
const path = require('path')
const HtmlPlugin = require('html-webpack-plugin')
const CopyPlugin = require('copy-webpack-plugin')
module.exports = {
entry: './js/main.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'main.js',
clean: true
},
module: {
rules: [
{
// .scss .css로 확장자를 찾게 해준다.
test:/\.s?css$/,
// js에서 css를 해석할 수 있게 해주는 css-loader
// 해석된 내용을 삽입해주는 style-loader
use:[
'style-loader',
'css-loader',
'sass-loader'
]
}
]
},
plugins: [
new HtmlPlugin({
template: './index.html'
}),
new CopyPlugin({
patterns: [
{ from: 'static' }
]
})
],
devServer: {
host: 'localhost'
}
「sass-loader」に「postcs-loader」を作成する
"browserslist": [
// 전세계 1% 이상의 브라우저 이상에서
"> 1%",
// 2개 버전을 모두 지원하겠다는 뜻
"last 2 versions"
]
module.exports = {
plugins: [
require('autoprefixer')
]
}
module.exports = {
presets: ['@babel/preset-env'],
plugins: [
['@babel/plugin-transform-runtime']
]
}
{
test: /\.js$/,
use: [
'babel-loader'
]
}
.cache
node_modules
dist
npx degitによってコピーされ、npx degit Tchaikovsky1114/webpack-template-basic webpack-template-test
npx degitにコピーすると、gitクローンとは異なるバージョン管理されていないフォルダにコピーできます.Reference
この問題について(Webpack設定), 我々は、より多くの情報をここで見つけました https://velog.io/@tchaikovsky/Webpack-설정テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol