问题

公司的sass系统客户有定制化需求,本来想使用git做项目管理,但是发现在操作上还是很不方便,给开发带来不必要的工作量(git也不是干这个的)。然后整理了一下需求,决定在编译时就将项目区分开。

客户定制化需求

由于客户的需求差异有大有小,大的比如说添加整个菜单模块:

回款管理整个菜单都需要重新定制

小的需求比如说只在下一个下拉列表里面添加两个字段:

只有一家公司需要这两个邮件模板

第二种小需求如果放在git中管理的话,会给后面维护造成很大的困难。

解决方案

使用process.env在编译时区分项目,可以使用配置项来解决的独立出来,在编译时配置好。

首先在package.json中配置好编译命令:

 "scripts": {
  "start": "node build/dev-server.js",
  // 修改dev命令,添加值为jijia的变量NODE_ITEM
  "dev": "set NODE_ITEM=jijia node build/dev-server.js",
  "build": "node build/build.js",
  "dll": "webpack --config ./build/webpack.dll.config.js",
  },

然后在webpack.dev.config.jswebpack.prod.config.js中修改webpack.DefinePlugin插件:

new webpack.DefinePlugin({
    ...
    'process.env.NODE_ITEM': JSON.stringify(process.env.NODE_ITEM),
    ...
}),

这样我们就可以在项目中使用process.env来访问自定义的这个NODE_ITEM了,在项目编译打包时,可以在package.json中配置多个命令来编译不同的项目。


Webpack webpack 编译

本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!

使用vue-router+vuex动态加载菜单 上一篇
git学习 下一篇