웹 팩 포장 js 파일 및 배치 실현 방법
const path = require('path')
const webpack = require('webpack')
const htmlWebpackPlugin = require('html-webpack-plugin')
// ,
const cleanWebpackPlugin = require('clean-webpack-plugin')
// css
const ExtractTextPlugin = require("extract-text-webpack-plugin");
// css
const OptimizeCssAssetsPlugin = require('optimize-css-assets-webpack-plugin')
module.exports = {
//
entry: {
//
app: path.join(__dirname, './src/js/main.js'),
//
vendor: ['vue', 'vue-router', 'vue-resource', 'vuex', 'moment', 'mint-ui', 'vue-preview']
},
//
output: {
path: path.join(__dirname, './dist'),
//
publicPath: '/',
// name entry
// chunk (webpack )
filename: 'js/[name].[chunkhash].js',
// ------ chunkFilename, js ------
chunkFilename: 'js/[name].[chunkhash].js',
},
// loader,
module: {
rules: [
{ test: /\.js$/, use: 'babel-loader', exclude: /node_modules/ },
{
test: /\.css$/,
// css
use: ExtractTextPlugin.extract({
fallback: "style-loader",
use: "css-loader"
})
},
{
test: /\.(sass|scss)$/,
// scss
use: ExtractTextPlugin.extract({
fallback: "style-loader",
use: ['css-loader', 'sass-loader']
})
},
{
test: /\.(png|jpg|jpeg|gif|bmp|webp)$/, use: {
loader: 'url-loader',
options: {
limit: 6518,
// name: 'images/imgs-[hash:7].[ext]'
// [name]
// [ext]
// name: '[name].[ext]'
// images/
name: 'images/[hash:10].[ext]'
}
}
},
{
// ,
test: /\.(ttf|woff|woff2|svg|eot)$/,
use: {
loader: 'url-loader',
options: {
limit: 2048,
name: 'fonts/[hash:10].[ext]'
}
}
},
{ test: /\.vue$/, use: 'vue-loader' },
]
},
// source-map
// devtool: 'cheap-module-source-map',
// htmlWebpackPlugin
plugins: [
new htmlWebpackPlugin({
template: path.join(__dirname, './src/index.html'),
filename: 'index.html',
// HTML
minify: {
//
collapseWhitespace: true,
//
removeComments: true,
//
removeAttributeQuotes: true
}
}),
// dist
// : ,
new cleanWebpackPlugin(['./dist']),
// ( )
new webpack.optimize.CommonsChunkPlugin({
// , entry vendor
// entry ['vue', 'vue-router', 'vue-resource'] vendor js
name: 'vendor',
}),
// js
new webpack.optimize.UglifyJsPlugin({
sourceMap: true,
//
compress: {
//
warnings: false
}
}),
// ,
// vue , ,
// , ,vue
new webpack.DefinePlugin({
'process.env': {
'NODE_ENV': JSON.stringify('production')
}
}),
// css ( )
// : css
new ExtractTextPlugin("css/style.css"),
// css
new OptimizeCssAssetsPlugin(),
// scope hoisting
new webpack.optimize.ModuleConcatenationPlugin()
]
}
웹 팩 을 포장 한 JS 파일 을 어떻게 배치 하 는 지 소개 해 드 리 겠 습 니 다.웹 팩 을 포장 한 JS 파일 은 어떻게 생산 환경 에 발표 하여 사용 합 니까?TOMCAT 에 나 올 수 있 나 요?아니면 다른 배치 환경 이 필요 합 니까?
포 장 된 파일 은 일반적인 js 파일 이 라 고 생각 하 시 면 됩 니 다.가장 좋 지 않 습 니 다.놓 고 싶 은 디 렉 터 리 를 페이지 에서 참조 하 십시오.jquery.min,js 는 어떻게 사용 합 니까?webpack 에서 포 장 된 js 파일 도 어떻게 사용 합 니까?
총결산
위 에서 말 한 것 은 소 편 이 여러분 에 게 소개 한 웹 팩 이 js 파일 을 포장 하고 배치 하 는 실현 방법 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 저 에 게 메 시 지 를 남 겨 주세요.소 편 은 제때에 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.