'Webpack - no output file generated?

I have the following webpack config:

var path = require('path')
var webpack = require('webpack')


module.exports = {
   entry: {
      main: './scripts/app/main.js'
   },
  output: {
     path: path.resolve(__dirname, './scripts/app/bundle/'),
     publicPath: '/scripts/app/bundle/',
     filename: '[name].js'
  },
  ...

When i run the command npm run dev it shows that main.js has been emitted

When I browse to /scripts/app/bundle/main.js sure enough the file is loaded in the browser

But when i look inthe physical path there is no file - seems like its only in memory

This is what I have in package.json:

"scripts": {
  "dev": "cross-env NODE_ENV=development webpack-dev-server --open --hot",
  "build": "cross-env NODE_ENV=production webpack --progress --hide-modules"
 },

How do I generate a physical file.



Solution 1:[1]

webpack-dev-server does not generate files on disk -- only on memory. However you do have some options:

  • Option 1: Stop the dev server and instead run the command webpack --watch, which will use webpack to build your app and produce output to the disk. The downside is you won't have hot reloading.
  • Option 2: Append /webpack-dev-server to the URL where you are running the server. So, if your server is running on localhost:3000, you can view files by going to the URL http://localhost:3000/webpack-dev-server. The files will still be served from memory, but you will be able to see them through this URL.
  • Option 3: See this plugin. It will force webpack-dev-server to write files to disk.

Solution 2:[2]

webpack-dev-server supports writing output to disk, use writeToDisk option under devMiddleware option

References:

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Christian Santos
Solution 2 WW00WW