webpack/全栈开发常用工具

webpack(全局安装)

    //webpack自身只有打包编译功能+插件可以实现打包,编译,测试等功能.
    安装:
        cnpm i -g webpack
    编写需要编译的文件
        //src/1.js代码
        import mod from './mod.js';//引入mod模块
        
        consloe.log(mod);
        //src/mod.js
       export default 12;//输出整体模块是12;
        //export 可以输出任意东西;export default class{};export default {a :12;b:5,fun(){xxx}}; export 与 import 可以在MDN查看详细使用文档
        //若export使用 export let a = 12;export let b = 5;不使用default,即不是输出模块,接收的JS就需要使用import {a,b as nb} from './mod.js';来接收属性;as为取别名
    编写配置文件:
        webpack.config.js //若不使用这个文件名,webpack编译时需要使用webpack --config XXX;XXX为任意自定义的文件名
        //代码
        module.exports ={
            entry:'./src/1.js',//需要编译的文件路径,配置文件沿用node规则,此处路径要加./,否则会被当做系统模块去查找
            output:{
                path:'dest/',//输出的路径,此处建议使用path模块下的绝对路径函数resolve('dest/')
                filename: 'bundle.js',//输出的文件名
            }
        }
        //webpack多入口,即多文件编译
        module.exports ={
            entry:{
                index:'./src/a',//编译a文件
                b:'./src/b'//编译b文件
            },
            output:{
                path:'dest/',//输出的路径,此处建议使用path模块下的绝对路径函数resolve('dest/')
                filename: '[name].bundle.js',//此处的name为entry中的键,会被编译为index.bundle.js与b.bundle.js两个文件
            }
        }
    使用webpack编译文件
    控制台输入webpack运行即可;因为全局安装之后即为安装cli,可以使用命令行了;

webpack(本地安装,启用webpack服务器webpack-dev-server)

webpack-dev-server(帮助开发的服务器,可以再服务器环境下测试页面等功能) webpack(功能模块) webpack-cli(命令行模块)

1. 安装 cnpm i webpack-dev-server webpack webpack-cli -D
2. 配置文件\ webpack.config.js
const Webpack = require('webpack');
    //代码
    module.exports ={
        entry:'./src/1.js',//需要编译的文件路径,配置文件沿用node规则,此处路径要加./,否则会被当做系统模块去查找
        output:{
            path:'dest/',//输出的路径,此处建议使用path模块下的绝对路径函数resolve('dest/')
            filename: 'bundle.js',//输出的文件名
        },
        mode:'development',//测试版,production为正式版
        // webpack-dev-server配置
        plugins:[
        //开启webpack的热加载模块,配合hot:true
        new Webpack.HotModuleReplacementPlugin()
        ]
        devServer:{
            contentBase:'static',//静态文件建议使用path模块下的绝对路径函数resolve('static/')
            port:8089,//运行端口
            hot:true,//开启热加载,需要配合webpack的HotModuleReplacementPlugin()函数使用,此时仅能使用js文件的自动刷新,静态文件需要在启动脚本命令中添加--watch
            historyApiFallback: true,//用来适应前台路由
        }
    }
3. 此时需要控制台输入webpack-dev-server --inline --watch来启动服务器,编译后的文件存在内存中(或者是dev-server默认将文件编译在根目录),html文件引用时直接使用编译后的文件名即可(bundle.js),--inline为加载刷新时刷新整个页面,--watch为监听静态页面自动刷新

webpack使用loader(俗称:加载器,装载器)

babel-loader用来编译es6 安装 babel-loader(给webpack提供接口) babel-core(真正的功能代码) babel-preset-env(环境预设)

    module.exports ={
        entry:{
            index:'./src/a',//编译a文件使用loader可以不写后缀名,
            b:'./src/b'//编译b文件
        },
        output:{
            path:'dest/',//输出的路径,此处建议使用path模块下的绝对路径函数resolve('dest/')
            filename: '[name].bundle.js',//此处的name为entry中的键,会被编译为index.bundle.js与b.bundle.js两个文件
        },
        module:{//所有使用loader的配置都在module中配置
            rules:[
                {
                    test:/\.js$/,//以js结尾的文件
                    exclude:/node_modules/,//需要排除的js文件,node_modules文件夹下的js文件
                    use:{
                        loader:'babel-loader',//使用babel-loader
                        options:{
                            presets:['env']//配置使用环境预设
                        }
                    }
                }
            ]
        }
    }
    //此处可以完成编译,但是无法使用,坐等后续学习,

css-loader用来编译css\less\sass等 安装 css-loader

    //创建css文件,直接在css.js中可以引用该文件 import cs1 from './cs1.css'
    //webpack配置文件中,编译css.js文件即可,文件中cs1即为css文件中的代码
    // module如下
        module:{//所有使用loader的配置都在module中配置
            rules:[
                {
                    test:/\.css$/,//以css结尾的文件,如果是less等,需要改成对应的后缀名
                    use:{
                        loader:'css-loader',//使用css-loader
                        options:{
                            presets:['env']//配置使用环境预设
                        }
                    }
                }
            ]
        }

扩展

爬虫如果需要传参的时候,根据访问方法get直接在网址后面?传参,post直接使用write('{"xxx":"xxx"}');

全栈开发常用工具
1. 编译类
    babel      --> ES6编译成ES5
    grunt\gulp --> 压缩等功能
2. 打包类
    browserify --> 一堆文件打包成单个文件
3. 开发辅助
    brower-sync --> 多端同步,移动端在线测试使用
4. 测试类
    单元测试 --> 对模块、函数进行测试
    集成测试 --> 对项目进行测试
    压力测试 --> 测试项目性能、负载能力、与隐藏BUG
webpack + 插件 处理以上全部问题;

npm 命令 -g与-D的使用
-g为全局安装,安装的是命令行,即 webpack-cli
-D为本地安装,安装的是webpack文件包

你可能感兴趣的:(webpack/全栈开发常用工具)