美文网首页
webpack-dev-server

webpack-dev-server

作者: 2764906e4d3d | 来源:发表于2018-12-25 19:56 被阅读0次

    webpack-dev-server基本使用

    1. 使用webpack-dev-server这个工具自动打包编译,运行npm i webpack -dev-server -D把这个工具安装到项目的本地开发依赖中去,安装完毕后这个工具的用法和webpack命令的用法完全一样
    2. 由于webpack -dev-server是本地安装的,所以无法当作脚本命令在终端中直接运行(只有安装到全局-g的工具才能在终端中正常执行
    3. 在package.json中的"scripts":加入代码
    "dev": "webpack-dev-server"
    
    1. npm run dev运行webpack-dev-server
    2. webpack -dev-server这个工具如果想要正常运行,要求在本地项目中安装webpack
    3. 将页面URL地址改为http://localhost:8080/src/可以看到项目的根目录
    4. 将导入的js包从根目录引入(将原来的本地文件删除也是会有样式),浏览器会自动刷新样式,保持与更改的实时一致
    <script src="/bundle.js"></script>
    
    1. webpack-dev-server帮我们打包生成的bundle.js 文件并没有存放到实际的物理磁盘上,而是直接托管到了电脑的内存中,所以项目根目录中找不到这个打包好的bundle.js,可以认为webpack-dev-server把打包好的文件以一种虚拟的形式托管到了项目的根目录中

    webpack -dev-server的常用命令参数

    1. --open自动打开浏览器(不用手动点击终端中出现的链接http://localhost:8080/)(在package.json中操作)
    "dev": "webpack-dev-server --open",
    
    1. --port设置端口
    "dev": "webpack-dev-server --open --port 3000",
    
    1. --contentBase设置默认打开路径,设置直接打开src 可以直接展示index界面
    "dev": "webpack-dev-server --open --port 3000 --contentBase src",
    
    1. --hot热更新
    "dev": "webpack-dev-server --open --port 3000 --contentBase src --hot",
    
    1. 配置devServer第二种方式
    const path=require('path')
    const webpack=require('webpack')//启用热更新 第二步
    module.exports={
        entry:path.join(__dirname,'./src/main.js'),
        output:{
         path:path.join(__dirname,'./dist'),
        filename:'bundle.js'},
        devServer:{
            open:true,//自动打开浏览器
            port:3000,//设置启动端口
            contentBase:'src',//指定托管的根目录
            hot:true,//启用热更新 第一步
    
        },
        plugins: [
            new webpack.HotModuleReplacementPlugin()//new 一个热更新的模块对象,启用热更新 第三步
    
        ]
    }
    

    html-webpack-plugin

    1. 下载html-webpack-plugin插件
    npm i html-webpack-plugin -D
    
    1. 导入内存中生成的HTML页面的插件
    const htmlWebpackPlugin=require('htmlWebpackPlugin')
    
    1. new htmlWebpackPlugin 创建一个内存中生成的HTML插件
    2. template 指定 模板页面 将来会根据指定的页面路径去生成内存中的页面
    3. filename 指定生成页面的名称
     plugins: [
        new webpack.HotModuleReplacementPlugin(),//new 一个热更新的模块对象,启用热更新 第三步
        new htmlWebpackPlugin({
            template: path.join(__dirname,'./src/index.html'),
            filename:'index.html'
        })
    ]
    
    1. 当使用html-webpack-plugin之后,不需要手动处理bundle.js的引用路径,这个插件已经自动创建一个合适的script标签,并且引用正确的路径

    loader

    1. 使用import导入css样式表(在main.js中)
    import './css/index.css'
    
    1. webpack默认只能打包处理js类型的文件,无法处理非js文件,如果要处理非js文件,要手动安装一些合适的第三方loader加载器
    2. 如果要处理css文件需要安装loader
    npm i style-loader css-loader –D
    
    1. 打开webpack.config.js配置文件,在里面新增一个配置节点,叫module(用于配置所有第三方模块加载器) 他是一个对象,在这个对象上有一个rules属性,存放了所有第三方文件匹配和处理规则
    2. 配置处理.css文件的loader规则
    module: {
        rules: [
            {text:/\.css$/,use:['style-loader','css-loader']},
        ]
    }
    

    相关文章

      网友评论

          本文标题:webpack-dev-server

          本文链接:https://www.haomeiwen.com/subject/mwxqlqtx.html