-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
webpack的基础配置记录 #10
Comments
output --> publicPath, assetsPath等几个输出路径的区别 |
webpack中的路径相关配置‘assetsPublicPath’的来由与publicPath最开始在看vue-cli脚手架生成的工程的时候,在打包的配置中看到了这个配置项。所以一直就记着了,并没有深究他在webpack配置的代码中被转换成了哪个配置项。 output:{
publicPath: '/TTC/' //这里要放的是静态资源CDN的地址(一般只在生产环境下配置)
}, <body>
<div id=container></div>
<script type=text/javascript src=/TTC/index.c727d92d6a8cf4bad9f3.js?c727d92d6a8cf4bad9f3></script>
</body> 看到我们的静态资源访问路径被加上了 webpack-dev-server中的publicPath与contentBase这其中的publicPath决定了我们的静态资源可以在浏览器中以何种路径被访问。默认值是 |
resolve模块resolve模块定义了webpack该如何解析我们的模块。 resolve: {
extensions: [".js",".jsx", ".css", ".json"],
alias: {
'@': resolve('src')
}
},
alias: {
'jquery': resolve('src/assets/lib/jquery'),
'@': resolve('src'),
'utils': resolve('src/assets/js/utils')
} 通过这些配置以后,我们就可以在项目中直接引入使用,例如想引用utils的时候,使用如下代码,
module模块,配置项目中的不同类型的模块被如何treated配置babel-loader {
test: /\.jsx$/,
use: ['babel-loader'],
include: [resolve('src')], //限制范围,提高打包速度
exclude: /node_modules/
},
{
"presets": ["@babel/preset-env", {"useBuiltIns": "usage"}, "@babel/preset-react"],
"plugins": ["@babel/plugin-transform-runtime"]
} 以上配置表示babel解析es6以及react的语法,并且只在运行有需要的时候进行polyfill转义。可以缩小我们的打包体积. 配置加载样式文件loader通过以下配置,加载样式文件,并且把工程中的css样式相关代码都提取出来到单独的css文件中 {
test: /\.(sa|le|c)ss$/,
use: [
{
loader: MiniCssExtractPlugin.loader,
options: {
hmr: process.env.NODE_ENV === 'development'
}
},
'css-loader',
'less-loader',
'sass-loader'
]
}, plugins: [
new MiniCssExtractPlugin({
filename: '[name].[hash].css',
chunkFilename: '[id].[hash].css'
})
] 还有url-loader, file-loader等一系列的常用loader,以及extract-loader, i18n-loader等很有用的loader.同样的,loader也提供了一系列的接口出来供开发者编写属于自己的loader
|
webpack4.x常用配置
webpack4.x可以提供零配置运行项目,提供了一些默认的配置。但都不足以支撑我们的项目,要想让我们的项目健康的跑起来,还是需要对webpack的配置有一个简单的了解。以下说明都建立在已经安装了webpack的前提下。
First. 运行npm run dev的时候,指定自己的配置文件
在项目的package.json中,通过以下脚本指定到运行的webpack文件,并且可以带上运行的参数
一般在项目中,我们都会将构建与本地运行的配置文件分开配置,用以执行不同的配置项。
Second. 配置项说明(只在项目中遇到过处理过的问题)
mode -- 为本次编译提供模式信息
通过
process.env.NODE_ENV
来取值,在脚本中通过这个变量来区分此次编译是打包发布
还是本地调试
alias -- 别名
alias配置是在
resolve
模块中, 通过配置别名可以让我们在项目中快速的找到一些静态的不变化的变量引入。例如,通过这些配置以后,我们就可以在项目中直接引入使用,例如想引用
utils
的时候,使用如下代码,import utils from utils
即可,不用再指定到文件的具体目录。第二点,一般与alias配合使用的是
webpack
的providePlugin
.通过这个插件,可以默认的为我们引入对应的模块,我们可以在代码中直接使用,而不用再通过import
orrequire
来引入.例如通过这两个配置我们就可以在项目中愉快的引入第三方静态包了。后续这些第三方包如何打包输出,会有进一步的讨论。
The text was updated successfully, but these errors were encountered: