继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

webpack4.41.6版本的深入

qq_志华_1
关注TA
已关注
手记 2
粉丝 2
获赞 1

【1】、安装webpack(先全后局)

安装整个流程下:

1、全局安装

-npm i webpack -g

-cnpm i webpack -g(必须安装淘宝镜像)

-webpack -v(检查安装是否成功,成功是webpack命令可执行,我的版本是4.41.6)

2、新建一个文件webpack_demo,初始化这个文件

-mkdir webpack

-npm init  -y

3、局部安装

-npm i webpack --save-dev

-cnpm i webpack --save-dev(这个必须安装淘宝镜像)

4、将webpack_demo文件下的index.js打包

-cd webpack_demo

-touch index.js 或者type nul>index.js(第一个是git命令,第二是cmd命令)

-write index.js

function fs(msg){ 

console.log(msg)

};

fs('welcome to webpack world');

-webpack index.js index.bundle.js

-如果出现版本过高这种现象,就执行 webpack index.js -o index.bundle.js(我的就是版本过高,所执行这个命令)

##基于window10 的操作系统,webpack版本4.41.6(2020年,版本最新的)

5、新建了world.js 、style.css,解析css文件

-npm i style-loader css-loader --save-dev

-index.js文件写入

let world= require('./world.js');

require('style-loader!css-loader!./style.css');

function fs(msg){

console.log(msg)

};

fs('welcome to webpack world!');

world();

-world.js文件写入

function world(str){

 console.log('已经写入JavaScript')

}

-style.css

html,body,div,p{ color:green; font-size:12px;}

-执行 webpack index.js index.bundle.js 进行对index.js的打包

>

$ webpack index.js index.bundle.js

Hash: c9f24286344c03ff8fc0

Version: webpack 4.41.6

Time: 212ms

Built at: 2020-02-13 18:43:43

  Asset      Size  Chunks             Chunk Names

main.js  5.68 KiB       0  [emitted]  main

Entrypoint main = main.js

[0] multi ./index.js ./index.bundle.js 40 bytes {0} [built]

[1] ./index.js 166 bytes {0} [built]

[2] ./world.js 63 bytes {0} [built]

[3] ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./style.css 559 bytes {0} [built]

[5] ./node_modules/css-loader/dist/cjs.js!./style.css 277 bytes {0} [built]

[7] ./index.bundle.js 980 bytes {0} [built]

    + 2 hidden modules

WARNING in configuration

The 'mode' option has not been set, webpack will fallback to 'production' for this value. Set 'mode' option to 'development' or 'production' to enable defaults for each environment.

You can also set it to 'none' to disable any default behavior. Learn more: https://webpack.js.org/configuration/mode/



【2】、webpack的 配置

1、在项目的根目录下,也就是webpack_demo文件下建立相应的文件

-src

    -script

        ·main.js

    -style

-dist

-webpack.config.js

-index.html

2、写配置文件webpack.config.js

(1)、

module.exports = {

entry:'./src/script/main.js',

path:'./dist',

filename:'bundle.js',

}

>$ webpack

http://img4.mukewang.com/5e4558210001be3007300298.jpg

出现这个问题,主要的原因是webpack.config.js文件的配置不匹配当前的webpack版本4.41.6的

有两个解决方案:第一个就是安装指定版本,第二就是去看最新版本的文档

(2)、4.41.6版本的配置

const path = require('path');

module.exports = {

  entry: './src/script/main.js',

  output: {

    path: path.resolve(__dirname, './dist'),

    filename: 'bundle.js'

  }

};

>$webpack

http://img2.mukewang.com/5e4557cd000142f007210229.jpg


3、配置的命名一定是webpack.config.js? 不是

-将配置命名为webpack.json.js

-执行webpack --config webpack.json.js

>webpack --config webpack.json.js

http://img3.mukewang.com/5e455a9a00016f2107390219.jpg

4、npm的package.json配置文件,

【2.2】、entry 和 output

1、string形式

const path = require('path');

module.exports = {

  entry: './src/script/main.js',

  output: {

    path: path.resolve(__dirname, './dist'),

    filename: 'bundle.js'

  }

};

>$webpack

http://img2.mukewang.com/5e456d200001f66507370221.jpg

2、array形式(原则:平行的互相依赖的)

const path = require('path');

module.exports = {

  entry: ['./src/script/typearr.js','./src/script/typearr2.js'],

  output: {

    path: path.resolve(__dirname, './dist'),

    filename: 'arrbundle.js'

  }

};

>$webpack

http://img4.mukewang.com/5e456dbe0001d82d07390238.jpg


3、Object形式

const path = require('path');

module.exports = {

  entry: {

  path1:'./src/script/main.js',

  path2: ['./src/script/typearr.js','./src/script/typearr2.js']

  },

  output: {

    path: path.resolve(__dirname, './dist'),

    filename: '[name]-[Hash].js'

  }

};

>$webpack

http://img.mukewang.com/5e456e1200018a9007340283.jpg


【3、生成项目中的html页面文件】

3-1、安装html-webpack-plugin插件、解析html

    ·npm i html-webpack-plugin --save-dev

    ·在webpack.config.js配置文件写入

        -引入const htmlwebpackPlugin = require('html-webpack-plugin')

        -plugins:[ new htmlwebpackPlugin()//初始化插件]

        -执行webpack

3-2、打包到指定的文件目录下,将output输出的文件进行规划

    ·在webpack.config.js配置

        -1、将输出的js压缩文件指定在'./dist/js/'文件,html文件指定在'./dist/view/'下

                >output{filename : 'js/basefun.js'}

                >plugins: [new HtmlWebpackPlugin({filename: './view/index2.html'})

        -2、new HtmlWebpackPlugin({})的相应配置

                >new HtmlWebpackPlugin({

                        filename: 'index3.html',

                        template: './index.html',//打包的html文件

                        showErrors: true,

                        title:'welcome to webpack',

                         inject: 'head',

                         chunks: ["index"],

                         hash:true,

                        minify:{//minify 对html压缩

                                   caseSensitive: false, //是否大小写敏感

                                   removeComments:true, // 去除注释

                                    removeEmptyAttributes:true, // 去除空属性

                                    collapseWhitespace: true //是否去除空格

                         }

                    })

    ·生成多个html文件,就是写多个new HtmlWebpackPlugin({}),plugins是一个数组;

        -plugins[

                new HtmlWebpackPlugin({}),

                new HtmlWebpackPlugin({})

            ]

    ·相应的html引入需要的js文件

        -通过new HtmlWebpackPlugin({}) 的 chunks: ["main",'typearr']





打开App,阅读手记
1人推荐
发表评论
随时随地看视频慕课网APP