最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • webpack--学习记录--基础一

    正文概述 掘金(非要换名字)   2021-01-13   401

    1、初始化一个项目,要有package.json文件

    在目录文件中执行npm init -y之后就会自动创建一个package.json

    {
    "name": "demo",
    "version": "1.0.0",
    "description": "",
    "main": "index.js",
    "scripts": {
      "test": "echo \"Error: no test specified\" && exit 1"
    },
    "keywords": [],
    "author": "",
    "license": "ISC"
    }
    
    

    2、安装webpack、webpack-cli

    npm install webpack webpack-cli -D
    

    3、在目录下创建一个src/index.js文件,使用webpack打包

    打包命令   npx webpack
    webpack会自动找src/index.js下的文件当做入口去进行打包
    输出到dist/下的index.js   在不进行配置下,src/index.js和dist目录都是webpack默认的
    

    这里因为没有html文件,所以在打包完之后需要自己手动新建一个html文件,然后引入js,在浏览器查看效果

    4、如果需要自己定义一个配置文件,可以取名叫webpack.config.js,使用命令npx webpack也会找这个文件,如果换其他文件名,例如:prod.config.js则需要在package.json中的script中配置

    "dev": "webpack --config prod.config.js --mode development"

    dev是可以执行的命令:npm run dev dev这个名字可以更换 后面的是你要执行指定的webpack配置文件

    "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1",
        "dev": "webpack --config prod.config.js --mode development",
        "build": "webpack"
      },
    

    这里在后面指定了--mode,不指定的话在编译会报错,也可以在配置文件中指定:

    module.exports = {
      mode:'development'
    }
    

    下面开始wenpack的详细配置介绍

    5、webpack的核心概念

      module.exports = {
      	entry:'./src/index.js' // string | object   webpack 执行构建的入口  默认:"./src/index.js"
        output:{
          path:path.resolve(__dirname, 'dist')
        }, // 配置资源输出位置和名称   必须是绝对路径  例如  path.resolve(__dirname, 'dist')
        mode:"", // 打包构建模式 =》开发模式和生产模式   区别是:开发模式不会压碎代码,方便调式和读取,生产模式压缩代码
        module:{},// 模块,webpack基于node,有一切皆模块概念   这里会配置一些规则,例如loaders
        plugins:[],// webpack功能扩展
      }
    

    6、webpack默认只能打包js和json,如果遇到css,img等静态资源都需要loader进行预处理,例如写一个css

    在src/assets/common.css

    body{
      background:red
    }
    

    /src/index.js中导入

      import from "./assets/common.css"
    

    这样打包时候会报错,原因就是webpack不能打包css文件,所以需要加loader去处理 需要先下载css-loader和style-loader

    loader加载顺序一定要写对,因为是按照从左到右加载的

    css-loader的作用很单一,只是处理css文件,但并不会插入到页面,而style-loader的作用是创建一个style标签,将css内容插入,然后将style标签插入到body的head标签中,然后打包才会生效

    prod.config.js

    module.exports = {
      module: {
        rules: [{
            test: /\.css/,
            use: ["style-loader", "css-loader"]
          }
      ]
      },
    }
    

    7、在实际项目中我们都需要自己手动创建html文件,因为webpack中有插件可以指定模板然后生成一个模板在dist目录中

    可以使用 html-webpack-plugin 使用npm install html-webpack-plugin -D 下载

    需要在目录下先创建一个html文件,作为生成模板,这样打包之后就会有html文件,不再需要手动创建,并且会自动引入生成的js文件

    const HtmlWebpackPlugin = require('html-webpack-plugin')
    module.exports = {
      plugins: [new HtmlWebpackPlugin({
          title: '测试',
          template: 'public/index.html' // 将指定文件作为生成html的模板
        }),
        new CleanWebpackPlugin(), // 清除dist文件
        new MiniCssExtractPlugin({  // 这个是可以将css文件单独抽离,之后会写到
          filename: 'assets/[name].css'
        })
      ]
    }
    

    起源地下载网 » webpack--学习记录--基础一

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元