模块化和webpack

 模块化:AMD、CMD、commonJS、ES6等模块化

  export:导出

  import:导入

 

webpack:

   安装使用 : npm install webpack@3.6.0 --save-dev

                         配置文件,设置打包出入口

                         npm init 初始化生成backpack. json文件并映射webpack命令

   (所有具体配置官网可查 webpack.js. org中点击loader)

   css配置:npm install style.loader --save-dev

                      npm install css.loader --save-dev

                     在配置文件中添加对应moudel

   less配置: npm install less.loader  --save-dev

                    在配置文件中添加对应moudel(需要依赖css配置)

   url配置: npm install file.loader --save -dev

                  npm install url.loader --save-dev

                  在配置文件中添加对应moudel(limit值以下的转化为base64编码)

  ES6配置: npm install -D babel-loader @babel/core @babel/preset-env webpack

                 在配置文件中添加对应moudel

  本地server配置: npm install webpack-dev-server@2.9.3 --save-dev(webpack3.6.0对应server2.9.3)

          在配置为文件中添加devServer 服务器配置

  vue配置: npm install vue

                 解决版本为runtime不可用问题:

                 在配置文件中添加resolves{ Alisa{”$vue”: vue.e sm.js的路径}}

  插件:html-webpack-plugin(生成html)、uglifyjs-webpack-plugin(压缩代码)

  配置分离:npm install webpack-merge --save-dev

          分理成生产和发布、基础三个配置文件 

 

  配置文件信息:

复制代码
 1 const  path = require("path");
 2 const  webpack = require("webpack");
 3 const  HtmlWebpackPlugin = require("html-webpack-plugin");
 4 const  UglifyjsWebpackPlugin = require("uglifyjs-webpack-plugin");
 5 
 6 module.exports = {
 7     //入口
 8     entry: "./src/bbb.js",
 9     //出口
10     output: {
11         path: path.resolve(__dirname,"dist"),
12         filename: "main.js",
13 /*        publicPath: "dist/"*/
14     },
15     //loader
16     module: {
17         rules: [
18             //css
19             {
20                 test: /\.css$/i,
21                 //使用多个loader,从右向左读取
22                 //style.loader:样式添加到dom
23                 //css.loader:加载scc文件
24                 use: ["style-loader", "css-loader"],
25             },
26             //less
27             {
28                 test: /\.less$/,
29                 use: [{
30                     loader: "style-loader" // creates style nodes from JS strings
31                 }, {
32                     loader: "css-loader" // translates CSS into CommonJS
33                 }, {
34                     loader: "less-loader" // compiles Less to CSS
35                 }
36                 ]},
37             //img
38             {
39                 test: /\.(png|jpg|gif|jpeg)$/i,
40                 use: [
41                     {
42                         loader: 'url-loader',
43                         options: {
44                             limit: 10000,
45                             name: 'img/[name].[ext]',
46                         },
47                     },
48                 ]},
49             //ES6
50             {
51                 test: /\.m?js$/,
52                 //排除
53                 exclude: /(node_modules|bower_components)/,
54                 use: {
55                     loader: 'babel-loader',
56                     options: {
57                         //预设
58                         presets: ['@babel/preset-env']
59                     }
60                 }
61             },
62             //vue
63             {
64               test:/\.vue$/,
65               use:  ["vue-loader"]
66             }
67         ],
68     },
69     //当import vue时指定文件(指定版本)
70     resolve:{
71         alias:{
72             "vue$": "vue/dist/vue.esm.js"
73         }
74     },
75     //插件
76     plugins:[
77         //添加版权信息
78         new webpack.BannerPlugin("最终版权归zhaopan所有"),
79         //生成html插件
80         new HtmlWebpackPlugin({
81             template:"index.html"
82         }),
83         //压缩插件 会把版权注释等都删除
84         /*new UglifyjsWebpackPlugin(),*/
85     ],
86     //本地服务器
87     devServer:{
88         contentBase: "./dist",
89         inline: true,//热部署
90        /* host: 1997*/
91     }
92 }
复制代码

 

 

  配置版本信息:

 

 

 

                  

posted on   .11  阅读(68)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示