webpack 是代码编译工具,有入口、出口、loader 和插件。webpack 是一个用于现代 JavaScript 应用程序的静态模块打包工具。当 webpack 处理应用程序时,它会在内部构建一个依赖图(dependency graph),此依赖图对应映射到项目所需的每个模块,并生成一个或多个 bundle。
webpack 是代码编译工具,有入口、出口、loader 和插件。webpack 是一个用于现代 JavaScript 应用程序的静态模块打包工具。当 webpack 处理应用程序时,它会在内部构建一个依赖图(dependency graph),此依赖图对应映射到项目所需的每个模块,并生成一个或多个 bundle。
entry指定了webpack应该使用哪个模块,作为构建起内部依赖图的开始,进入入口起点后,webpack会找出有哪些模块和库是入口起点依赖的,entry配置的默认值是’./src/index.js’,我们可以配置多个入口:
{
entry: {
index: {
import: './src/index.js',
dependOn: 'shared'
},
print: {
import: './src/print.js',
dependOn: 'shared'
},
shared: 'lodash'
}
}
在这个配置中用到了import和dependOn两个字段,他们的含义如下:
注意点:
output选项用来告知webpack如何向硬盘写入编译文件,output只能指定一个。
{
output: {
filename: '[name].js',
path: path.resolve(__dirname, 'dist'),
clean: true,
publicPath: '/'
}
}
clear:true表示每次打包之前会清空之前dist目录下的所有打包文件。
loader用于对模块的源代码进行转换,可以在加载模块时对文件进行预处理,直接将文件从不同的语言转换为JavaScript或者将内联图形转换为data url。
{
module: {
rules: [
{
test: /\.css/i,
use: [
'style-loader', 'css-loader'
]
},
{
test: /\.(png|svg|jpg|jpeg|gif$)/i,
type: 'asset/resource'
},
{
test: /\.(woff|woff2|eot|ttf|otf$)/i,
type: 'asset/resource'
},
{
test: /\.(csv|tsv)/,
use: ['csv-loader']
},
{
test: /\.xml$/i,
use: ['xml-loader']
}
]
}
}
示例中的配置添加了对各种类型的静态资源文件的处理loader,可以用来处理 CSS、图片、字体等静态资源。
插件用于解决loader无法实现的其他事情,它是webpack的支柱功能,在示例中我们使用了HtmlWebpackPlugin这个插件,用于生成和定义入口文件index.html。
{
plugins: [
new HtmlWebpackPlugin({
title: 'development'
})
]
}
延伸阅读1:Webpack的工作方式
把项目当做一个整体,通过一个给定的主文件(如:index.js),Webpack将从这个文件开始找到你的项目的所有依赖文件,使用loaders处理它们,最后打包为一个(或多个)浏览器可识别的JavaScript文件。
最后建议,企业在引入信息化系统初期,切记要合理有效地运用好工具,这样一来不仅可以让公司业务高效地运行,还能最大程度保证团队目标的达成。同时还能大幅缩短系统开发和部署的时间成本。特别是有特定需求功能需要定制化的企业,可以采用我们公司自研的企业级低代码平台:织信Informat。 织信平台基于数据模型优先的设计理念,提供大量标准化的组件,内置AI助手、组件设计器、自动化(图形化编程)、脚本、工作流引擎(BPMN2.0)、自定义API、表单设计器、权限、仪表盘等功能,能帮助企业构建高度复杂核心的数字化系统。如ERP、MES、CRM、PLM、SCM、WMS、项目管理、流程管理等多个应用场景,全面助力企业落地国产化/信息化/数字化转型战略目标。 版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们微信:Informat_5 处理,核实后本网站将在24小时内删除。版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系邮箱:hopper@cornerstone365.cn 处理,核实后本网站将在24小时内删除。