webpack如何向前端一样编译koa后端项目
发布于 5 年前 作者 YMFL 5478 次浏览 来自 问答

webpack能不能像编译前端(vue等)项目一样编译后端koa项目?有没有相应的教程?

14 回复

没有啥意义,你的目的是为了代码保护么?

const path = require('path');
const fs = require('fs');
const _ = require('lodash');

var nodeExternals = require('webpack-node-externals');
module.exports =config = {
    target: 'node',
    entry: './dist/main.js',
    externals: [nodeExternals()],
    output: {
        filename: 'main.js',
        path: path.resolve(__dirname, 'dist')
    },
    resolve: {
        extensions: [".js"],
    },
    module: {
        rules: [
        ]
    },
    optimization:{
        minimize: false, // <---- disables uglify.
        // minimizer: [new UglifyJsPlugin({
        //     mangle: true
        // })] // if you want to customize it.
    }
};

产生一个打包好的main.js文件和node_modules在同一个目录,注意配置中的_externals_字段。

@i5ting 算是吧

@zuohuadong 好的 我看看,谢谢了

@FreePoi 好的 谢谢

@zhennann 好的谢谢,我看看

@zhennann 你这介绍也是怪怪的。KoaJS + EggJS + VueJS + Framework7?不清楚它们之间的关系么?

@i5ting 因为CabloyJS是全栈,所以就把前端和后端用到的技术连着一块儿写了。望大佬多赐教🙏

@zhennann EggJS的依赖是KoaJS,写着干嘛呢? 意义不大。

VueJS和Framework7感觉也不是很搭啊

@i5ting 您提到的这两个问题,我是这样考虑的:

  1. 主要是考虑到某些初次访问者知道KoaJS而不知道EggJS,所以写上KoaJS,就知道CabloyJS后端与KoaJS的继承关系,然后再建立起对EggJS的认知
  2. 原始的Framework7是专门为移动端优化的UI组件库。但是Framework7内置的路由库对多个页面的堆叠支持的非常好(相对vue-router而言)。CabloyJS继承了Framework7的优点,同时进行了改造,从而迁移到PC端,实现了pc=mobile+pad的页面布局。达到的效果就是前端只需开发一套页面就可以通用于mobile和pc。 可以参考一下这张动图效果:https://github.com/zhennann/cabloy#亮点与痛点

能, 不知道, 看webpack文档吧… 我觉得后端与前端区别是模块规范不同…甚至你如果用libraryTarget: 'umd’的话啥都不用改…

不如后端用 ts 写,然后 tsconfig 里设置 target 为 es3 …

回到顶部