1.0.3 • Published 5 years ago

@sundogrd/node-hmr v1.0.3

Weekly downloads
4
License
MIT
Repository
-
Last release
5 years ago

node-hmr

旨在开启HMR(hot module replacement--模块热替换)功能。提供类似于webpack-dev-server(WDS)的开发体验

原理

百度或者谷歌

注意事项

如果开启这个中间件,所有文件会同webpack-dev-server一样打包到内存,只适合本地开发环境使用。

用法

    // 开发环境开启热更新
    if (!process.env.NODE_ENV || process.env.NODE_ENV === 'development') {
        await require('node-hmr')(app, {
            views: {
                render: 'koa-views', // koa-views
                root: require('path').resolve(__dirname, '../views'), // 类似于koa-views,指定模板文件目录
                opt: {map: {ejs: 'html'}} // koa-views 的第二个选项
            },
            config: require('../../webpack.config'), // your webpack config
            hotClient: { //webpack-hot-client 参数
                reload: false,
                hmr: true
            },
            devMiddleware: {}, // webpack-dev-middleware 中间件参数
            // when compile done, you can get hello string
            compileDone: (middleware) => {
                console.log('hello');
            }
        });
    }

API

由于该中间件事对koa-webpack的封装,所以基本配置和koa-webpack一致。你可以从这里找到koaWebpack的配置。以下是本中间件特有的配置:

views

Type: object

由于本中间件本质是封装了从内存中读取模板数据的功能,所以你可以通过设置该参数来查找。该参数本质是koa-views的配置项加了koa-views本身。

Example:

// middleware.js
await hmr(app, {
   views: {
       render: 'koa-views', // 使用的模板渲染库 类koa-views库
       root: 'server/views', // koa-views 的root参数
       opt: {map: {ejs: 'html'}} // koa-views 的options 可以指定渲染引擎
   },
   config: require('../../webpack.config'), // your webpack config
});

// controller.js
async function (ctx) {
    await ctx.render('index', {
        env: 'develop',
        someRenderData: ''
    });
};

compileDone

Type: function

webpack编译完成时进行的回调。你可以再这里做一下自定义动作。

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago