require

高性能 Webpack3 配置

坚强是说给别人听的谎言 提交于 2019-12-01 15:41:18
参考: High-performance webpack config for front-end delivery webpack3 指南 Scope Hoisting (作用域提升) 官方文档:ModuleConcatenationPlugin 过去 webpack 打包时的一个取舍是将 bundle 中各个模块单独打包成闭包。这些打包函数使你的 JavaScript 在浏览器中处理的更慢。相比之下,一些工具像 Closure Compiler 和 RollupJS 可以提升(hoist)或者预编译所有模块到一个闭包中,提升你的代码在浏览器中的执行速度。 在生产环境中配置: 1234567 const webpack = require('webpack');module.exports = { plugins: [ new webpack.optimize.ModuleConcatenationPlugin(), ],}; 下面放一张用户使用之后包体的对比,大概减少了50%,对于模块数量很多的项目来说提升较大。 Minification and Uglification (压缩和丑化) 代码压缩和“丑化”是生产环境中必不可少的,然而偶尔的会遗忘,所以在部署到生产环境之前,首先要做的就是检查代码是否经过压缩和“丑化” 错误的方式 直接运行 webpack 命令进行打包

Using multiple directives in require with Angularjs

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-01 15:39:17
问题 I have the situation where i need access to multiple directive controller methods. I can access a method from a parent directive using the require like so: require:"^parentDirective" but I also need to access a method within a seperate directive (not a parent), the documentation says to use an array of strings like so: require:["^parentDirective","directiveTwo"] but doing this causes errors although the both directives have been compiled to the DOM. Am I missing something here? here is my

gulp的基本使用

喜夏-厌秋 提交于 2019-12-01 15:32:15
图片压缩插件使用gulp-smushit,gulp-smushit压缩率比较大, gulp-imagemin 图片压缩插件压缩率不明显。 见下图压缩率: 1、gulp安装 参照gulp官网进行安装: http://www.gulpjs.com.cn/docs/getting-started/ 2、常用的插件 gulp所有插件地址: http://gulpjs.com/plugins/ (1)html压缩插件 插件地址: https://www.npmjs.com/package/gulp-htmlmin/ (2)sass编译插件 插件地址: https://www.npmjs.com/package/gulp-sass/ 注意现在是执行2个任务了,同时注意配置好路径 。 (3) 图片压缩插件 gulp-imagemin 插件地址: https://www.npmjs.com/package/gulp-imagemin/ gulp-smushit 插件地址: https://www.npmjs.com/package/gulp-smushit/ (4) css压缩插件 插件地址: https://www.npmjs.com/package/gulp-clean-css/ 任务配置示例: //css压缩任务 gulp.task('cssmin', function() { //过滤掉

Node.js - require is not defined exception [closed]

假如想象 提交于 2019-12-01 15:08:10
问题 This question is unlikely to help any future visitors; it is only relevant to a small geographic area, a specific moment in time, or an extraordinarily narrow situation that is not generally applicable to the worldwide audience of the internet. For help making this question more broadly applicable, visit the help center. Closed 6 years ago . I am a complete Node.js newbie and struggling with the basics. Running this code on the server: var http = require("http"), sys = require("util"), io =

【深入浅出Node.js系列十五】Nodejs实现websocket的4种方式

不羁岁月 提交于 2019-12-01 14:28:29
#0 系列目录# 深入浅出Node.js系列 【深入浅出Node.js系列一】什么是Node.js 【深入浅出Node.js系列二】Node.js&NPM的安装与配置 【深入浅出Node.js系列三】深入Node.js的模块机制 【深入浅出Node.js系列四】Node.js的事件机制 【深入浅出Node.js系列五】初探Node.js的异步I/O实现 【深入浅出Node.js系列六】Buffer那些事儿 【深入浅出Node.js系列七】Connect模块解析 【深入浅出Node.js系列八】一个基于Node.js完整的Web应用实战 【深入浅出Node.js系列九】一起撸Node.js 【深入浅出Node.js系列十】一个简单的静态文件合并服务器 【深入浅出Node.js系列十一】Node.js开发框架Express4.x 【深入浅出Node.js系列十二】Nodejs日志管理log4js 【深入浅出Node.js系列十三】用Nodejs连接MySQL 【深入浅出Node.js系列十四】Nodejs异步流程控制Async 【深入浅出Node.js系列十五】Nodejs实现websocket的4种方式 WebSocket是HTML5开始提供的 一种浏览器与服务器间进行全双工通讯的网络技术 。在WebSocket API中,浏览器和服务器只需要要做一个握手(handshaking

js中的require、define、export、import【转】

筅森魡賤 提交于 2019-12-01 14:02:31
原文链接: https://www.cnblogs.com/libin-1/p/7127481.html 为什么有模块概念 理想情况下,开发者只需要实现核心的业务逻辑,其他都可以加载别人已经写好的模块。 但是,Javascript不是一种模块化编程语言,在es6以前,它是不支持”类”(class),所以也就没有”模块”(module)了。 require时代 Javascript社区做了很多努力,在现有的运行环境中,实现”模块”的效果。 原始写法 模块就是实现特定功能的一组方法。 只要把不同的函数(以及记录状态的变量)简单地放在一起,就算是一个模块。 1 2 3 4 5 6 function m1( ){   //... } function m2( ){   //... } 上面的函数m1()和m2(),组成一个模块。使用的时候,直接调用就行了。 这种做法的缺点很明显:”污染”了全局变量,无法保证不与其他模块发生变量名冲突,而且模块成员之间看不出直接关系。 对象写法 为了解决上面的缺点,可以把模块写成一个对象,所有的模块成员都放到这个对象里面 1 2 3 4 5 6 7 8 9 var module1 = new Object({ _count : 0,   m1 : function ( ){    //... },   m2 : function ( ){    //...

mongo操作数据库

时间秒杀一切 提交于 2019-12-01 13:36:02
1、回顾 2、node + mongodb 2.1 安装mongodb 项目中既可以使用mongodb,但是推荐使用mongoose cnpm i mongoose@4 -S 2.2 连接数据库 一定要确保数据库连接池是打开的 创建db.js const mongoose = require('mongoose'); // 引入模块 const DB_URL = 'mongodb://localhost:27017/sh1908'; // 数据库连接地址 // 连接数据库 // mongoose.connect(DB_URL); mongoose.connect(DB_URL, { useNewUrlParser: true }); // 数据库连接成功 mongoose.connection.on('connected', () => { console.log('数据库连接成功') }) // 数据库断开或者连接失败 mongoose.connection.on('disconnected', () => { console.log('数据库断开') }) // 数据库连接异常 mongoose.connection.on('error', () => { console.log('数据库连接异常') }) 2.3 将 db.js 封装成模块,供后续业务逻辑使用 const

Node.js开发框架Express4.x

故事扮演 提交于 2019-12-01 12:09:22
前言 Nodejs是一个年轻的编程框架,充满了活力和无限激情,一直都在保持着快速更新。基于Nodejs的官方Web开发库Express也在同步发展着,每年升级一个大版本,甚至对框架底层都做了大手术。在Express4时,替换掉中件间库connect,而改用多个更细粒度的库来取代。带来的好处是明显地,这些中间件能更自由的更新和发布,不会受到Express发布周期的影响;但问题也是很的棘手,不兼容于之前的版本,升级就意味着要修改代码。 之前写过一篇文章“ Nodejs开发框架Express3.0开发手记–从零开始 ”,很多新学Node的朋友都在参考,但由于Express已经升级,文章中有部分的代码已经不能使用,所以就有了这篇介绍Express4.x的文章。 目录 建立工程 目录结构 package.json项目配置 app.js核心文件 Bootstrap界面框架 路由功能 程序代码 Express3.x和Express4.x的改动列表 1. 建立项目 让我们从头开始Express4.x的安装和使用吧,安装Node和NPM在本文就不多说了。Linux环境安装请参考文章, 准备Nodejs开发环境Ubuntu ,Window环境安装直接下载Node的安装文件,双击安装就行了。 我的系统环境 Win7 64bit Nodejs:v0.10.31 Npm:1.4.23 首先

webpack 构建性能优化策略小结

北战南征 提交于 2019-12-01 11:59:09
背景 如今前端工程化的概念早已经深入人心,选择一款合适的编译和资源管理工具已经成为了所有前端工程中的标配,而在诸多的构建工具中, webpack 以其丰富的功能和灵活的配置而深受业内吹捧,逐步取代了grunt和gulp成为大多数前端工程实践中的首选,React,Vue,Angular等诸多知名项目也都相继选用其作为官方构建工具,极受业内追捧。但是,随者工程开发的复杂程度和代码规模不断地增加,webpack暴露出来的各种性能问题也愈发明显,极大的影响着开发过程中的体验。 问题归纳 历经了多个web项目的实战检验,我们对webapck在构建中逐步暴露出来的性能问题归纳主要有如下几个方面: 代码全量构建速度过慢,即使是很小的改动,也要等待长时间才能查看到更新与编译后的结果(引入HMR热更新后有明显改进); 随着项目业务的复杂度增加,工程模块的体积也会急剧增大,构建后的模块通常要以M为单位计算; 多个项目之间共用基础资源存在重复打包,基础库代码复用率不高; node的单进程实现在耗cpu计算型loader中表现不佳; 针对以上的问题,我们来看看怎样利用webpack现有的一些机制和第三方扩展插件来逐个击破。 慢在何处 作为工程师,我们一直鼓励要理性思考,用数据和事实说话,“我觉得很慢”,“太卡了”,“太大了”之类的表述难免显得太笼统和太抽象,那么我们不妨从如下几个方面来着手进行分析:

React Native: how to use require(path) with dynamic urls?

こ雲淡風輕ζ 提交于 2019-12-01 11:57:00
问题 I want to use WebView to show some html content here is an example: return ( <WebView style={styles.container} source={source} scalesPageToFit={Boolean(true)} onNavigationStateChange={this._onNavigationStateChange} /> ) and for the source variable I need to have two different values: 1) for android platform I need to use something like this: source = {uri: `file:///android_asset/contents/${languageId}text.html`} 2) for ios I need to use smth. like this: source = require(`../srv/localization