资讯专栏INFORMATION COLUMN

webpack2.x 中文文档 翻译 之 开发Development

GeekGhc / 1984人阅读

摘要:下载完成之后你可以这样启动它如果控制台提醒这个指令无效,可以尝试最好的方法是在中添加命令如下上述命令会使浏览器自动打开到地址。下载完成,如下使用。

开发Development

在这篇中我们将说明怎样开始开发,以及增从三个工具中择一进行开发。
假使你已经设置了webpack.config.js设置文件。

该文档已在webpack2.x中存在,点击这里

永远不要再生产产品中使用这些工具,绝对不要

调整你的编辑器 Adjusting Your Text Editor

一些编辑器有安全模式,导致文件在保存时不能编译。

不同的编辑器有不同的方式,一些常用的是:

Sublime Text 3 -添加"atomic_save":false到你的用户设置中

intelliJ 搜索"safe write" 并且设置成无效。

Vim 设置:set backupcopy=yes到你的设置中

Source Mpas

当javascript出错时,你总是想知道到底是哪一行出错,但是因为webpack是编译输出
的文件,所以导致这不是那么容易。

Source mpas就是用来解决这个问题。这里有很多的设置每一种都有他们自己的优点
和缺点。开始之前,我们需要这样设置。

devtool:"cheap-eval-source-map
选择一个工具 Choosing a Tool

webpack可以使用一个监视模式(watch mode),在这种模式下,当你所监视的文件发生变化时
就会重新编译文件。webpack-dev-server提供了一个简单的开发服务器,能够实现实时预览功能。
如果你已经有一个开发服务器,并且想更灵活些,·webpack-dev-middleware能够作为中间件(middleware)。

webpack-dev-server和webpack-dev-miffffdleware使用内存编译(in-memory compilation),也就是说,
打包的文件不会保存到硬盘中。这使得变异速度更快,导致更少的文件错误。

在大多数情况下,你将想要使用webpack-dev-server,因为它开始项目最简单,并且提供了很多开箱即用的功能。

监视模式 webpack Watch mode

该模式下,webpack监视文件变化,如果检测到变化,webpack将会重新编译文件。
在编译时我们可以添加个可视化的进度条。命令如下

webpack --progress --watch

修改文件,并保存。你将看到重新编译。

watch mode仅仅是个服务器,所以你需要提供一些东西。一个简单的服务器是serve.通过(npm i serve -g)下载。之后你就可以在输出文件的目录启动它。

serve
webpack-dev-server

webpack-dev-server提供了一个服务器兼实时预览功能。很容易开始。
开始之前,确保你已经创建了一个index.html文件,并且引入了编译后的文件。假设这个变异后的文件(output.filename)是bundle.js.

在npm中下载webpack-dev-server。

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

下载完成之后你可以这样启动它

webpack-dev-server --open
如果控制台提醒这个指令无效,可以尝试
`node_modules/.bin/webpack-dev-server`.
最好的方法是在`package.json`中添加命令,如下:
`"script":{"start":"webpack-dev-server"}`

上述命令会使浏览器自动打开到http://localhost:808地址。

修改项目的一个文件并保存。控制台将会显示重新编译。做完这些,页面会刷新。如果控制台没有变化,
或许是watchOptions需要修改下。

上述一切ok,你可以更进一步: Hot Module Replacement。这是一个接口,能够实现页面不刷新的情况下替换模块。
查看怎样设置HMR

默认情况下使用的是"inline"模式。这种模式下——实时加载是必须的,并且显示绑定文件中的错误提示。开发时这种模式
会在控制台现实编译的错误以及警告提醒。

webpack-dev-server能够做很多事,例如代理请求到你的后台服务器。更多使用和功能查看
开发服务器文档(devSever documentation)

webpack 开发中间件 webpack-dev-middleware

webpack-dev-middleware 的作用是连接中间件。当你已经使用了node服务器时,或者想更多的控制服务器,这个是很有用的。

中间件(middleware)能够保持webpack在内存中编译。当变异进行时,它能够延迟访问到编译完成时。

从npm下载这个依赖。

npm install express webpack-dev-middleware --save-dev

下载完成,如下使用。

let express = require("express");
let webpackDevMiffffdleware = require("webpack-dev-middleware");
let webpack = require("webpack");
let webpackConfig = require("./webpack.config");

let app = express();
let compiler = webpack(webpackConfig);

app.use(webpackDevMiffffdleware(compiler,{
  publicPath:"/"  //与"output.publicPath"相同
}));

app.listen(3006,(){
  console.log("监听端口是3000!");
});

取决于你所设置的output.publicPathoutput.filename,你的打包文件现在可以在http://localhost:3006/bundle.js访问到。

默认情况下使用的watch mode,也可以使用lazy mode,这个模式下仅当访问入口文件时才进行编译。

lazy mode设置如下

app.use(webpackDevMiffffdleware(compiler,{
  lazy:true,
  filename:"bundle.js"
}));

这里有更多你可用的设置。查看devServer decumentation

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/81819.html

相关文章

  • webpack2.x 中文文档 翻译 公开路径(pbulic path)

    摘要:公开路径该条已在中文网存在点击这里有一个非常有用的设置,允许你设置一个所有资源的基础路径在你的应用中。使用案例这里有有些实际应用中的案例,其中它使用的非常灵活。 公开路径(pbulic path) 该条已在webpack2.x中文网存在,点击这里 webpack有一个非常有用的设置,允许你设置一个所有资源的基础路径在你的应用中。它叫做publicPath。 使用案例(Use cases...

    W4n9Hu1 评论0 收藏0
  • webpack2.x 中文文档 翻译 依赖管理 Dependency Management

    摘要:依赖管理该条已在中文网存在,点击这里表达式来调用当你的请求包含表达式,那个一个上下文环境将被创建。一个包含所有父文件夹和子及后代文件夹中以结尾的文件的上下文。一个函数,返回一个数组,包含上下文模块能够处理的所有的请求。 依赖管理 Dependency Management 该条已在webpack2.x中文网存在,点击这里 es6 modules commonjs amd 表达式...

    raledong 评论0 收藏0
  • webpack2.x 中文文档 翻译 出口Output

    摘要:出口影响编译的输出告诉怎样编译输出的文件允许多个入口一个出口的情况。该选项实现跨域加载模块可以的值是命名每个出口文件。不必明确绝对路径。使用设置项,设置具体位置。仅仅命名文件名字即可。 出口Output 影响编译的输出告诉webpack怎样编译输出的文件允许多个入口一个出口的情况。 用法 const config = { output: bundle.js }; module.e...

    weizx 评论0 收藏0
  • webpack2.x 中文文档 翻译 分离库代码Code Splitting - Librari

    摘要:浏览器需要重新下载打包后的文件,即使文件的绝大部分都没有变化。分离并且以来命名新的入口能够缓和当前的问题。现在运行绑定的检查结果是只是被绑定到这个绑定文件中。 分离库代码Code Splitting - Libraries 这个在webpack2.x中文网已存在,点击这里 让我们想一个简单的应用——momentjs,他是一个事件格式化的库。安装moment. npm install -...

    elva 评论0 收藏0
  • 代码分离-import() webpack2.x 中文文档 翻译

    摘要:代码分离使用中文文档地址点击这里动态导入目前,类函模块加载的语法建议整体交给。在中的是个分离点,用来把被请求的模块独立成一个单独的模块。被替代因为在中使用已经不合建议规范,因此将在版本中启用。 代码分离-使用import() 中文文档地址点击这里 动态导入 目前,类函模import()块加载的语法建议——syntax proposal整体交给ECMAScript。ES2015(es6)...

    jaysun 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<