美文网首页
webpack实践(4)-- 开发环境

webpack实践(4)-- 开发环境

作者: kim_jin | 来源:发表于2019-06-25 09:37 被阅读0次

    开发环境

    我们在webpack的配置文件中将mode设置成development,具体的代码如下:

    webpack.config.js

    source map

    当我们使用webpack打包源代码的时候,可能会很难最终到errorwarning的位置,例如,我们现在有三个源文件打包到了一个bundle中,而其中有一个源文件错误了,那么报错的时候,会直接指向bundle.js 。我们想要准确的知道错误来自某一个源文件,这样的提示信息往往没有什么实际意义。
    为了我们可以更加轻松的追踪错误和警告,JavaScript提供了source map功能,可以将编译后的代码映射到原始源代码。我们看一下下一个例子。首先对webpack的配置文件进行配置:

    webpack.config.js

    然后我们在print.js里面的代码在语法上有错误

    print.js

    然后我们进行打包,我们成功打包之后我们点击按钮,点击后在控制台会输出如下的错误:

    控制台输出错误

    方便我们进行简单的错误定位。

    • webpack watch mode(webpack 观察模式)
    • webpack-dev-server(最可能被用到)
    • webpack-dev-middleware

    watch mode(观察模式)

    如果其中一个文件被更新,代码将被重新编译,所以你不必再去手动运行整个构建。
    但是这里需要我们手动的启动webpack watch mode的npm scripts我们看一下这里是如何进行配置的:

    package.json

    现在我们执行命令npm run watch 我们会进入到watch模式下,但是和build指令不同,这个执行没有退出,也就是我们还在一直处于被监控的状态,我们在修改文件,点击保存的时候,就会直接进行编译。

    使用 webpack-dev-server

    我们看一下我们应该怎么使用,首先我们需要先安装一下。

    npm install --save-dev webpack-dev-server
    

    webpack的配置文件中进行配置:

    webpack.config.js

    上面怎么配置的意思是将dist目录下的文件serve到localhost:8000下,这个时候我们可以添加一个可以直接运行dev servescript,在package.json

    现在,在命令行中运行 npm start,我们会看到浏览器自动加载页面。如果你更改任何源文件并保存它们,web server 将在编译代码后自动重新加载

    使用 webpack-dev-middleware

    webpack-dev-middleware 是一个封装器(wrapper),它可以把webpack 处理过的文件发送到一个 serverwebpack-dev-server 在内部使用了它,然而它也可以作为一个单独的 package 来使用,以便根据需求进行更多自定义设置。下面是一个 webpack-dev-middleware 配合 express server 的示例。

    首先我们需要先安装expresswebpack-dev-middleware
    因为我的网速比较慢,这里我是使用yarn 来进行安装的,安装的命令为:

    yarn add express webpack-dev-middleware
    

    接下来我们调整webpack的配置文件,确保middleware 功能是可以正常使用的

    webpack.config.js

    我们在脚本中使用了publicPath,用来确认资源文件可以正确的在http://localhost:3000,我们也可以指定port number,下面我们自定义express server
    先创建一个项目目录:

    项目目录 server.js

    然后我们添加一个npm script,让我们可以方便的运行服务:

    package.json

    我们执行npm run server 的时候,成功之后,我们访问http://localhost:3000就看到了我们写的界面。

    相关文章

      网友评论

          本文标题:webpack实践(4)-- 开发环境

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