webpack搭建前端开发环境

              webpack的版本已经是来到了4.0,口号是无配置就可以使用webpack,当然是使用一些基本的功能

                1.安装以下webpack的一些必须npm包

                  npm install webpack

                  npm install webpack-cli

                  npm init -y   初始化环境,这样就给你生成了一个package.json 文件

                执行完之后大致的目录结构是

                分享图片

               

               

                 2.按照惯例我们往项目上添加一些初始文件及文件夹

                  添加 index.html 在根目录上

                  添加src/index.js

                  index.js 内部的内容就是console.log(1)

              console.log(1)

                分享图片

               

               

                 3.上面初始结构就可以用了,webpack 4 又一份默认配置,入口文件就是src/index.js 而出口文件就是dist/main.js

                  接着我们执行 npx webpack ,这样我们就会生成一个dist文件夹,里面又一个main.js 文件

                分享图片

               

               

                 4.下面我们简单的验证一下功能,修改一下index.js的内容

                  在src的目录下添加print.js

              const printholle = function (key) {
                console.log(key)
              }
              
              export default printholle

                  修改后的index.js的内容

              import printholle from ‘./print‘
              
              printholle(‘11111‘)
              console.log(1)

                  直接在index.html 中引入index.js,然后再浏览器中运行

              分享图片  明显可以看到,import是不被识别的

               

               

                   我们尝试npm进行编译打包,从新再index.html中引入,查看运行结果,结果可行,这么我们就可以开始模块化开发了

              分享图片

               

               

                 2.上面只是简单的做了一些尝试,使用的是一些默认的配置,下面我们尝试自己去配置一下配置文件

                  首先我们再根目录上创建配置文件webpack.config.js ,因为打包其实本身是一个node程序,所以再配置文件上我们都是一些node的写法

                  最基础的当然是一个入口文件和一个出口文件

              const path = require(‘path’)
              
              module.exports = {
                entry: ‘./src/index.js‘,
                output: {
                  filename: ‘builde.js‘,
                  path: path.resolve(__dirname, ‘dist‘)
                }
              }

                entry  是入口文件  output 是出口文件  output.filename 是打包之后的文件名,执行npx webpack之后,我们再在index.html引入,我们也可以的到刚才引入main.js

                的结构

                分享图片

               

               

                 webpakc.config.js中肯定不是仅仅只有出口和入口配置

                 我们接下来看一下module ,这里是我们常常引入loader的地方,常的loader 例如 css-loader style-loader less-loader file-loader vue-loader 等等

                如果我们想在js中引入less样式表的话

                我们需要安装一写loader  如css-loader style-loader less-loader 还需要安装less

                webpack.config.js中的mudule配置,, 一定要注意的一个点是多个loader的引用顺序,less的顺序是style-loader,css-loader,less-loader

                整个loader的使用其实是逆序的 先使用less-loader 然后使用css-loader 最后使用css-loader.

              const path = require(‘path‘)
              
              module.exports = {
                entry: ‘./src/index.js‘,
                output: {
                  filename: ‘bundle.js‘,
                  path: path.resolve(__dirname,‘dist‘)
                },
                module: {
                  rules: [
                    {
                      test: /\.less$/,
                      use: [
                        ‘style-loader‘,
                        ‘css-loader‘,
                        ‘less-loader‘
                      ]
                    },
                    {
                      test: /\.(png|svg|jpg|gif|)$/,
                      use: [
                        ‘file-loader‘
                      ]
                    }
                  ]
                }
              }

                  下面是整个代码结构

                分享图片

                在js中import less     import ‘../assets/css/index.less‘;

                 less中的代码

              h1{
                color: red;
                font-size: 18px;
                span {
                  color: aqua;
                }
              }

                分享图片

               

               

                 引入less之后我们在浏览器中看到的结果

                如果我们想在js中是用图片的话,那么我们就需要使用file-loader,webpack的配置是下面这样的

                如果想使用字体的话,也是同样使用的file-loader

              {
                      test: /\.(png|svg|jpg|gif|)$/,
                      use: [
                        ‘file-loader‘
                      ]
                    }
              {
                       test: /\.(woff|woff2|eot|ttf|otf)$/,
                       use: [
                         ‘file-loader‘
                       ]
                    }

               

                这样的话,我们就基本熟悉的一些简单的webpack的配置使用。后续会再慢慢去深入。

                平常开发,初始化构建项目时,基本上都是使用成熟的脚手架,好多配置都是直接搬过来用,导致对于webpack本身了解的不够。

                随着开发进行项目变得越来越是庞大,每一次构建、打包也是越来越来慢,打包之后的文件也越来越大,这样使得基本的一些需求配置已经满足不了

                我们的项目开发。是时候对webpack进行一个深入学习了。

              相关文章
              相关标签/搜索
              每日一句
                每一个你不满意的现在,都有一个你没有努力的曾经。
              公众号推荐
                 一个历史类的公众号,欢迎关注
              一两拨千金
              香港蓝月亮精选免费资料大全管家婆王中王鉄算盘开奖结果2019开奖记录结果查询香港马会开奖结果历史纪录在线查询 荔波县| 枞阳县| 榆中县| 乌兰浩特市| 永川市| 孟津县| 烟台市| 营口市| 南乐县| 海晏县| 太和县| 竹溪县| 通渭县| 故城县| 炉霍县| 沧源| 哈密市| 开封市| 阿巴嘎旗| 许昌县| 华安县| 鹰潭市| 驻马店市| 永和县| 井研县| 望都县| 通道| 扎鲁特旗| 珠海市| 朝阳市| 柯坪县| 广德县| 曲麻莱县| 西安市| 天气| 霍邱县| 康马县| 宣威市| 南城县| 达孜县| 高阳县| 珠海市| 闽侯县| 托克逊县| 聂荣县| 宁晋县| 沁源县| 长岭县| 陆丰市| 从江县| 汽车| 苍山县| 蒲江县| 临邑县| 隆林| 巫溪县| 宣化县| 班玛县| 怀远县| 庆城县| 曲阜市| 三原县| 渭南市| 宜良县| 新竹县| 略阳县| 汶川县| 桦南县| 白银市| 泰安市| 桃园市| 淮安市| 桐梓县| 乐清市| 宜州市| 武功县| 左贡县| 平南县| 婺源县| 恩施市| 即墨市| 海盐县| 临沧市| 东宁县| 沅江市| 行唐县| 阿巴嘎旗| 汉沽区| 泉州市| 钟山县| 资兴市| 治县。| 成武县| 将乐县| 泾川县| 徐汇区| 玛沁县| 绿春县| 平陆县| 大洼县| 灌云县| 白山市| 奈曼旗| 亚东县| 石阡县| 荆门市| 绥化市| 镇远县| 安阳市| 景宁| 北川| 宣威市| 呼伦贝尔市| 哈巴河县| 沅江市| 会泽县| 郑州市| 德化县| 四子王旗| 樟树市| 天津市| 沽源县| 德庆县| 互助| 辽宁省| 大安市| 永兴县| 石屏县| 新营市| 贡觉县| 广东省| 沅陵县| 黎川县| 拜泉县| 鄯善县| 定边县| 通州市| 黄大仙区| 鄂托克前旗| 察隅县| 北宁市| 衡东县| 元阳县| 西安市| 罗定市| 辰溪县| 安乡县| 开江县| 汾阳市| 祁连县| 新乡县| 洛川县| 吉林市| 招远市| 资源县| 永顺县| 黄平县| 重庆市| 巧家县| 蓬安县| 桂平市| 连平县| 闸北区| 封丘县| 德惠市| 蒲江县| 开封市| 保定市| 宜城市| 山东| 韩城市| 会东县| 江口县| 云浮市| 舒城县| 汶上县| 黑山县| 红河县| 望奎县| 商丘市| 察雅县| 临西县| 芜湖市| 乌鲁木齐市| 如皋市| 兰考县| 东乡县| 恩施市| 邻水| 杭州市| 会同县| 洞口县| 隆回县| 乌拉特后旗| 龙口市| 夏河县| 余江县| 越西县| 吴忠市| 密山市| 咸丰县| 永川市| 宁安市| 安国市| 曲靖市| 汝阳县| 苏尼特右旗| 当雄县| 无锡市| 洪湖市| 河北省| 福建省| 桐柏县| 盈江县| 定西市| 察隅县| 定西市| 灵山县| 黄陵县| 双流县| 绵阳市| 高平市| 唐河县| 古浪县| 白城市| 巧家县| 游戏| 博野县| 缙云县| 嘉祥县| 新兴县| 龙口市| 游戏| 宜丰县| 安徽省| 山阴县| 嘉黎县| 山西省| 西畴县| 长海县| 隆回县| 南丹县| 来安县| 成都市| 罗山县| 兴宁市| 广汉市| 姚安县| 彭泽县| 怀来县| 綦江县| 定州市| 谷城县| 陵川县| 方城县| 特克斯县| 巴林右旗| 澎湖县| 通化市| 东海县| 郎溪县| 庆元县| 莱芜市| 星子县| 临西县| 涿鹿县| 同德县| 南溪县| 靖州| 卓尼县| 海伦市| 垦利县| 永城市| 卫辉市| 镇远县| 正安县| 宁明县| 马尔康县| 高邮市| 怀化市| 肇源县| 翼城县| 遂宁市| 乌海市| 宁海县| 嘉峪关市| 苏尼特左旗| 鄢陵县| 特克斯县| 连山| 广东省| 上犹县| 开化县| 清苑县| 平塘县| 丰都县| 林口县| 微博| 黎城县| 洮南市| 永寿县| 连南| 三原县| 梨树县| 太仆寺旗| 长武县| 周至县| 新蔡县| 达拉特旗| 武鸣县| 宜兴市| 墨脱县| 通化县| 德钦县| 新安县| 油尖旺区| 汽车| 龙陵县| 吉木萨尔县| 扎鲁特旗| 土默特右旗| 霞浦县| 嵊州市| 深水埗区| 城口县| 南平市| 兴文县| 沁阳市| 高平市| 舞阳县| 吴旗县| 定兴县| 东至县| 临江市| 明溪县| 宁津县| 许昌县| 安福县| 丰镇市| 阿巴嘎旗| 凤山县| 秦皇岛市| 肇庆市| 辛集市| 嘉善县| 宣武区| 内江市| 禹城市| 古浪县| 安徽省| 大田县| 错那县| 达拉特旗| 绥中县| 乌拉特前旗| 逊克县| 张家港市| 天镇县| 泊头市| 阿克苏市| 上思县| 神池县| 禄丰县| 霍山县| 镇平县| 泸溪县| 百色市| 博白县| 望城县| 莱阳市| 沂水县| 铅山县| 乌拉特前旗| 和平区| 大埔区| 平果县| 大石桥市| 万山特区| 武乡县| 临沭县| 万盛区| 旌德县| 凌云县| 谢通门县| 泾源县| 北票市| 海安县| 闸北区| 怀仁县| 拉萨市| 革吉县| 弋阳县| 安丘市| 红安县| 齐齐哈尔市| 遵化市| 阳信县| 裕民县| 阳谷县| 陇川县| 闵行区| 厦门市| 宜昌市| 綦江县| 花垣县| 龙门县| 自治县| 秦安县| 东兰县| 宝清县| 巴楚县| 偃师市| 彰化市| 江源县| 额济纳旗| 浦城县| 濮阳市| 治县。| 四川省| 黄冈市| 靖边县| 临潭县| 高碑店市| 吴桥县| 昌宁县| 始兴县| 丰镇市| 嘉黎县| 乐清市| 江北区| 碌曲县| 金门县| 从江县| 绥阳县| 花莲市| 右玉县| 普兰店市| 靖宇县| 柘城县| 三门峡市| 和龙市| 台东县| 三亚市| 墨玉县| 于都县| 西畴县| 武邑县| 江津市| 禄丰县| 吉林省| 兴山县| 榕江县| 嘉义市| 都安| 张家界市| 丹江口市| 汨罗市| 牡丹江市| 兴义市| 余干县| 和硕县| 琼海市| 黄浦区| 简阳市| 承德市| 苍梧县| 佛坪县| 浦江县| 汕尾市| 南漳县| 保康县| 宁阳县| 建湖县| 紫云| 双峰县| 嘉祥县| 新乐市| 息烽县| 祁门县| 秭归县| 凌海市| 望城县| 共和县| 柯坪县| 沙湾县| 乾安县| 阳朔县| 简阳市| 彝良县| 曲阜市| 正镶白旗| 古浪县| 桃源县| 丰县| 北碚区| 新余市| 林芝县| 铜陵市| 饶平县| 安康市| 牙克石市| 开江县| 富民县| 广元市| 甘谷县| 景谷| 凭祥市| 漳州市| 滦南县| 宜川县| 应城市| 美姑县| 江阴市| 噶尔县| 蚌埠市| 永州市| 杂多县| 海淀区| 黑龙江省| 泰宁县| 临朐县| 敦煌市| 体育| 和政县| 浪卡子县| 英德市| 海门市| 资讯| 故城县| 资中县| 东辽县| 古蔺县| 车致| 砀山县| 合川市| 苍溪县| 玉树县| 类乌齐县| 吉林市| 政和县| 平陆县| 锡林浩特市| 靖州| 三台县| 吉林省| 乃东县| 张家港市| 香河县| 梁河县| 会昌县| 咸宁市| 开阳县| 乌拉特前旗| 廉江市| 古交市| 苍南县| 苍南县| 柳河县| 温宿县| 海原县| 海原县| 龙门县| 秦皇岛市| 湾仔区| 茶陵县| 曲靖市| 阿荣旗| 荥经县| 巴林右旗| 虞城县| 黄梅县| 雅安市| 古浪县| 阿克陶县| 车险| 紫云| 望都县| 晋州市| 西盟| 石家庄市| 隆化县| 芦山县| 深州市| 远安县| 潞西市| 津南区| 太湖县| 城固县| 乌苏市| 昌黎县| 二手房| 黑河市| 福清市| 灵山县| 泰安市| 杭州市| 资讯| 山丹县| 苍梧县| 文化| 晋江市| 华宁县| 长岭县| 焦作市| 凤山县| 宝清县| 平江县| 贵阳市| 毕节市| 聂拉木县| 托克逊县| 承德县| 大宁县| 汉沽区| 咸阳市| http://m.jx1870finishv.fun http://wap.jx1870jazzv.fun http://www.hz0j3r0vo.fun http://www.jx1870guardv.fun http://m.jx1870gazev.fun http://www.jx1870fashionv.fun http://www.jx1870hirev.fun http://jx1870japanv.fun http://www.jx1870freev.fun http://m.hz0j1r2vo.fun http://wap.jx1870googlev.fun http://m.jx1870guardv.fun http://m.jx1870fatherv.fun http://www.jx1870huzorv.fun http://m.jx1870hopv.fun http://jx1870filev.fun http://hz0j4r0vo.fun http://jx1870joinv.fun