I use babel-loader, but can't figure out how to generate or where find source maps for transpiled files. I tried eval-source-map
, inline-source-map
, source-map
.
webpack.config.js
const BowerWebpackPlugin = require("bower-webpack-plugin"); module.exports = { entry: './src/script/index.jsx', output: { filename: 'bundle.js', sourceMapFilename: "bundle.js.map", publicPath: 'http://localhost:8090/assets' }, debug: true, devtool: 'inline-source-map', module: { loaders: [ { test: /\.js[x]?$/, loaders: ['react-hot', 'jsx', 'babel'], exclude: /node_modules/ }, { test: /\.scss$/, loaders: [ 'style', 'css?sourceMap', 'sass?sourceMap' ] }, { test: /\.less$/, loaders: [ 'style', 'css?sourceMap', 'less?sourceMap' ] }, { test: /\.css$/, loaders: [ 'style', 'css'] }, { test: /\.woff$/, loader: "url-loader?limit=10000&mimetype=application/font-woff" }, { test: /\.woff2$/, loader: "url-loader?limit=10000&mimetype=application/font-woff2" }, { test: /\.(eot|ttf|svg|gif|png)$/, loader: "file-loader" } ] }, plugins: [ new BowerWebpackPlugin() ], externals: { //don't bundle the 'react' npm package with our bundle.js //but get it from a global 'React' variable 'react': 'React' }, resolve: { extensions: ['', '.js', '.jsx'] } }
package.json
{ "name": "Won", "version": "0.0.1", "description": "Internal evidence application", "main": "index.jsx", "scripts": { "start": "npm run serve | npm run dev", "serve": "./node_modules/.bin/http-server -p 8080", "dev": "webpack-dev-server -d --progress --colors --port 8090" }, "author": "And", "license": "ISC", "devDependencies": { "babel-core": "^5.8.23", "babel-loader": "^5.3.2", "bootstrap": "^3.3.5", "bootstrap-select": "^1.7.3", "bootstrap-table": "^1.8.1", "bower-webpack-plugin": "^0.1.8", "colresizable": "^1.5.2", "css-loader": "^0.16.0", "events": "^1.0.2", "extract-text-webpack-plugin": "^0.8.2", "file-loader": "^0.8.4", "flux": "^2.1.1", "http-server": "^0.8.0", "jquery": "^2.1.4", "jquery-ui": "^1.10.5", "json-markup": "^0.1.6", "jsx-loader": "^0.13.2", "less": "^2.5.1", "less-loader": "^2.2.0", "lodash": "^3.10.1", "node-sass": "^3.2.0", "object-assign": "^4.0.1", "path": "^0.11.14", "react": "^0.13.3", "react-hot-loader": "^1.2.9", "sass-loader": "^2.0.1", "style-loader": "^0.12.3", "svg-sprite-loader": "0.0.2", "url-loader": "^0.5.6", "webpack": "^1.12.0", "webpack-dev-server": "^1.10.1" } }
edit://
After all this webpack.config.js and this package.json works for me.
edit2://
Now I use this webpack config
In a sense, source maps are the decoder ring to your secret (minified) code. Using Webpack, specifying devtool: "source-map" in your Webpack config will enable source maps, and Webpack will output a sourceMappingURL directive in your final, minified file.
Webpack will generate the files and put them in the /dist folder for you, but it doesn't keep track of which files are actually in use by your project. In general it's good practice to clean the /dist folder before each build, so that only used files will be generated. Let's take care of that with output.
When you run webpack dev server what webpack dev server does is, instead of creating a bundled file ( e.g. bundle. js ) in dist folder, it creates a bundled file in memory. It then serves that information to express , and then express creates a web socket connection to render that on the browser on a certain port no.
Use webpack-dev-server -d
-d
is shorthand for --debug --devtool source-map --output-pathinfo
.output-pathinfo
adds comments to the generated bundle that explain what module/files are included in what places. So in the generated code, the comment is added to this line of code: require(/* ./test */23)
which says that 23
is pointing to the test
module. This is mostly helpful when you're looking at the code Webpack has generated, and not so much when stepping through the debugger. I got this example from this relevant bit of documentation.
This all works because webpack-dev-server
accepts all the same flags as webpack
.
--content-base
- by default the dev server will serve files in the directory you run the command in. If your build files are in build/
, you need to specify --content-base build/
so the dev server will serve up files in the build
directory--inline
- auto-reload whenever you save a file with some changes!If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With