webpack的出入口,还有图片路径问题

  • Post author:
  • Post category:其他


这里有一篇博文,里面关于__dirname的概念解释的很好,官方文档都没解释,另外这里提一句,关于图片路径只有在csss文件中能识别,js文件中需要使用var myimg = require(路径)的方式来引用才能识别。

在webpack4.0后,可以不使用配置文件,但其仍是可高度配置的。在根目录下创建webpack.config.js,对其module.exports的属性进行配置即为webpack的配置。

入口(entry)

本质上,webpack 是一个现代 JavaScript 应用程序的静态模块打包器,在入口中指定了要打包的文件,同时指示 webpack 应该使用哪个模块,来作为构建其内部依赖图的开始。进入入口起点后,webpack 会找出有哪些模块和库是入口起点(直接和间接)依赖的。每个依赖项随即被处理,最后输出到称之为 bundles 的文件中,bundles可以在出口设置其命名。

通过在webpack.config.js中配置entry属性可以指定一个或多个入口起点,默认值为./src,即将src文件夹下的文件作为入口文件。

对象语法设置

通过给entry属性传入一个对象作为值,可以对对象指定路径的文件进行打包。

module.exports = {


entry: {


first: ‘./src/first.js’,

second: ‘./src/second.js’

}

}

通过上面的配置,在打包时就会打包src文件夹下的first.js和second.js。对象的键名可以在output中被获取,以用于输出指定名字的js文件。

当只有一个入口时,也可以传入一个指定路径的字符串来达到简写的目的

module.exports = {


entry: ‘./src/index.js’

}

这种简写实际上为

module.exports = {


entry: {


main: ‘./src/index.js’

}

}

这样子在打包时输出的文件名就会为main.js。

出口(output)

output指定了要输出的位置,默认为./dist,即将打包的文件放到dist文件夹下。

配置输出

在配置输出文件的位置时,最常用的是filename属性和path属性,filename属性用于指定打包后的文件的名称,而path属性用于指定打包后的文件的存放路径。要注意的是,path属性只能使用绝对路径,不能使用相对路径。

module.exports = {


entry: “./src/index.js”,

output: {


filename: “index.js”,

path: __dirname + “/dist”

}

}

__dirname指webpack.config.js所在的根目录,通过拼接字符串可以达到使用绝对路径的效果。

原文件夹下文件目录

在这里插入图片描述

打包后的文件夹下文件目录

在这里插入图片描述

这是在配置一个出口文件时,可以直接给filename属性传一个字符串,但是如果有多个入口文件,就可以通过[name]来获取entry属性对象的键值作为输出的文件的名称。

module.exports = {


entry: {


first: “./src/first.js”,

second: “./src/second.js”

},

output: {


filename: “[name].js”,

path: __dirname + “/dist”

}

}

原文件夹下文件目录

在这里插入图片描述

打包后的文件夹下文件目录

在这里插入图片描述

默认输出

在没有设置output属性时,对下面的entry配置下的文件进行打包

// webpack.config.js文件内容

module.exports = {


entry: “./src/index.js”

}

原文件夹下文件目录

在这里插入图片描述

打包后的文件夹下文件目录

在这里插入图片描述

可以看到在entry属性使用简写,又没有手动设置output属性时,会在dist文件夹下生成一个main.js(因为简写下的内容等同于在对象语法中键值为main的属性)

由生成的文件名为main.js可以推出,output属性的默认为

output: {


filename: “[name].js”,

path: __dirname + “/dist”


作者:Ze明

来源:CSDN

原文:

https://blog.csdn.net/zemprogram/article/details/89433925


版权声明:本文为博主原创文章,转载请附上博文链接!



版权声明:本文为qlin_11原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。