e52ae65a42
Added some colors to the notes and basic support for displaying the colors on the main list Added a toggle to disable the fancy text editor and just use a basic textarea Added some mobile styles with much better support for smaller screens Added tag suggestions based on user input, excluding tags from current note, only using tags user has put into system Cleaned and refactored a bunch of stuff
97 lines
3.0 KiB
JavaScript
Executable File
97 lines
3.0 KiB
JavaScript
Executable File
'use strict'
|
|
const utils = require('./utils')
|
|
const webpack = require('webpack')
|
|
const config = require('../config')
|
|
const merge = require('webpack-merge')
|
|
const path = require('path')
|
|
const baseWebpackConfig = require('./webpack.base.conf')
|
|
const CopyWebpackPlugin = require('copy-webpack-plugin')
|
|
const HtmlWebpackPlugin = require('html-webpack-plugin')
|
|
const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin')
|
|
const portfinder = require('portfinder')
|
|
|
|
const HOST = process.env.HOST
|
|
const PORT = process.env.PORT && Number(process.env.PORT)
|
|
|
|
const devWebpackConfig = merge(baseWebpackConfig, {
|
|
module: {
|
|
rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap, usePostCSS: true })
|
|
},
|
|
// cheap-module-eval-source-map is faster for development
|
|
devtool: config.dev.devtool,
|
|
|
|
// these devServer options should be customized in /config/index.js
|
|
devServer: {
|
|
clientLogLevel: 'warning',
|
|
historyApiFallback: {
|
|
rewrites: [
|
|
{ from: /.*/, to: path.posix.join(config.dev.assetsPublicPath, 'index.html') },
|
|
],
|
|
},
|
|
// hot: true,
|
|
contentBase: false, // since we use CopyWebpackPlugin.
|
|
compress: true,
|
|
host: HOST || config.dev.host,
|
|
port: PORT || config.dev.port,
|
|
open: config.dev.autoOpenBrowser,
|
|
overlay: config.dev.errorOverlay
|
|
? { warnings: false, errors: true }
|
|
: false,
|
|
publicPath: config.dev.assetsPublicPath,
|
|
proxy: config.dev.proxyTable,
|
|
quiet: true, // necessary for FriendlyErrorsPlugin
|
|
disableHostCheck: true,
|
|
watchOptions: {
|
|
poll: config.dev.poll,
|
|
}
|
|
},
|
|
plugins: [
|
|
new webpack.DefinePlugin({
|
|
'process.env': require('../config/dev.env')
|
|
}),
|
|
new webpack.HotModuleReplacementPlugin(),
|
|
new webpack.NamedModulesPlugin(), // HMR shows correct file names in console on update.
|
|
new webpack.NoEmitOnErrorsPlugin(),
|
|
// https://github.com/ampedandwired/html-webpack-plugin
|
|
new HtmlWebpackPlugin({
|
|
filename: 'index.html',
|
|
template: 'index.html',
|
|
inject: true
|
|
}),
|
|
// copy custom static assets
|
|
new CopyWebpackPlugin([
|
|
{
|
|
from: path.resolve(__dirname, '../static'),
|
|
to: config.dev.assetsSubDirectory,
|
|
ignore: ['.*']
|
|
}
|
|
])
|
|
]
|
|
})
|
|
|
|
module.exports = new Promise((resolve, reject) => {
|
|
portfinder.basePort = process.env.PORT || config.dev.port
|
|
portfinder.getPort((err, port) => {
|
|
if (err) {
|
|
reject(err)
|
|
} else {
|
|
// publish the new Port, necessary for e2e tests
|
|
process.env.PORT = port
|
|
// add port to devServer config
|
|
devWebpackConfig.devServer.port = port
|
|
|
|
// Add FriendlyErrorsPlugin
|
|
devWebpackConfig.plugins.push(new FriendlyErrorsPlugin({
|
|
compilationSuccessInfo: {
|
|
messages: [`Your application is running here: http://${devWebpackConfig.devServer.host}:${port}`],
|
|
},
|
|
onErrors: config.dev.notifyOnErrors
|
|
? utils.createNotifierCallback()
|
|
: undefined
|
|
}))
|
|
|
|
resolve(devWebpackConfig)
|
|
}
|
|
})
|
|
})
|