前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >webpack 第二篇(搭建一个webpack)

webpack 第二篇(搭建一个webpack)

作者头像
菜的黑人牙膏
发布于 2019-01-21 08:22:28
发布于 2019-01-21 08:22:28
52300
代码可运行
举报
运行总次数:0
代码可运行

为了省事,我直接在github上clone了一个小型webpack项目, 这是地址:https://github.com/acexyf/WebpackTest

接下来会基于该项目进行webpack的一些构建进行拆解。

在clone项目后,通过npm install安装依赖包,然后执行npm start命令,然后打开view/index.html即可看到运行的结果。

首先,我们来看一下根目录下的package.json:

      首先是script对象,script对象就是简化执行命令,当我们执行npm start时也就是执行了webpack命令,实际开发中,要执行的命令通常比较长,需要在后面添加一系列的参数来暴露错误信息、压缩代码等,通过在package.json文件中配置,可以简化方便我们工作。如:(

        "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js"

) 执行npm dev即执行后面那个很长的命令。

  接下来的是devDependecies和dependecies对象, 这两个对象都是描述该项目所需要的依赖,配置后可以通过npm install一次安装,他们的区别在于,devDep是开发中需要而实际生产不需要的依赖,而depend即是生产和开发情况下都必须的依赖。有时候在开发时我们调试需要某个依赖,即安装到devDep即可,因为生产中并不需要该依赖。

第二个文件即是根目录下的webpack.config.js

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let webpack = require('webpack');
let path = require('path');
let ExtractTextPlugin = require("extract-text-webpack-plugin");
module.exports = {
    entry: {
        index: './public/javascript/entry.js'
    },
    output: {
        path: path.resolve(__dirname, 'build'),
        filename: '[name].bundle.js',
        publicPath: './build/'
    },
    module: {
        loaders: [
            { test: /\.css$/, loader: ExtractTextPlugin.extract('style-loader', 'css-loader') },
            { test: /\.(png|jpg|gif)$/, loader: 'file-loader?limit=8192&name=../[path][name].[ext]' },
            { test: /\.js[x]?$/, loader: 'babel' }
        ]
    },
    plugins: [
        //查找相等或近似的模块,避免在最终生成的文件中出现重复的模块
        // new webpack.optimize.CommonsChunkPlugin('common.js'),
        // new webpack.optimize.UglifyJsPlugin(),
        new ExtractTextPlugin('[name].css', { allChunks: true })
    ]
}

这里有四个主要点,即entry\output\module(loaders)\plugins, 关于他们的概念在上一篇文章中有解释,而其配置语法可以在官方中寻找,这里只要继续关注大概的结构。

接下来根据config.js中的entry属性找到入口文件,即'./public/javascript/entry.js'

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 引入css文件 该文件会通过css-loader等Loader转换成js文件类型以通过webpack的识别
require('../stylesheet/style.css');
// 引入module.js 即 text 等于 module.js文件中的module.exports
// 即 test = 'It works from module.js.'
let text= require('./module.js');
// 下面的是正常的js代码
let array = [1, 2, 3, 4];

class Person{
    constructor(name){
        this.name = name;
    }
    sayHello(){
        console.log(`hi I am ${this.name} `);
    }
}
let person=new Person('xyf')
person.sayHello();

document.write('It works.' + array[0]);
document.write(text);

关于模块,推荐阅读朴灵老师的深入浅出的node.js中的模块一章。

当我们只想npm start时, webpack会找到该入口文件,并打包成我们定义的output对象中的属性(文件名和输出位置),即最后会生成一个build文件夹如下:

最后是views/html,这个文件比较简单,就不贴代码了,单纯的引用我们打包后生成的bundle.js。

关于webpack,通过其插件和loader可以做非常多的功能,特别是热加载在开发中为程序员省下了很大的精力,推荐使用vue-cli搭建一个项目,可以参考该文章对其配置熟悉。

https://github.com/hehongwei44/my-blog/issues/205

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-03-17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
webpack入门
前言:这两天在网上找了些视频和资料学习webpack,最后发现官网上的教程原来就写得很好,只是都是全英文的一开始不想去看。。。。今天认真看了下官网教程,然后总结下这两天的对webpack入门的学习,写一下互相学习,英语好的就直接去官网看吧webpack官方入门教程。(话说很久没学英语了,学好英语真的很重要) 1、安装 打开node,敲入命令行 ①全局安装
Ewall
2018/09/04
5260
前端模块化之webpack的初识与使用
大家好,今天我来和大家一起来了解前端模块化工具webpack的知识,如有疑问和错误,欢迎指正,一起交流探讨哈!
全栈加加
2021/02/24
5290
前端模块化之webpack的初识与使用
webpack学习之入门实例
用户1141560
2017/12/26
7400
webpack学习之入门实例
webpack学习(二):先写几个webpack基础demo
一、先写一个简单demo1 1-1安装好webpack后创建这样一个目录: 1-2:向src各文件和dist/index.html文件写入内容: <!DOCTYPE html> <html lang=
柴小智
2018/04/10
6390
webpack学习(二):先写几个webpack基础demo
webpack
npm install webpack -g npm init -y npm install webpack --save-dev
河湾欢儿
2018/09/06
6360
Webpack之阿拉丁神灯
现今的web,都很丰富,它们拥有着复杂的JavaScript代码,一大堆依赖包,为了简化开发的复杂度,前端世界出现了很多很好的实践方法。
江米小枣
2020/06/15
6280
React 搭建开发环境
本文记录了本人以及目前团队从无到有使用React的过程,我们将从webpack开始说起,一步一步展现React最基本的开发生态。在这里并不会介绍任何jsx或es6相关的语法,只聚焦于如何使用react生态搭建利于团队协作、有利于提升开发效率的开发环境。
随风溜达的向日葵
2018/07/25
1.6K0
React 搭建开发环境
Webpack学习笔记
Webpack 是一个前端资源加载/打包工具。它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源。找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Scss,TypeScript等),并将其打包为合适的格式以供浏览器使用。 Webpack的工作方式是:把你的项目当做一个整体,通过一个给定的主文件(如:index.js),Webpack将从这个文件开始找到你的项目的所有依赖文件,使用loaders处理它们,最后打包为一个浏览器可识别的JavaScript文件。
earthchen
2020/09/24
1.4K0
针对 webpack + es6 + react 安装使用及其遇到的问题!
使用node npm进行安装,首先,我先附上webpack.config.js的代码,再进一步使用:
White feathe
2021/12/08
3510
针对 webpack + es6 + react 安装使用及其遇到的问题!
webpack的基础入门
现今的很多网页其实可以看做是功能丰富的应用,它们拥有着复杂的JavaScript代码和一大堆依赖包。为了简化开发的复杂度,前端社区涌现出了很多好的实践方法
javascript.shop
2019/09/04
1.6K0
webpack的基础入门
webpack 从入门到放弃
Webpack + ES6 已经成为目前最流行的前端解决方案,本文是 Webpack2 学习教程。
李振
2021/11/26
6210
webpack2的一些使用入门
首先创建一个webpack文件夹我取名叫webpackVue(为了后续把vue集成进来) 1、首先用npm初始化一下,在这个目录下,执行npm init 2、npm install webpack --save-dev 3、安装一些自己要用到的loader(加载css,js,scss等文件): npm install style-loader css-loader sass-loader node-sass --save-dev 4、安装一些自己需要的plugin(html自动更行):npm install
windseek
2018/06/14
6180
搭建webpack项目框架
随着业务发展和前端人员的增加,搭建一个通用框架以及制定统一规范就成了必然。对于选型这方面,一开始好像就没考虑其他框架,直接选了webpack。webpack的优点就不多说了,可扩展性,强大的npm插件库,说干就干。
jojo
2019/03/12
2.4K0
搭建webpack项目框架
入门webpack(下)
插件(Plugins) 插件(Plugins)是用来拓展Webpack功能的,它们会在整个构建过程中生效,执行相关的任务。 Loaders和Plugins常常被弄混,但是他们其实是完全不同的东西,可以这么来说,loaders是在打包构建过程中用来处理源文件的(JSX,Scss,Less..),一次处理一个,插件并不直接操作单个文件,它直接对整个构建过程其作用。 Webpack有很多内置插件,同时也有很多第三方插件,可以让我们完成更加丰富的功能。 使用插件的方法 要使用某个插件,我们需要通过npm安装它,然后
前朝楚水
2018/04/03
9080
入门webpack(下)
webpack4实用配置指南-上手篇
算起来已经有3到4个项目的webpack构建打包经历。然而每次搭建起来还是有新手既视感,比较捉急。工具用法的东西,好记性不如烂笔头,有必要系统梳理下webpack的配置常用配置以及构建优化。
elson
2018/06/19
4.8K0
webapck 的学习基础,适合小白,初学者,进阶者学习。
Webpack 是德国开发者 Tobias Koppers 开发的模块加载器兼打包工具,在webpack中,它能把各种资源,例如JS(含JSX)、coffee、样式(含less/sass)、图片等都作为模块来使用和处理。因此, Webpack 当中 js 可以引用 css, css 中可以嵌入图片 dataUrl。 对应各种不同文件类型的资源, Webpack 有对应的模块 loader比如vue用的是​​vue-loader​​
七条猫
2024/10/14
1000
webapck 的学习基础,适合小白,初学者,进阶者学习。
webpack 4.x 初级学习记录
以上就是4版本之前的使用方式,但是这种方式在4版本中就不能使用了,4版本有自己的新的方式
SpiritLing
2018/10/10
7600
谈谈webpack2的一些事
从v1迁移到v2 1. 配置类型 在webpack1的时候,主要是通过导出单个object来进行配置。例如下面的配置: // webpack1 导出方式 module.export = { entry : 'app.js', output : { */... */}, /* ... */ }; 而在webpack2中,则有三种方式来灵活配置,可以针对不同的场景。 1.1 通过不同环境变量导出不同的配置文件 // 可以有两种方式传递当前值,一种是简单传递字符串,另外一种则是传递一个对象
糊糊糊糊糊了
2018/05/09
1.3K0
gulp+webpack工具整合简介
webpack简介 Webpack 是一个模块打包器。它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源。 webpack特点 Webpack 有两种组织模块依赖的方
xiangzhihong
2018/01/26
1.6K0
前端工程化 - webpack 基础
默认配置文件 webpack.config.js,可以通过 webpack --config 指定配置文件
Cellinlab
2023/05/17
3150
相关推荐
webpack入门
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档