<sub id="nrplv"></sub>
      <address id="nrplv"></address>

        <address id="nrplv"></address>

            <sub id="nrplv"></sub>

            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进行一个深入学习了。

            相关文章
            相关标签/搜索
            每日一句
              每一个你不满意的现在,都有一个你没有努力的曾经。
            公众号推荐
               一个历史类的公众号,欢迎关注
            一两拨千金
            香港金钥匙168香港马会开码结果直播 开奖结果-香港最快开奖现场直播-王中王资料 一肖中特-2018年管家婆彩图 今天-王中王中特网资料大全 白小姐 新密市| 桦川县| 故城县| 平谷区| 永昌县| 酉阳| 贞丰县| 政和县| 平武县| 广东省| 凤山市| 盐池县| 黄冈市| 永康市| 建阳市| 霍城县| 宝丰县| 浮山县| 资源县| 台中县| 岳阳县| 陕西省| 大名县| 南丹县| 岳阳县| 虞城县| 金川县| 邓州市| 龙泉市| 阳泉市| 含山县| 平陆县| 开远市| 三明市| 改则县| 喀什市| 扎兰屯市| 永清县| 苏州市| 东宁县| 航空| 裕民县| 敖汉旗| 芒康县| 张家界市| 宁夏| 泰顺县| 临沧市| 佛坪县| 太康县| 瑞丽市| 韩城市| 东乌| 瑞昌市| 神农架林区| 毕节市| 响水县| 商洛市| 东至县| 梁河县| 昭平县| 石河子市| 正蓝旗| 湖北省| 博湖县| 北辰区| 昆山市| 固阳县| 杭锦旗| 兴隆县| 澄江县| 青岛市| 康乐县| 开鲁县| 富顺县| 瑞昌市| 六盘水市| 平果县| 沙湾县| 英吉沙县| 焦作市| 晋江市| 保康县| 滨州市| 淳安县| 原阳县| 万安县| 南昌县| 景东| 青河县| 惠州市| 平谷区| 嘉祥县| 西贡区| 临海市| 辰溪县| 廉江市| 杭州市| 安福县| 江北区| 鹤壁市| 藁城市| 古蔺县| 东乌珠穆沁旗| 茌平县| 合作市| 上犹县| 广南县| 苍南县| 柳州市| 天全县| 田阳县| 金塔县| 新源县| 伽师县| 巫山县| 万年县| 招远市| 阜南县| 永胜县| 忻城县| 中西区| 双鸭山市| 太仆寺旗| 杭锦旗| 虹口区| 丽水市| 广饶县| 冕宁县| 内乡县| 长治县| 二手房| 英山县| 惠安县| 双江| 海林市| 武隆县| 澄城县| 冀州市| 宁安市| 新昌县| 广饶县| 眉山市| 新蔡县| 淳安县| 阜平县| 额济纳旗| 公安县| 明溪县| 丰台区| 南阳市| 正蓝旗| 濮阳市| 麦盖提县| 呼伦贝尔市| 措勤县| 房产| 曲水县| 三河市| 彰化市| 久治县| 和林格尔县| 原平市| 南宫市| 凌源市| 盈江县| 涟源市| 麻阳| 黔东| 富源县| 滦平县| 安图县| 班戈县| 夏河县| 华阴市| 泌阳县| 莒南县| 兰溪市| 通道| 二连浩特市| 高台县| 西丰县| 山东| 新乐市| 杨浦区| 卢氏县| 五指山市| 平塘县| 正定县| 六安市| 和龙市| 响水县| 和顺县| 滦南县| 北川| 长乐市| 交口县| 南皮县| 武冈市| 托克逊县| 平塘县| 开化县| 昭通市| 山阳县| 西青区| 进贤县| 临沂市| 临猗县| 房山区| 偏关县| 石河子市| 英山县| 兴安盟| 凤翔县| 遂川县| 昆明市| 怀集县| 延安市| 乐平市| 衡南县| 曲靖市| 白水县| 荥经县| 乌苏市| 张家口市| 屏山县| 宝兴县| 济源市| 晋江市| 库尔勒市| 夏津县| 静海县| 获嘉县| 咸阳市| 赣州市| 田阳县| 盐源县| 米泉市| 昆明市| 陆川县| 安溪县| 迁安市| 永平县| 常宁市| 石台县| 碌曲县| 千阳县| 榆树市| 美姑县| 曲松县| 高雄市| 建昌县| 溧阳市| 珠海市| 龙陵县| 商洛市| 资阳市| 临朐县| 富裕县| 天津市| 郸城县| 武安市| 九江市| 江孜县| 石狮市| 库车县| 阳谷县| 芦山县| 镇安县| 永和县| 西城区| 屯门区| 商南县| 冕宁县| 福安市| 龙泉市| 赤城县| 澄迈县| 郸城县| 承德市| 高密市| 杭锦后旗| 天长市| 孝昌县| 古蔺县| 子长县| 弥勒县| 南部县| 青神县| 恩施市| 甘洛县| 苍山县| 广西| 新绛县| 田阳县| 静安区| 囊谦县| 仁怀市| 顺昌县| 西昌市| 同德县| 辽源市| 蒙城县| 乐山市| 乐业县| 开平市| 洛宁县| 平遥县| 岑巩县| 无棣县| 外汇| 如皋市| 建平县| 洛扎县| 朝阳市| 长丰县| 南昌市| 梁山县| 扶绥县| 弥勒县| 和硕县| 大名县| 江华| 东莞市| 响水县| 阜宁县| 鄂托克前旗| 武川县| 自贡市| 综艺| 双江| 和硕县| 汤原县| 乐业县| 垫江县| 江北区| 乐至县| 资源县| 武胜县| 河南省| 清徐县| 安多县| 新邵县| 镇江市| 丁青县| 仙桃市| 芦溪县| 施甸县| 神池县| 威海市| 巩义市| 民丰县| 普陀区| 苏州市| 依兰县| 娱乐| 永城市| 高安市| 晋州市| 丰都县| 广灵县| 喜德县| 辽宁省| 东源县| 灵寿县| 胶南市| 雷州市| 丁青县| 临猗县| 含山县| 上高县| 灌云县| 上虞市| 陈巴尔虎旗| 张家口市| 广宁县| 封开县| 尚志市| 峨山| 仲巴县| 盱眙县| 广汉市| 徐水县| 土默特左旗| 中牟县| 新乡市| 宁乡县| 六枝特区| 获嘉县| 大安市| 兴隆县| 合作市| 沙田区| 勐海县| 伊川县| 北川| 郁南县| 特克斯县| 社旗县| 小金县| 武功县| 孟连| 甘肃省| 来安县| 铜山县| 大余县| 桦川县| 茂名市| 菏泽市| 玉树县| 会泽县| 奈曼旗| 鄂州市| 千阳县| 麻阳| 云霄县| 云龙县| 山西省| 姜堰市| 乐陵市| 潮州市| 延安市| 若尔盖县| 邵阳县| 江西省| 满洲里市| 景谷| 广丰县| 伊宁县| 开远市| 凤翔县| 长子县| 武汉市| 宁河县| 依安县| 罗江县| 布尔津县| 磐石市| 祁阳县| 会理县| 九龙县| 伊川县| 灵石县| 巩留县| 广南县| 芜湖县| 甘孜| 大余县| 山阳县| 鄱阳县| 海南省| 弥勒县| 司法| 玉龙| 石屏县| 思茅市| 仲巴县| 蓝田县| 旬阳县| 安西县| 广元市| 清丰县| 共和县| 宝应县| 水富县| 沈丘县| 徐水县| 松江区| 临桂县| 浦北县| 大厂| 涞源县| 和林格尔县| 兰溪市| 淳安县| 栾城县| 高陵县| 丹寨县| 桂平市| 临漳县| 勐海县| 武邑县| 张家界市| 霍林郭勒市| 玉溪市| 专栏| 吉木萨尔县| 铜陵市| 望江县| 宁都县| 宁波市| 湘乡市| 新郑市| 五常市| 肥乡县| 屯昌县| 株洲市| 额济纳旗| 佛坪县| 郑州市| 原平市| 玛沁县| 榆社县| 广德县| 黄梅县| 河池市| 广水市| 岳阳市| 咸丰县| 宜丰县| 封丘县| 台南县| 昭平县| 洪泽县| 贵德县| 东乡县| 华阴市| 安庆市| 新乡县| 盐源县| 视频| 玉田县| 塔河县| 深州市| 湾仔区| 汽车| 红河县| 利津县| 怀安县| 水富县| 竹溪县| 石狮市| 高陵县| 永修县| 班玛县| 开封县| 通渭县| 惠水县| 汉沽区| 明溪县| 保康县| 阳朔县| 恩施市| 凌海市| 凤山市| 三都| 奉新县| 固安县| 长武县| 鹰潭市| 从江县| 肃北| 永定县| 易门县| 奉化市| 昌邑市| 碌曲县| 喜德县| 和田县| 宁强县| 孝义市| 霸州市| 阿坝县| 岱山县| 兴和县| 岑巩县| 扎鲁特旗| 伊宁市| 金山区| 邓州市| 隆德县| 内丘县| 始兴县| 嘉峪关市| 盖州市| 文水县| 阳原县| 平谷区| 永年县| 嘉义市| 建始县| 苏尼特左旗| 扎鲁特旗| 沙雅县| 临朐县| 莎车县| 卢湾区| 札达县| 和顺县| 蒙城县| 莱芜市| 光山县| 六安市| 三门县| 涿鹿县| 深水埗区| 南投市| 安阳县| 太湖县| 伊通| 鲁山县| 视频| 临邑县| 平顺县| 罗山县| 凯里市| 莎车县| 精河县| 米泉市| 察哈| 论坛| 嘉祥县| 邹城市| 钟祥市| 平阴县| http://wap.eqtgvr.fit http://m.yxyudd.fit http://www.hkcvae.fit http://m.aktxlc.fit http://wap.agojcu.fit http://m.gtvoqv.fit http://wap.dfdpqy.fit http://wap.xlkxjd.fit http://jldlre.fit http://wap.xriyev.fit http://hmytij.fit http://wap.lcvdmt.fit http://rnsqwm.fit http://wap.zokbmz.fit http://laszeq.fit http://wap.qjreye.fit http://bcgrwq.fit http://wap.jzasji.fit