Use webpack with a development server that provideslive reloading. This should be used for development only.
It uses webpack-dev-middleware under the hood, which providesfast in-memory access to the webpack assets.
First things first, install the module:
npm install webpack-dev-server --save-dev
Note: While you can install and run webpack-dev-server globally, we recommendinstalling it locally. webpack-dev-server will always use a local installationover a global one.
There are two main, recommended methods of using the module:
The easiest way to use it is with the webpack CLI. In the directory where yourwebpack.config.js
is, run:
npx webpack serve
Following options are available with webpack serve
:
Usage: webpack serve|server|s [entries...] [options]
Run the webpack dev server.
Options:
-c, --config <value...> Provide path to a webpack configuration file e.g. ./webpack.config.js.
--config-name <value...> Name of the configuration to use.
-m, --merge Merge two or more configurations using 'webpack-merge'.
--env <value...> Environment passed to the configuration when it is a function.
--node-env <value> Sets process.env.NODE_ENV to the specified value.
--progress [value] Print compilation progress during build.
-j, --json [value] Prints result as JSON or store it in a file.
--entry <value...> The entry point(s) of your application e.g. ./src/main.js.
-o, --output-path <value> Output location of the file generated by webpack e.g. ./dist/.
-t, --target <value> Sets the build target e.g. node.
-d, --devtool <value> Determine source maps to use.
--no-devtool Do not generate source maps.
--mode <value> Defines the mode to pass to webpack.
--name <value> Name of the configuration. Used when loading multiple configurations.
--stats [value] It instructs webpack on how to treat the stats e.g. verbose.
--no-stats Disable stats output.
--watch-options-stdin Stop watching when stdin stream has ended.
--no-watch-options-stdin Do not stop watching when stdin stream has ended.
--allowed-hosts <value...> Allows to enumerate the hosts from which access to the dev server are allowed (useful when you are proxying dev server, by default is 'auto').
--allowed-hosts-reset Clear all items provided in 'allowedHosts' configuration. Allows to enumerate the hosts from which access to the dev server are allowed (useful when you are proxying dev server, by default is 'auto').
--bonjour Allows to broadcasts dev server via ZeroConf networking on start.
--no-bonjour Disallows to broadcasts dev server via ZeroConf networking on start.
--client-web-socket-transport <value> Allows to set custom web socket transport to communicate with dev server.
--no-client Negative 'client' option.
--client-logging <value> Allows to specify options for client script in the browser or disable client script.
--client-progress Prints compilation progress in percentage in the browser.
--no-client-progress Does not print compilation progress in percentage in the browser.
--client-reconnect [value] Tells dev-server the number of times it should try to reconnect the client.
--no-client-reconnect Tells dev-server to not to try to connect the client.
--client-overlay Enables a full-screen overlay in the browser when there are compiler errors or warnings.
--no-client-overlay Disables a full-screen overlay in the browser when there are compiler errors or warnings.
--client-overlay-errors Enables a full-screen overlay in the browser when there are compiler errors.
--no-client-overlay-errors Negative 'client-overlay-errors' option.
--client-overlay-warnings Enables a full-screen overlay in the browser when there are compiler warnings.
--no-client-overlay-warnings Negative 'client-overlay-warnings' option.
--client-web-socket-url <value> Allows to specify URL to web socket server (useful when you're proxying dev server and client script does not always know where to connect to).
--client-web-socket-url-hostname <value> Tells clients connected to devServer to use the provided hostname.
--client-web-socket-url-port <value> Tells clients connected to devServer to use the provided port.
--client-web-socket-url-pathname <value> Tells clients connected to devServer to use the provided path to connect.
--client-web-socket-url-protocol <value> Tells clients connected to devServer to use the provided protocol.
--client-web-socket-url-username <value> Tells clients connected to devServer to use the provided username to authenticate.
--client-web-socket-url-password <value> Tells clients connected to devServer to use the provided password to authenticate.
--web-socket-server <value> Allows to set web socket server and options (by default 'ws').
--no-web-socket-server Negative 'web-socket-server' option.
--compress Enables gzip compression for everything served.
--no-compress Disables gzip compression for everything served.
--history-api-fallback Allows to proxy requests through a specified index page (by default 'index.html'), useful for Single Page Applications that utilise the HTML5 History API.
--no-history-api-fallback Negative 'history-api-fallback' option.
--host <value> Allows to specify a hostname to use.
--hot [value] Enables Hot Module Replacement.
--no-hot Disables Hot Module Replacement.
--http2 Allows to serve over HTTP/2 using SPDY.
--no-http2 Does not serve over HTTP/2 using SPDY.
--https Allows to configure the server's listening socket for TLS (by default, dev server will be served over HTTP).
--no-https Disallows to configure the server's listening socket for TLS (by default, dev server will be served over HTTP).
--https-passphrase <value> Passphrase for a pfx file. Deprecated, it will be removed in favor of the `server.options.passphrase` option.
--https-request-cert Request for an SSL certificate. Deprecated, it will be removed in favor of the `server.options.requestCert`
option.
--no-https-request-cert Negative 'https-request-cert' option.
--https-ca <value...> Path to an SSL CA certificate or content of an SSL CA certificate. Deprecated, it will be removed in favor of the
`server.options.ca` option.
--https-ca-reset Clear all items provided in 'https.ca' configuration. Path to an SSL CA certificate or content of an SSL CA
certificate. Deprecated, it will be removed in favor of the `server.options.ca` option.
--https-cacert <value...> Path to an SSL CA certificate or content of an SSL CA certificate. Deprecated, it will be removed in favor of the
`server.options.cacert` option.
--https-cacert-reset Clear all items provided in 'https.cacert' configuration. Path to an SSL CA certificate or content of an SSL CA
certificate. Deprecated, it will be removed in favor of the `server.options.cacert` option.
--https-cert <value...> Path to an SSL certificate or content of an SSL certificate. Deprecated, it will be removed in favor of the
`server.options.cert` option.
--https-cert-reset Clear all items provided in 'https.cert' configuration. Path to an SSL certificate or content of an SSL
certificate. Deprecated, it will be removed in favor of the `server.options.cert` option.
--https-crl <value...> Path to PEM formatted CRLs (Certificate Revocation Lists) or content of PEM formatted CRLs (Certificate
Revocation Lists). Deprecated, it will be removed in favor of the `server.options.crl` option.
--https-crl-reset Clear all items provided in 'https.crl' configuration. Path to PEM formatted CRLs (Certificate Revocation Lists)
or content of PEM formatted CRLs (Certificate Revocation Lists). Deprecated, it will be removed in favor of the
`server.options.crl` option.
--https-key <value...> Path to an SSL key or content of an SSL key. Deprecated, it will be removed in favor of the `server.options.key`
option.
--https-key-reset Clear all items provided in 'https.key' configuration. Path to an SSL key or content of an SSL key. Deprecated,
it will be removed in favor of the `server.options.key` option.
--https-pfx <value...> Path to an SSL pfx file or content of an SSL pfx file. Deprecated, it will be removed in favor of the
`server.options.pfx` option.
--https-pfx-reset Clear all items provided in 'https.pfx' configuration. Path to an SSL pfx file or content of an SSL pfx file.
Deprecated, it will be removed in favor of the `server.options.pfx` option.
--ipc [value] Listen to a unix socket.
--live-reload Enables reload/refresh the page(s) when file changes are detected (enabled by default).
--no-live-reload Disables reload/refresh the page(s) when file changes are detected (enabled by default)
--magic-html Tells dev-server whether to enable magic HTML routes (routes corresponding to your webpack output, for example '/main' for 'main.js').
--no-magic-html Disables magic HTML routes (routes corresponding to your webpack output, for example '/main' for 'main.js').
--open [value...] Allows to configure dev server to open the browser(s) and page(s) after server had been started (set it to true to open your default browser).
--no-open Does not open the default browser.
--open-target <value...> Opens specified page in browser.
--open-app-name <value...> Open specified browser.
--open-app <value...> Open specified browser.
--open-reset Clear all items provided in 'open' configuration. Allows to configure dev server to open the browser(s) and page(s) after server had been started (set it to true to open your default browser).
--open-target-reset Clear all items provided in 'open.target' configuration. Opens specified page in browser.
--open-app-name-reset Clear all items provided in 'open.app.name' configuration. Open specified browser.
--port <value> Allows to specify a port to use.
--server-type <value> Allows to set server and options (by default 'http').
--server-options-passphrase <value> Passphrase for a pfx file.
--server-options-request-cert Request for an SSL certificate.
--no-server-options-request-cert Negative 'server-options-request-cert' option.
--server-options-ca <value...> Path to an SSL CA certificate or content of an SSL CA certificate.
--server-options-ca-reset Clear all items provided in 'server.options.ca' configuration. Path to an SSL CA certificate or content
of an SSL CA certificate.
--server-options-cacert <value...> Path to an SSL CA certificate or content of an SSL CA certificate.
--server-options-cacert-reset Clear all items provided in 'server.options.cacert' configuration. Path to an SSL CA certificate or
content of an SSL CA certificate.
--server-options-cert <value...> Path to an SSL certificate or content of an SSL certificate.
--server-options-cert-reset Clear all items provided in 'server.options.cert' configuration. Path to an SSL certificate or content
of an SSL certificate.
--server-options-crl <value...> Path to PEM formatted CRLs (Certificate Revocation Lists) or content of PEM formatted CRLs (Certificate
Revocation Lists).
--server-options-crl-reset Clear all items provided in 'server.options.crl' configuration. Path to PEM formatted CRLs (Certificate
Revocation Lists) or content of PEM formatted CRLs (Certificate Revocation Lists).
--server-options-key <value...> Path to an SSL key or content of an SSL key.
--server-options-key-reset Clear all items provided in 'server.options.key' configuration. Path to an SSL key or content of an SSL
key.
--server-options-pfx <value...> Path to an SSL pfx file or content of an SSL pfx file.
--server-options-pfx-reset Clear all items provided in 'server.options.pfx' configuration. Path to an SSL pfx file or content of
an SSL pfx file.
--static [value...] Allows to configure options for serving static files from directory (by default 'public' directory).
--no-static Negative 'static' option.
--static-directory <value...> Directory for static contents.
--static-public-path <value...> The static files will be available in the browser under this public path.
--static-serve-index Tells dev server to use serveIndex middleware when enabled.
--no-static-serve-index Does not tell dev server to use serveIndex middleware.
--static-watch Watches for files in static content directory.
--no-static-watch Does not watch for files in static content directory.
--static-reset Clear all items provided in 'static' configuration. Allows to configure options for serving static files from directory (by default 'public' directory).
--static-public-path-reset Clear all items provided in 'static.publicPath' configuration. The static files will be available in the browser under this public path.
--watch-files <value...> Allows to configure list of globs/directories/files to watch for file changes.
--watch-files-reset Clear all items provided in 'watchFiles' configuration. Allows to configure list of globs/directories/files to watch for file changes.
Global options:
--color Enable colors on console.
--no-color Disable colors on console.
-v, --version Output the version number of 'webpack', 'webpack-cli' and 'webpack-dev-server' and commands.
-h, --help [verbose] Display help for commands and options.
To see list of all supported commands and options run 'webpack --help=verbose'.
Webpack documentation: https://webpack.js.org/.
CLI documentation: https://webpack.js.org/api/cli/.
Made with ♥ by the webpack team.
Note: For more information on above options explore this link.
NPM package.json scripts are a convenient and useful means to run locally installedbinaries without having to be concerned about their full paths. Simply define ascript as such:
{
"scripts": {
"serve": "webpack serve"
}
}
And run the following in your terminal/console:
npm run serve
NPM will automagically reference the binary in node_modules
for you, andexecute the file or command.
While it's recommended to run webpack-dev-server via the CLI, you may also choose to start a server via the API.
See the related API documentation for webpack-dev-server
.
Either method will start a server instance and begin listening for connectionsfrom localhost
on port 8080
.
webpack-dev-server is configured by default to support live-reload of files asyou edit your assets while the server is running.
See the documentation for more use cases and options.
While webpack-dev-server
transpiles the client (browser) scripts to an ES5state, the project only officially supports the last two versions of majorbrowsers. We simply don't have the resources to support every whackybrowser out there.
If you find a bug with an obscure / old browser, we would actively welcome aPull Request to resolve the bug.
We do our best to keep Issues in the repository focused on bugs, features, andneeded modifications to the code for the module. Because of that, we ask userswith general support, "how-to", or "why isn't this working" questions to try oneof the other support channels that are available.
Your first-stop-shop for support for webpack-dev-server should be the excellentdocumentation for the module. If you see an opportunity for improvementof those docs, please head over to the webpack.js.org repo and open apull request.
From there, we encourage users to visit the webpack Gitter chat andtalk to the fine folks there. If your quest for answers comes up dry in chat,head over to StackOverflow and do a quick search or open a newquestion. Remember; It's always much easier to answer questions that include yourwebpack.config.js
and relevant files!
If you're twitter-savvy you can tweet #webpack with your questionand someone should be able to reach out and lend a hand.
If you have discovered a
We welcome your contributions! Please have a read of CONTRIBUTING.md for more information on how to get involved.
This project is heavily inspired by peerigon/nof5.
实现webpack的实时打包构建 由于每次重新修改代码之后,都需要手动运行webpack打包的命令,比较麻烦,所以使用webpack-dev-server来实现代码实时打包编译,当修改代码之后,会自动进行打包构建。 运行cnpm i webpack-dev-server --save-dev安装到开发依赖 安装完成之后,在命令行直接运行webpack-dev-server来进行打包,发现报错,此时
1、安装webpack-dev-server cnpm install webpack-dev-server -D 2、package.js同级目录下新建package.config.js文件。代码如下: module.exports={ entry:'', output:'', devServer:{ port:9999, host:'localhost'
npm run dev fortune@1.0.0 dev D:\work\uni\fs\fengshui_vue webpack-dev-server --inline --progress --config build/webpack.dev.conf.js ‘webpack-dev-server’ 不是内部或外部命令,也不是可运行的程序 或批处理文件。 npm ERR! code ELIFE
webpack-dev-server @3.x的版本只能和webpack-cli @3.x的版本配合使用 如果有人知道webpack各种工具包的版本对应关系,欢迎评论留言,十分感谢 //目前已经测试的这个配置是能够运行的 "devDependencies": { "@babel/core": "^7.13.16", "@babel/plugin-proposal-c
最近接触一个项目,前后分离的,在启动前端的时候用到一个命令:npm run server ,感觉很神奇,直接可以让我们在浏览器中就可以访问网页或js了,很新奇,自己研究了一下,别忘记了。 首先说这是什么工具才用到的命令,网上各种搜,总结一下: 1.webpack-dev-server是一个小型的Node.js Express服务器,注意知识点:“服务器。 2.通过在package.json中配置可
1.注意版本,可能会有冲突 个人建议使用以下版本,本人没有出现冲突。 "webpack": "^5.42.1", "webpack-cli": "^4.9.2", "webpack-dev-server": "^3.11.3" 可以使用@指定固定的版本号,最好在最后加上-D。 //在终端进行配置 npm install webpack@5.42.1 webpack-cli@4.9.2 webpac
项目配置 "devDependencies": { "cross-env": "^7.0.3", "html-webpack-plugin": "^5.2.0", "ts-loader": "^8.0.17", "webpack": "^5.23.0", "webpack-cli": "^4.5.0", "webpack-dev-server": "
node版本9 "dependencies": { "nvm": "0.0.4", "webpack-cli": "^4.9.1", "webpack-command": "^0.5.1" }, "devDependencies": { "webpack": "^4.46.0" } 运行webpack-dev-server的时候就会遇到 bash: webpack-dev-server: com
最近研究webpack略有小成,特此写篇博客。虽然webpack有官网api,但是个人认为webpack api一点都不人性化, 不自己研究研究,根本看不懂。今天先从写webpack-dev-server开始。webpack-dev-server的作用就是可以在 前端自己起一个服务,不用依托nginx,或者express等,更爽的是它可以实现实时更新,不用你去不停的F5刷新浏 览器。废话不多说,下
webpack1.x webpack 1.13.2-1.13.3 webpack-dev-server 1.15.0-1.16.0 转载于:https://www.cnblogs.com/mengff/p/6691319.html
问题内容: 我开始在开发使用的服务器端渲染应用程序的环境中工作。我对每个Webpack包在开发和生产(运行时)环境中的作用感到非常困惑。 这是我的理解摘要: :是一个软件包,是一种工具,用于将Web应用程序的不同部分结合在一起,然后捆绑成一个.js文件(通常是)。然后,结果文件将在产品环境中提供以由应用程序加载,并包含运行代码的所有必需组件。功能包括缩小代码,缩小代码等。 :是一个提供 服务器 以
The source code has been moved into the main NativeScript monorepo and all issues are handled in the main repo now. This repository is now in read-only mode (archived) for reference. NativeScript Webp
我开始工作与与环境开发一个服务器端渲染应用程序与。我对每个webpack包在dev和prod(运行时)环境中的作用感到非常困惑。 以下是我理解的总结: :是一个包,一个工具,用于将web应用程序的不同部分连接在一起,然后捆绑在一个单独的包中。js文件(通常是)。然后,结果文件在prod环境中提供,由应用程序加载,并包含运行代码所需的所有组件。功能包括缩小代码、缩小尺寸等。 :是一个提供服务器来处理
问题内容: 我正在尝试使用webpack-dev-server运行一个简单的程序,但出现此错误: 我已经使用以下npm命令安装了webpack 并且我有以下配置: 我已经尝试了一切,但我真的迷路了。有人有什么主意吗? 问题答案: 是不足够的。 您还必须安装以下内容: 另外,您还可以安装:
问题内容: 偶然地,我将node_modules文件夹添加到了我的git中。然后,我再次使用将其删除。 现在,当我尝试启动webpack服务器时,出现以下错误: 起初我以为这只是我的项目,但是后来我签出了本教程的代码检查点:同样的错误!因此,全球似乎有些混乱。 这是我到目前为止尝试过的: 并重新安装 正如有人在github上提到这个问题 使用以下命令全局安装webpack 从本系统中完全删除nod
我正在使用webpack开发一个React webapp,大致与本教程并排。 现在,当我尝试启动webpack服务器时,我得到以下错误: 一开始我以为这只是我的项目,但后来我检查出了教程的代码检查点:相同的错误!所以全球似乎有什么事情出了问题。 以下是我目前尝试的方法: null