webpack4.x的使用曆程

來源:互聯網
上載者:User

標籤:runtime   cal   運用   http   產生   stage   resolve   es6   package   

第一次接觸的webpack是在一個3.x的資料中 在4.x的運用中遇到了好多的坑,我就以小白的身份把我使用webpaxk的過程分享出來,其中很多不足歡迎大佬們指正

 node安裝不再贅述

一.安裝

  1. npm i webpack –D(在項目中安裝)"webpack": "^4.16.5"
  2. npm install webpack-cli –g  4.x之後要單獨安裝
  3. webpack --mode development 會自動產生一個dist檔案夾並在下面產生main.js儲存打包好的js檔案

注意:index.js要在src檔案夾在webpack預設從src檔案夾下擷取,不再支援 webpack a.js   b.js這種方式(打包的入口檔案是‘./src/index.js‘,輸出路徑是‘./dist/main.js‘)

二.初始化

npm init –y(執行預設配置) -----會產生一個package.json的檔案。

三. 安裝loader

*css: css-loader, css-loader;

*css中的url: url-loader(use:‘url-loader?limit=??(圖片大小的位元組數)‘), file-loader;

*字型表徵圖:{test:/\.(ttf|eot|svg|woff|woff2)$/, use: "url-loader"},

*es6中的進階文法轉換:
1.安裝loader:
(1)npm i babel-core babel-loader babel-plugin-transform-runtime -D
(2)npm i babel-preset-env babel-preset-stage-0 -D
2.配置webpack

{test:/\.js$/, use: "babel-loader",exclude:/node_modules/}

3.配置babelrc
在src下建立.babelrc檔案並設定

{"presets": ["env","stage-0"],"plugins": ["transform-runtime"]}

四. vue中webpack的使用

1.安裝vue的包 npm i vue -S

2.loader npm i vue-loader vue-template-compiler -D

3.建立一個vue檔案並引入
import Vue from ‘vue‘;預設引用的是vue/joson裡配置的vue檔案是不全的 需要用到rende

import login from ‘./login.vue‘render: function (createElement) {return createElement(login)}//向掛載的元素中直接覆蓋一個名為login的組件  簡寫render:  c=>c(login)

五. webpack.config.js的配置

 

const webpack = require("webpack");const HtmlWebpackPlugin = require(‘html-webpack-plugin‘);const path = require("path");const VueLoaderPlugin = require(‘vue-loader/lib/plugin‘);const CleanWebpackPlugin = require(‘clean-webpack-plugin‘);module.exports ={    mode: ‘development‘,    entry: {        index: "./src/index.js",        hw9:"./src/hw9.js"    },    output: {        filename: "js/[name]-[hash].js",        path: path.join(__dirname, "dist")    },    module: { // 處理對應模組        rules: [            {                test: /\.css$/,                use: [ ‘style-loader‘, ‘css-loader‘, ]//處理css            },            {test:/\.js$/, use: "babel-loader",exclude:/node_modules/},//es6            {test:/\.(jpg|png|gif|bmp|jpeg|webp|dpg)$/, use: "url-loader?limit=1079"},            {test:/\.(ttf|eot|svg|woff|woff2)$/, use: "url-loader"},            {test:/\.js$/, use: "babel-loader",exclude:/node_modules/},            {test:/\.vue$/, use: "vue-loader"}        ]    },    plugins: [        new webpack.HotModuleReplacementPlugin(),        new VueLoaderPlugin(),        new HtmlWebpackPlugin({  // Also generate a test.html            filename : ‘index.html‘,            chunks : [‘index‘],            template: ‘src/index.html‘        }),        new HtmlWebpackPlugin({  // Also generate a test.html            filename : ‘hw9.html‘,            chunks : [‘hw9‘],            template: ‘src/hw9.html‘        }),       new CleanWebpackPlugin(            [‘dist/!*‘, ‘dist/!*‘,],      //匹配刪除的檔案            {                root: __dirname,                 //根目錄                verbose: true,                  //開啟在控制台輸出資訊                dry: false                  //啟用刪除檔案            }        )    ],    devServer: {//配置此靜態檔案伺服器,可以用來預覽打包後項目        inline:true,//打包後加入一個websocket用戶端        hot:true,//熱載入        contentBase: path.resolve(__dirname, ‘dist‘),//開發服務運行時的檔案根目錄        host: ‘localhost‘,//主機地址        port: 8080,//連接埠號碼        compress: true//程式開發伺服器是否啟動gzip等壓縮    },};

 

 

 

六. 其他詳細請參考webpack 官方文檔

https://webpack.github.io

https://www.webpackjs.com

webpack4.x的使用曆程

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

Tags Index: