wolfzwz

wolfzwz 查看完整档案

北京编辑  |  填写毕业院校破冰行动  |  缉毒队长 编辑填写个人主网站
编辑

good good study

个人动态

wolfzwz 发布了文章 · 2018-08-17

vue.js多页面开发 webpack.config.js 配置方式

配置文件代码

var path = require('path')
var webpack = require('webpack')
var glob = require('glob');

得到入口文件

// 源文件目录
var sSystem = 'src/';
// src目录如下
bVbbVeU?w=312&h=318

每个文件夹下的.js文件都会打包
components文件夹为组件
// 生成多个入口文件
function getEntry() {

var entry = {};
var nLength = sSystem.length - 1;
var srcDirName = './' + sSystem + '/**/*.js';

glob.sync(srcDirName).forEach(function (name) {
    //name:./src/ovdream/basic/member/index/index.js
    var n = name.slice(name.lastIndexOf(sSystem) + nLength, name.length - 3);
    //n:/member/index/index
    entry[n] = name;

});
return entry;

}

exports

module.exports = {

entry: getEntry(),
output: {
    path: path.resolve(__dirname, './dist'),
    publicPath: '/dist/',
    filename: '[name].js'
},
module: {
    rules: [
      {
          test: /\.css$/,
          use: [
            'vue-style-loader',
            'css-loader'
          ],
      },
      {
          test: /\.vue$/,
          loader: 'vue-loader',
          options: {
              loaders: {
                  // Since sass-loader (weirdly) has SCSS as its default parse mode, we map
                  // the "scss" and "sass" values for the lang attribute to the right configs here.
                  // other preprocessors should work out of the box, no loader config like this necessary.
              }
              // other vue-loader options go here
          }
      },
      {
          test: /\.js$/,
          loader: 'babel-loader',
          exclude: /node_modules/
      },
      {
          test: /\.(png|jpg|gif|svg)$/,
          loader: 'file-loader',
          options: {
              name: '[name].[ext]?[hash]'
          }
      }
    ]
},
resolve: {
    alias: {
        'vue$': 'vue/dist/vue.esm.js'
    },
    extensions: ['*', '.js', '.vue', '.json']
},
devServer: {
    historyApiFallback: true,
    noInfo: true,
    overlay: true
},
performance: {
    hints: false
},
devtool: '#eval-source-map'

}
if (process.env.NODE_ENV === 'production') {

module.exports.devtool = '#source-map'
// http://vue-loader.vuejs.org/en/workflow/production.html
module.exports.plugins = (module.exports.plugins || []).concat([
  new webpack.DefinePlugin({
      'process.env': {
          NODE_ENV: '"production"'
      }
  }),
  new webpack.optimize.UglifyJsPlugin({
      sourceMap: true,
      compress: {
          warnings: false
      }
  }),
  new webpack.LoaderOptionsPlugin({
      minimize: true
  })
])

}

查看原文

赞 1 收藏 0 评论 0

wolfzwz 发布了文章 · 2018-08-17

vue多页面开发 页面公用模块逻辑如何复用

多页面开发中如何解决头部底部这样的多页面公用,如何实现逻辑复用

mixins解决
以头部为例
不建议定义为全局mixins
var header_mixin = {

data(){
    return {
        
    }
},
methods:{
    
},
mounted(){
    
}

}

首页和列表页公用header

首页
new Vue({
    el:'#index',
    mixins:[header_mixin]
});
列表页
new Vue({
    el:'#list',
    mixins:[header_mixin]
});
这样就实现了header逻辑的复用
查看原文

赞 1 收藏 0 评论 0

wolfzwz 发布了文章 · 2018-08-17

VM开发项目总结

整站vm分成几大模块,每个文件夹代表的模块,每个文件具体代表的页面

templates

解读的时候加伤对应页面的链接
1.Cart 购物车模块文件夹
    Index.vm 购物车首页 m.网站名.com/cart.html
    Payment.vm 购物车支付页面 m.网站名.com/payment.html

Css文件夹

1.每个样式文件的解读 每个文件夹的作用,问什么这样拆分
    Index.css网站所有样式都在这一个文件
    如果有common.css文件,则为公共样式文件

2.公共样式在哪里
    common.css/index.css头部为公共样式

3. 样式命名规则
   公用代码样式命名规则
   <div class=“base-share”>分享</div>这段代码为公用代码,命名规则为base-功能
   非公用样式命名规则
   针对每个页面命名,页面名称- 例:index-share
 4. 样式需要gulp编译,运行方法为node_module上层目录开启命令行窗口,运行gulp
 其它:(自由发挥)
       网站更新功能,在<div class="base-share"></div>后边新增代码<div class="test"></div>
       新增代码的样式就近添加到上边代码后边 效果如下
           .base-share{}
           .test{}

image文件夹

1.每个文件夹的作用,为何这样拆分 例
    根据不同页面拆分不同的文件夹
    index 存放首页用到的图片
    pay 存放支付用到的图片
    ter 存放终端页的图片
2.图片的命名规则
3.图片添加到服务器后需要包裹到项目里
其它:(自由发挥)

js

1.每个文件夹的作用,问什么这样拆分
    全站通用一个index_css.js文件
    index_css.js 存放整站前端js
2.通用js
    存放在index_css.js中的CoObject
3.Js命名规则
    每个页面一个对象,对象名字为页面的名字 例:
    class Index(){} 首页对象 对象的调用一般放在页面的最底部
    变量命名驼峰命名,jquery加$前缀,原生js变量不加
4.js交互效果全用class控制不写style,css()
5.链接跳转方式,'/a.html',必须加斜杠,用绝对路径
6.全站通用api请求方式,
7.对应接口字段含义
其它:(自由发挥)
       
          
       
    
查看原文

赞 0 收藏 0 评论 0

wolfzwz 发布了文章 · 2018-08-17

VM开发项目总结

整站vm分成几大模块,每个文件夹代表的模块,每个文件具体代表的页面

templates

解读的时候加伤对应页面的链接
1.Cart 购物车模块文件夹
    Index.vm 购物车首页 m.网站名.com/cart.html
    Payment.vm 购物车支付页面 m.网站名.com/payment.html

Css文件夹

1.每个样式文件的解读 每个文件夹的作用,问什么这样拆分
    Index.css网站所有样式都在这一个文件
    如果有common.css文件,则为公共样式文件

2.公共样式在哪里
    common.css/index.css头部为公共样式

3. 样式命名规则
   公用代码样式命名规则
   <div class=“base-share”>分享</div>这段代码为公用代码,命名规则为base-功能
   非公用样式命名规则
   针对每个页面命名,页面名称- 例:index-share
 4. 样式需要gulp编译,运行方法为node_module上层目录开启命令行窗口,运行gulp
 其它:(自由发挥)
       网站更新功能,在<div class="base-share"></div>后边新增代码<div class="test"></div>
       新增代码的样式就近添加到上边代码后边 效果如下
           .base-share{}
           .test{}

image文件夹

1.每个文件夹的作用,为何这样拆分 例
    根据不同页面拆分不同的文件夹
    index 存放首页用到的图片
    pay 存放支付用到的图片
    ter 存放终端页的图片
2.图片的命名规则
3.图片添加到服务器后需要包裹到项目里
其它:(自由发挥)

js

1.每个文件夹的作用,问什么这样拆分
    全站通用一个index_css.js文件
    index_css.js 存放整站前端js
2.通用js
    存放在index_css.js中的CoObject
3.Js命名规则
    每个页面一个对象,对象名字为页面的名字 例:
    class Index(){} 首页对象 对象的调用一般放在页面的最底部
    变量命名驼峰命名,jquery加$前缀,原生js变量不加
4.js交互效果全用class控制不写style,css()
5.链接跳转方式,'/a.html',必须加斜杠,用绝对路径
6.全站通用api请求方式,
7.对应接口字段含义
其它:(自由发挥)
       
          
       
    
查看原文

赞 0 收藏 0 评论 0

wolfzwz 发布了文章 · 2018-08-17

项目解读

整站vm分成几大模块,每个文件夹代表的模块,每个文件具体代表的页面

templates

解读的时候加伤对应页面的链接
1.Cart 购物车模块文件夹
    Index.vm 购物车首页 m.shoespie.com/cart.html
    Payment.vm 购物车支付页面 m.shoespie.com/payment.html

Css文件夹

1.每个样式文件的解读 每个文件夹的作用,问什么这样拆分
    Index.css网站所有样式都在这一个文件
    如果有common.css文件,则为公共样式文件

2.公共样式在哪里
    common.css/index.css头部为公共样式

3. 样式命名规则
   公用代码样式命名规则
   <div class=“base-share”>分享</div>这段代码为公用代码,命名规则为base-功能
   非公用样式命名规则
   针对每个页面命名,页面名称- 例:index-share
 4. 样式需要gulp编译,运行方法为node_module上层目录开启命令行窗口,运行gulp
 其它:(自由发挥)
       网站更新功能,在<div class="base-share"></div>后边新增代码<div class="test"></div>
       新增代码的样式就近添加到上边代码后边 效果如下
           .base-share{}
           .test{}

image文件夹

1.每个文件夹的作用,为何这样拆分 例
    根据不同页面拆分不同的文件夹
    index 存放首页用到的图片
    pay 存放支付用到的图片
    ter 存放终端页的图片
2.图片的命名规则
3.图片添加到服务器后需要包裹到项目里
其它:(自由发挥)

js

1.每个文件夹的作用,问什么这样拆分
    全站通用一个index_css.js文件
    index_css.js 存放整站前端js
2.通用js
    存放在index_css.js中的CoObject
3.Js命名规则
    每个页面一个对象,对象名字为页面的名字 例:
    class Index(){} 首页对象 对象的调用一般放在页面的最底部
    变量命名驼峰命名,jquery加$前缀,原生js变量不加
4.js交互效果全用class控制不写style,css()
5.链接跳转方式,'/a.html',必须加斜杠,用绝对路径
6.全站通用api请求方式,
7.对应接口字段含义
其它:(自由发挥)
       
          
       
    
查看原文

赞 0 收藏 0 评论 0

wolfzwz 发布了文章 · 2018-06-14

Vue.js 的电商项目开发实战

Vue.js 的电商项目开发实战

Vue.js 和 Webpack 技术栈实现电商项目

第一次认识vue.js

使用vue.js 已经有一年时间了,在接触vue之前接触过react,angular 等框架,考虑到应用到项目中团队的执行,降低学习成本,选择了vue,api 设计简洁,降低了开发人员学习的成本。这可能是受中国开发者喜爱的原因,为开发者节省了时间。官网api的查询功能很不错。

搭建项目

从一进公司开始醉的最多的事页面搭建,数据交互相关基本已经遗忘了,这次使用vue 用到了很多相关技术,webpack,node.js,vue.js,vuex,vue-router,jquery,不得不说时间出真知,当你实践的时候会有很多异想不到的问题,比如,根据公司自己项目搭建结构,这对自身算是一次提高,过程虽然很苦,但结局是美好的,有句话说的好只有经历了才会懂得。

项目一开始最先需要解决的问题是,不用spa模式开发如何拆分页面结构,经过思考决定用多页面开发的模式,(这里有个坑),随后就是页面搭建,最开始来到的是头部,说道这里大家应该都会想到heder 逻辑共用,不错确实有这个问题,每个页面一个实例之后共用模块的代码逻辑如何提出来,共用模块单独声明一个实例么,这么做确实简单粗暴,随之而来的一个问题就是实例间的通信。

实例间通信一个不足之处是访问另一个实例的异步修改的数据的时候,不是很准确,很有可能访问的是异步之前的数据,一个更好的api 被我发现了,哈哈,mixins,这个特性完全可以解决代码复用,还能够对复杂的复用逻辑进行拆发,再组合。

组件拆分

组件拆分一个很重要的原则就是不能影响到首屏渲染,鉴于这个规则,那么作为组件的内容就少的可怜了,最后拆分规则为需要交互显示的而且逻辑复杂的拆分成组件,或者需要多个页面复用的拆分成组件,那么拆分后组件命名规则有事一个困扰的问题,好的拆分规则对于项目的可维护还是很重要的,复用的组件命名以base开头,只属于某一个页面的组件放到对应文件夹。这样整个项目就有了一个架构。能够保障团队多个人员协同开发,和项目维护。

Webpack

如果只是用 Vue.js 的基本功能,估计用了20%,
在应用webpack之前

每个组件需要手动拆分html 、 js、 css 部分,维护成本高;
不过项目开发时间还是很紧张的,挑战性还是很高的

node.js和webpack.js的结合

之前说到本次项目采用多个入口文件,那么webpack.config.js 的入口文件需要根据入口文件的增加而改变,那么就会有个问题是每次新增文件手动增加还是做成程序自己检测,为了项目以后更好维护,采用程序自己检测,那么webpack.config.js 的entry入口就需要根据文件数量自动改变,大家都知道entry的入口可以配制成数组,存放的就是文件名,webpack基于node打包,这就需要node的glob模块来读取文件夹src下面需要打包的js路径,最终需要打包到dist文件夹,那么我们只需要src/以后的文件路径,这就需要字符串截取,代码如下
var sSystem = 'src/';
function getEntry() {

var entry = {};
var nLength = sSystem.length - 1;
var srcDirName = './' + sSystem + '/**/*.js';

glob.sync(srcDirName).forEach(function (name) {
    //name:./src/ovdream/basic/member/index/index.js
    var n = name.slice(name.lastIndexOf(sSystem) + nLength, name.length - 3);
    //n:/member/index/index
    entry[n] = name;

});
return entry;

}
getEntry 返回的就是webpack.config.js中entry数组的值

string用法

slice() 方法用来提取字符串的某个部分,返回被提取的部分。
stringObject.slice(start,end)
返回值
一个新的字符串。不包括 end

项目代码拆分规则

1.项目用到的js框架 swiper.js,jquery.js,vue.js,vuex.js,vue-router.js,用到这么多的框架那么引用顺序一般为 jquery.js,swiper.js,vue.js,vuex.js,vue-router.js.
2.开发人员自己的js库,开发人员自己扩充的js,包括针对项目的一些通用js统一放到
那么引用顺序改为jquery.js,util.js,swiper.js,vue.js,vuex.js,vue-router.js
3.util.js编写时候的注意事项,建议不要扩展es5和es6方法,例如 map,filter,toString,有可能会对框架造成影响,因为vue是允许使用外部数据的。
4.项目还有个vueBase.js 用来放基于vue的通用代码,例如针对头部的header_mixins,全局globalMixins,全局filter,directive

数组更新检测

push(),pop(),shift(),unshift(),splice(),sort(),reverse() 这些方法将会触发视图更新,针对sort排序需要注意的事项有:
[1,20,5].sort() sort 默认只会比较第一位,所以不会按升序排序,解决办法是 [1,20,5].sort((a,b)=>a-b)

查看原文

赞 0 收藏 0 评论 0

wolfzwz 发布了文章 · 2018-06-08

第一篇文章

基于 Vue.js 2.x 的开发实践

2018年工作中做过最自豪的两件事情:
把 Vue.js 和 Webpack 技术栈引进公司并逐步成为前端规范
电商项目

第一次接触

使用vue.js 已经有一年时间了,在接触vue之前接触过react,angular 等框架,考虑到应用到项目中团队的执行,降低学习成本,选择了vue,这段时间的接触发现vue 的文档很简单,但又很完善,api 设计简洁,降低了开发人员学习的成本。这可能是受中国开发者喜爱的原因,为开发者节省了时间。官网api的查询功能很不错。

Vue 最大的特点就是对数据双向绑定。以前用的jquery较多,比如 ajax,而 Vue 在在数据使用上有一个很大的特点,可以使用外部的数据变量,可以在各种情况下修改,这个特性对于初学者过渡到vue框架很重要。

一个人搞了一个产品

从一进公司开始醉的最多的事页面搭建,数据交互相关基本已经遗忘了,这次使用vue 用到了很多相关技术,webpack,node.js,vue.js,vuex,vue-router,jquery,不得不说时间出真知,当你实践的时候会有很多异想不到的问题,比如,根据公司自己项目搭建结构,这对自身算是一次提高,过程虽然很苦,但结局是美好的,有句话说的好只有经历了才会懂得。

项目一开始最先需要解决的问题是,不用spa模式开发如何拆分页面结构,经过思考决定用多页面开发的模式,(这里有个坑),随后就是页面搭建,最开始来到的是头部,说道这里大家应该都会想到heder 逻辑共用,不错确实有这个问题,每个页面一个实例之后共用模块的代码逻辑如何提出来,共用模块单独声明一个实例么,这么做确实简单粗暴,随之而来的一个问题就是实例间的通信。

实例间通信一个不足之处是访问另一个实例的异步修改的数据的时候,不是很准确,很有可能访问的是异步之前的数据,一个更好的api 被我发现了,哈哈,mixins,这个特性完全可以解决代码复用,还能够对复杂的复用逻辑进行拆发,再组合。

组件拆分

组件拆分一个很重要的原则就是不能影响到首屏渲染,鉴于这个规则,那么作为组件的内容就少的可怜了,最后拆分规则为需要交互显示的而且逻辑复杂的拆分成组件,或者需要多个页面复用的拆分成组件,那么拆分后组件命名规则有事一个困扰的问题,好的拆分规则对于项目的可维护还是很重要的,复用的组件命名以base开头,只属于某一个页面的组件放到对应文件夹。这样整个项目就有了一个架构。能够保障团队多个人员协同开发,和项目维护。

Webpack

如果只是用 Vue.js 的基本功能,估计只用了20%不到,
在应用webpack之前,

每个组件需要手动拆分html 、 js、 css 部分,维护成本高;
不过项目开发时间还是很紧张的,挑战性还是很高的,

webpack 的难点在于概念,因为源文件写的代码,不是最终呈现的代码。对于传统技术站思维切换还是需要一段时间的,因此有了一个概念:编译。
说到底,webpack 就是一个 .js 配置文件,你的架构或好或差,都体现在这一个配置里,随着需求的不断出现,工程也是逐渐完善的,一口吃不成胖子。

查看原文

赞 0 收藏 0 评论 0

wolfzwz 发布了文章 · 2018-06-07

gitbook介绍

GitBook文档(中文版)

这本书包含了GitBook的所有文档(平台和工具链)

开源工具链

这个工具链 (GitBook) 是一个使用 Git 和 Markdown 来构建书籍的工具。它可以将你的书输出很多格式:PDF,ePub,mobi,或者输出为静态网页。

GitBook工具链是开源并且完全免费的,它的源码可以在 GitHub 上获取。

与格式和工具链相关的问题被发表在 github.com/GitbookIO/gitbook/issues。

GitBook.com

GitBook.com 是一个使用工具链来创建和托管书籍的在线平台 (www.gitbook.com)。

其他文档

开发文档 (API & 插件) 地址 developer.gitbook.com。

企业版本的安装向导和手册的地址 hep.enterprise.gitbook.com。

帮助和支持

我们很乐意帮助你的书本摆脱困难或者解决任何其他你可能遇到的问题。你可以通过这个表单 gitbook.com/contact 来提问题或者报告一个错误。

贡献文档

你可以贡献自己的一份力量来完善这个托管在在 GitHub 上的文档。

查看原文

赞 0 收藏 0 评论 0

wolfzwz 发布了文章 · 2018-06-06

文章

我们欢迎
具有原创性、对他人有启发性且行文排版优雅的文章
与开发相关的技术分享、开发技巧、工具介绍、技术设想、业界评论、职业心得等等
认真或有趣的交流与分享

查看原文

赞 0 收藏 0 评论 0

wolfzwz 回答了问题 · 2018-06-06

vue开发页面极多的应用

多页面开发很简单https://segmentfault.com/a/11...

关注 5 回答 4

wolfzwz 回答了问题 · 2018-06-06

使用vue做官网,是做成单页面还是多页面

关注 8 回答 7

wolfzwz 评论了文章 · 2018-06-06

vue+webpack多页面应用

vue+webpack多页面应用

从git上初始化的vue项目框架是单页面的。单页面应用可以实现大部分页面web应用开发。若要用到多页面需要需要配置。这篇文章就说说怎么应用多页面应用。
多页面应用就是几个单页面应用在一起。
这篇文章使用的是vue2.+,webpack3.+
总共有5步
我们从安装好一个单页面应用说起。

1、 创建一个vue项目。

2、 创建模板html文件,入口文件,vue文件。

一般在根据目录下面有一个index.html文件。它是页面的html模板文件。一个模板文件就是一个单页面应用,按需创建模板。
在多页面应用中,因为有多个应用模板,所以建议把应用模板html放在一个文件夹里。不放也没关系。例如:
multiplePage0.png
创建每个单页面应用的入口文件。(*.js)
multiplePage1.png
每一个单页面的三个文件(.js, .vue, *.html)都得对应上。
multiplePage2.png

3、 定义入口文件。

因为webpack有2个环境(1.开发环境。2.生产环境。)所以这2个环境都需要配置。这步是作用于开发环境的。
multiplePage3.png
打开webpack.base.conf.js文件。在入口选项中输入入口文件的路径及变量名。如:
multiplePage4.png

4、 配置开发环境。

打开webpack.dev.conf.js文件。在plugins选项中设置各单页面应用的htmlwebpackplugin配置。记得修改首页的配置。如:
multiplePage5.png

5、 配置生产环境。

在index.js文件中的build选项中设置模板路径。如:
multiplePage6.png
在webpack.prod.conf.js文件。在plugins选项中设置各单页面应用的htmlwebpackplugin配置。在首页的配置中添加了chunksSortMode,chunks选项。添加各页面的htmlwebpackplugin插件配置。如:
multiplePage7.png

tip

能用单页面应用的,不使用多页面应用。基本上单页面都能解决问题。页面跳转可以使用this.$router.push(....)搞定。


2018/05/22 by stone

查看原文

wolfzwz 回答了问题 · 2018-06-06

项目中vue 单页面 多页面 的选择

关注 12 回答 11

wolfzwz 回答了问题 · 2018-06-06

关于vue 多页面开发的问题

关注 5 回答 4

wolfzwz 发布了文章 · 2018-06-06

vue 多页面开发 页面公用模块逻辑如何复用

多页面开发中如何解决头部底部这样的多页面公用,如何实现逻辑复用

mixins解决
以头部为例
不建议定义为全局mixins
var header_mixin = {

data(){
    return {
        
    }
},
methods:{
    
},
mounted(){
    
}

}

首页和列表页公用header

首页
new Vue({
    el:'#index',
    mixins:[header_mixin]
});
列表页
new Vue({
    el:'#list',
    mixins:[header_mixin]
});
这样就实现了header逻辑的复用
查看原文

赞 0 收藏 0 评论 0

wolfzwz 发布了文章 · 2018-06-06

vue.js多页面开发 webpack.config.js 配置方式

配置文件代码

var path = require('path')
var webpack = require('webpack')
var glob = require('glob');

得到入口文件

// 源文件目录
var sSystem = 'src/';
// src目录如下
clipboard.png

每个文件夹下的.js文件都会打包
components文件夹为组件
// 生成多个入口文件
function getEntry() {

var entry = {};
var nLength = sSystem.length - 1;
var srcDirName = './' + sSystem + '/**/*.js';

glob.sync(srcDirName).forEach(function (name) {
    //name:./src/ovdream/basic/member/index/index.js
    var n = name.slice(name.lastIndexOf(sSystem) + nLength, name.length - 3);
    //n:/member/index/index
    entry[n] = name;

});
return entry;

}

exports

module.exports = {

entry: getEntry(),
output: {
    path: path.resolve(__dirname, './dist'),
    publicPath: '/dist/',
    filename: '[name].js'
},
module: {
    rules: [
      {
          test: /\.css$/,
          use: [
            'vue-style-loader',
            'css-loader'
          ],
      },
      {
          test: /\.vue$/,
          loader: 'vue-loader',
          options: {
              loaders: {
                  // Since sass-loader (weirdly) has SCSS as its default parse mode, we map
                  // the "scss" and "sass" values for the lang attribute to the right configs here.
                  // other preprocessors should work out of the box, no loader config like this necessary.
              }
              // other vue-loader options go here
          }
      },
      {
          test: /\.js$/,
          loader: 'babel-loader',
          exclude: /node_modules/
      },
      {
          test: /\.(png|jpg|gif|svg)$/,
          loader: 'file-loader',
          options: {
              name: '[name].[ext]?[hash]'
          }
      }
    ]
},
resolve: {
    alias: {
        'vue$': 'vue/dist/vue.esm.js'
    },
    extensions: ['*', '.js', '.vue', '.json']
},
devServer: {
    historyApiFallback: true,
    noInfo: true,
    overlay: true
},
performance: {
    hints: false
},
devtool: '#eval-source-map'

}
if (process.env.NODE_ENV === 'production') {

module.exports.devtool = '#source-map'
// http://vue-loader.vuejs.org/en/workflow/production.html
module.exports.plugins = (module.exports.plugins || []).concat([
  new webpack.DefinePlugin({
      'process.env': {
          NODE_ENV: '"production"'
      }
  }),
  new webpack.optimize.UglifyJsPlugin({
      sourceMap: true,
      compress: {
          warnings: false
      }
  }),
  new webpack.LoaderOptionsPlugin({
      minimize: true
  })
])

}

查看原文

赞 0 收藏 0 评论 0

wolfzwz 关注了用户 · 2018-05-31

comehope @comehope

💯累计分享170+个项目💯

关注 9045

wolfzwz 关注了用户 · 2018-05-31

冯恒智 @fenghengzhi

字节内推,所有岗位均有内推,欢迎投递
社招内推链接:https://job.toutiao.com/s/Jya...
校招内推码:SRTPQUP
校招内推链接:https://job.toutiao.com/s/Jya...

关注 3970

wolfzwz 关注了用户 · 2018-05-31

改名字很伤神 @gaimingzihenshangshen

它可以工作,但是我不知道为什么,所以谁也别碰它!

关注 12508

wolfzwz 关注了用户 · 2018-05-31

Jason_Geng @_Jason_

趁年轻,折腾!

关注 1483