mirror of
https://github.com/BoostIo/Boostnote
synced 2025-12-13 17:56:25 +00:00
updated dev script
This commit is contained in:
76
dev-scripts/dev.js
Normal file
76
dev-scripts/dev.js
Normal file
@@ -0,0 +1,76 @@
|
||||
const webpack = require('webpack')
|
||||
const WebpackDevServer = require('webpack-dev-server')
|
||||
const config = require('../webpack.config')
|
||||
const signale = require('signale')
|
||||
const { spawn } = require('child_process')
|
||||
const electron = require('electron')
|
||||
const port = 8080
|
||||
let server = null
|
||||
let firstRun = true
|
||||
|
||||
const options = {
|
||||
publicPath: config.output.publicPath,
|
||||
hot: true,
|
||||
inline: true,
|
||||
quiet: true
|
||||
}
|
||||
|
||||
function startServer () {
|
||||
config.plugins.push(new webpack.HotModuleReplacementPlugin())
|
||||
config.entry.main.unshift(
|
||||
`webpack-dev-server/client?http://localhost:${port}/`,
|
||||
'webpack/hot/dev-server'
|
||||
)
|
||||
const compiler = webpack(config)
|
||||
server = new WebpackDevServer(compiler, options)
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
server.listen(port, 'localhost', function (err) {
|
||||
if (err) {
|
||||
reject(err)
|
||||
}
|
||||
signale.success(`Webpack Dev Server listening at localhost:${port}`)
|
||||
signale.watch(`Waiting for webpack to bundle...`)
|
||||
compiler.plugin('done', stats => {
|
||||
if (!stats.hasErrors()) {
|
||||
signale.success(`Bundle success !`)
|
||||
resolve()
|
||||
} else {
|
||||
if (!firstRun) {
|
||||
console.log(stats.compilation.errors[0])
|
||||
} else {
|
||||
firstRun = false
|
||||
reject(stats.compilation.errors[0])
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
function startElectron () {
|
||||
spawn(electron, ['--hot', './index.js'])
|
||||
.on('close', () => {
|
||||
server.close()
|
||||
})
|
||||
.on('error', err => {
|
||||
signale.error(err)
|
||||
server.close()
|
||||
})
|
||||
.on('disconnect', () => {
|
||||
server.close()
|
||||
})
|
||||
.on('exit', () => {
|
||||
server.close()
|
||||
})
|
||||
}
|
||||
|
||||
startServer()
|
||||
.then(() => {
|
||||
startElectron()
|
||||
signale.success('Electron started')
|
||||
})
|
||||
.catch(err => {
|
||||
signale.error(err)
|
||||
process.exit(1)
|
||||
})
|
||||
57
package-lock.json
generated
57
package-lock.json
generated
@@ -15189,6 +15189,63 @@
|
||||
"integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
|
||||
"dev": true
|
||||
},
|
||||
"signale": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/signale/-/signale-1.2.1.tgz",
|
||||
"integrity": "sha512-yY7GbeTGqDLC2ggcXR9hyzcgZnNT+cooPAizWRpUOHYd0DtNVRXhMqM3+F6ZbKav9oCg1r/YtJaB250IAhn/Hg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"chalk": "^2.3.2",
|
||||
"figures": "^2.0.0",
|
||||
"pkg-conf": "^2.1.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"ansi-styles": {
|
||||
"version": "3.2.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
|
||||
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"color-convert": "^1.9.0"
|
||||
}
|
||||
},
|
||||
"chalk": {
|
||||
"version": "2.4.1",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
|
||||
"integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-styles": "^3.2.1",
|
||||
"escape-string-regexp": "^1.0.5",
|
||||
"supports-color": "^5.3.0"
|
||||
}
|
||||
},
|
||||
"color-convert": {
|
||||
"version": "1.9.2",
|
||||
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz",
|
||||
"integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"color-name": "1.1.1"
|
||||
}
|
||||
},
|
||||
"color-name": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz",
|
||||
"integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=",
|
||||
"dev": true
|
||||
},
|
||||
"supports-color": {
|
||||
"version": "5.4.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz",
|
||||
"integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"has-flag": "^3.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"single-line-log": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/single-line-log/-/single-line-log-1.1.2.tgz",
|
||||
|
||||
@@ -7,14 +7,12 @@
|
||||
"license": "GPL-3.0",
|
||||
"scripts": {
|
||||
"start": "electron ./index.js",
|
||||
"hot": "electron ./index.js --hot",
|
||||
"webpack": "webpack-dev-server --hot --inline --config webpack.config.js",
|
||||
"compile": "grunt compile",
|
||||
"test": "PWD=$(pwd) NODE_ENV=test ava --serial",
|
||||
"jest": "jest",
|
||||
"fix": "eslint . --fix",
|
||||
"lint": "eslint .",
|
||||
"dev-start": "concurrently --kill-others \"npm run webpack\" \"npm run hot\""
|
||||
"dev-start": "node dev-scripts/dev.js"
|
||||
},
|
||||
"config": {
|
||||
"electron-version": "2.0.3"
|
||||
@@ -144,6 +142,7 @@
|
||||
"react-router": "^2.4.0",
|
||||
"react-router-redux": "^4.0.4",
|
||||
"react-test-renderer": "^15.6.2",
|
||||
"signale": "^1.2.1",
|
||||
"standard": "^8.4.0",
|
||||
"style-loader": "^0.12.4",
|
||||
"stylus": "^0.52.4",
|
||||
|
||||
@@ -4,20 +4,24 @@ const NodeTargetPlugin = require('webpack/lib/node/NodeTargetPlugin')
|
||||
|
||||
var config = {
|
||||
entry: {
|
||||
main: './browser/main/index.js'
|
||||
main: ['./browser/main/index.js']
|
||||
},
|
||||
resolve: {
|
||||
extensions: ['', '.js', '.jsx', '.styl'],
|
||||
packageMains: ['webpack', 'browser', 'web', 'browserify', ['jam', 'main'], 'main'],
|
||||
packageMains: [
|
||||
'webpack',
|
||||
'browser',
|
||||
'web',
|
||||
'browserify',
|
||||
['jam', 'main'],
|
||||
'main'
|
||||
],
|
||||
alias: {
|
||||
'lib': path.join(__dirname, 'lib'),
|
||||
'browser': path.join(__dirname, 'browser')
|
||||
lib: path.join(__dirname, 'lib'),
|
||||
browser: path.join(__dirname, 'browser')
|
||||
}
|
||||
},
|
||||
plugins: [
|
||||
new webpack.NoErrorsPlugin(),
|
||||
new NodeTargetPlugin()
|
||||
],
|
||||
plugins: [new webpack.NoErrorsPlugin(), new NodeTargetPlugin()],
|
||||
stylus: {
|
||||
use: [require('nib')()],
|
||||
import: [
|
||||
@@ -43,14 +47,13 @@ var config = {
|
||||
react: 'var React',
|
||||
'react-dom': 'var ReactDOM',
|
||||
'react-redux': 'var ReactRedux',
|
||||
'codemirror': 'var CodeMirror',
|
||||
'redux': 'var Redux',
|
||||
'raphael': 'var Raphael',
|
||||
'flowchart': 'var flowchart',
|
||||
codemirror: 'var CodeMirror',
|
||||
redux: 'var Redux',
|
||||
raphael: 'var Raphael',
|
||||
flowchart: 'var flowchart',
|
||||
'sequence-diagram': 'var Diagram'
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
module.exports = config
|
||||
|
||||
|
||||
Reference in New Issue
Block a user