webpack能不能像编译前端(vue等)项目一样编译后端koa项目?有没有相应的教程?
没有啥意义,你的目的是为了代码保护么?
用 ncc
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_字段。
可以参考CabloyJS的模块后端编译机制:https://cabloy.com/zh-cn/articles/beef7cd0ab0a495284797a5af933a155.html
@i5ting 算是吧
@zuohuadong 好的 我看看,谢谢了
@FreePoi 好的 谢谢
@zhennann 好的谢谢,我看看
@zhennann 你这介绍也是怪怪的。KoaJS + EggJS + VueJS + Framework7?不清楚它们之间的关系么?
@i5ting 因为CabloyJS是全栈,所以就把前端和后端用到的技术连着一块儿写了。望大佬多赐教🙏
@zhennann EggJS的依赖是KoaJS,写着干嘛呢? 意义不大。
VueJS和Framework7感觉也不是很搭啊
@i5ting 您提到的这两个问题,我是这样考虑的:
- 主要是考虑到某些初次访问者知道KoaJS而不知道EggJS,所以写上KoaJS,就知道CabloyJS后端与KoaJS的继承关系,然后再建立起对EggJS的认知
- 原始的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 …