diff --git a/package.json b/package.json index b02251749..009add1a0 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,7 @@ "scripts": { "dev": "./scripts/dev", "dev:docs": "./scripts/dev-docs", + "serve": "./scripts/serve", "shrinkwrap": "npm-shrinkwrap --dev", "doctoc": "doctoc --maxlevel 3 README.md CONTRIBUTING.md", "build": "./scripts/build", diff --git a/scripts/serve b/scripts/serve new file mode 100755 index 000000000..afa01ba86 --- /dev/null +++ b/scripts/serve @@ -0,0 +1,17 @@ +#!/usr/bin/env bash +# Will expose the build version on: +# - http://0.0.0.0:8080/docsearch.css +# - http://0.0.0.0:8080/docsearch.js + +npm run build:css + +# /bundle.js in memory +webpack-dev-server \ + --config webpack.serve.config.babel.js \ + --hot \ + --inline \ + --no-info & \ +# rebuild docsearch.css and docsearch.min.css +onchange './src/styles/*.scss' -- npm run build:css & \ + +wait diff --git a/webpack.serve.config.babel.js b/webpack.serve.config.babel.js new file mode 100644 index 000000000..0675e8d78 --- /dev/null +++ b/webpack.serve.config.babel.js @@ -0,0 +1,40 @@ +import webpack from 'webpack'; +import {join} from 'path'; + +export default { + entry: './index.js', + devtool: 'source-map', + output: { + path: './dist/cdn', + filename: 'docsearch.js', + library: 'docsearch', + libraryTarget: 'umd' + }, + module: { + loaders: [{ + test: /\.js$/, exclude: /node_modules/, loader: 'babel' + }] + }, + devServer: { + contentBase: 'dist/cdn', + host: '0.0.0.0', + compress: true + }, + // when module not found, find locally first + // helps fixing the npm link not working with webpack + // http://stackoverflow.com/a/33722844/147079 + resolve: { + fallback: [join(__dirname, '..', 'node_modules')] + }, + // same issue, for loaders like babel + resolveLoader: { + fallback: [join(__dirname, '..', 'node_modules')] + }, + plugins: [ + new webpack.DefinePlugin({ + 'process.env': { + NODE_ENV: JSON.stringify(process.env.NODE_ENV) + } + }) + ] +};