提交 880b7104 编写于 作者: C Chris Cunniff 提交者: Naoyuki Kanezawa

fixes #175, no longer sets process.env.NODE_ENV='production' or runs uglify in next dev mode (#274)

上级 e0455823
...@@ -8,7 +8,7 @@ import WatchRemoveEventPlugin from './plugins/watch-remove-event-plugin' ...@@ -8,7 +8,7 @@ import WatchRemoveEventPlugin from './plugins/watch-remove-event-plugin'
import DynamicEntryPlugin from './plugins/dynamic-entry-plugin' import DynamicEntryPlugin from './plugins/dynamic-entry-plugin'
import DetachPlugin from './plugins/detach-plugin' import DetachPlugin from './plugins/detach-plugin'
export default async function createCompiler (dir, { hotReload = false } = {}) { export default async function createCompiler (dir, { hotReload = false, dev = false } = {}) {
dir = resolve(dir) dir = resolve(dir)
const pages = await glob('pages/**/*.js', { cwd: dir }) const pages = await glob('pages/**/*.js', { cwd: dir })
...@@ -34,28 +34,36 @@ export default async function createCompiler (dir, { hotReload = false } = {}) { ...@@ -34,28 +34,36 @@ export default async function createCompiler (dir, { hotReload = false } = {}) {
const nodeModulesDir = join(__dirname, '..', '..', '..', 'node_modules') const nodeModulesDir = join(__dirname, '..', '..', '..', 'node_modules')
const plugins = [ const plugins = [
new webpack.DefinePlugin({
'process.env.NODE_ENV': JSON.stringify('production')
}),
new WriteFilePlugin({ new WriteFilePlugin({
exitOnErrors: false, exitOnErrors: false,
log: false, log: false,
// required not to cache removed files // required not to cache removed files
useHashIndex: false useHashIndex: false
}) })
].concat(hotReload ? [ ]
new webpack.HotModuleReplacementPlugin(),
new DetachPlugin(), if (!dev) {
new DynamicEntryPlugin(), plugins.push(
new UnlinkFilePlugin(), new webpack.DefinePlugin({
new WatchRemoveEventPlugin(), 'process.env.NODE_ENV': JSON.stringify('production')
new WatchPagesPlugin(dir) }),
] : [ new webpack.optimize.UglifyJsPlugin({
new webpack.optimize.UglifyJsPlugin({ compress: { warnings: false },
compress: { warnings: false }, sourceMap: false
sourceMap: false })
}) )
]) }
if (hotReload) {
plugins.push(
new webpack.HotModuleReplacementPlugin(),
new DetachPlugin(),
new DynamicEntryPlugin(),
new UnlinkFilePlugin(),
new WatchRemoveEventPlugin(),
new WatchPagesPlugin(dir)
)
}
const babelRuntimePath = require.resolve('babel-runtime/package') const babelRuntimePath = require.resolve('babel-runtime/package')
.replace(/[\\\/]package\.json$/, '') .replace(/[\\\/]package\.json$/, '')
......
...@@ -4,8 +4,9 @@ import webpack from './build/webpack' ...@@ -4,8 +4,9 @@ import webpack from './build/webpack'
import read from './read' import read from './read'
export default class HotReloader { export default class HotReloader {
constructor (dir) { constructor (dir, dev = false) {
this.dir = dir this.dir = dir
this.dev = dev
this.server = null this.server = null
this.initialized = false this.initialized = false
this.stats = null this.stats = null
...@@ -22,7 +23,7 @@ export default class HotReloader { ...@@ -22,7 +23,7 @@ export default class HotReloader {
} }
async prepareServer () { async prepareServer () {
const compiler = await webpack(this.dir, { hotReload: true }) const compiler = await webpack(this.dir, { hotReload: true, dev: this.dev })
compiler.plugin('after-emit', (compilation, callback) => { compiler.plugin('after-emit', (compilation, callback) => {
const { assets } = compilation const { assets } = compilation
......
...@@ -11,7 +11,7 @@ export default class Server { ...@@ -11,7 +11,7 @@ export default class Server {
constructor ({ dir = '.', dev = false, hotReload = false }) { constructor ({ dir = '.', dev = false, hotReload = false }) {
this.dir = resolve(dir) this.dir = resolve(dir)
this.dev = dev this.dev = dev
this.hotReloader = hotReload ? new HotReloader(this.dir) : null this.hotReloader = hotReload ? new HotReloader(this.dir, this.dev) : null
this.router = new Router() this.router = new Router()
this.http = http.createServer((req, res) => { this.http = http.createServer((req, res) => {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册