为什么要在dependencies.devDependencies中声明依赖? 答:保证任何人在(或者你自己在其他设备上)对这个项目进行修改(开发)时,通过npm install就能获取同样的开发环境. dependencies.devDependencies 的区别?与webpack打包的联系? 答:网上说的"dependencies用于生产环境"是不准确的:因为用于生产环境的文件,是webpack构建的,webpack构建时,依赖管理是通过require寻找依赖,依赖的包可以在de…
原文链接: https://zhuanlan.zhihu.com/p/29855253 在一个Node.js项目中,package.json几乎是一个必须的文件,它的主要作用就是管理项目中所使用到的外部依赖包,同时它也是npm命令的入口文件. npm 目前支持以下几类依赖包管理: dependencies devDependencies peerDependencies optionalDependencies bundledDependencies / bundleDependencies 如…
关键问题 一:所有node_modules里的模块都不进行打包 webpack的核心功能是将引用的各个模块打到一个文件里,并会将各种规范的模块进行统一的模块化处理(webpack规范). 然而node中包含大量的fs.path操作,这些fs和path操作在打包完成后将没有操作对象,还会报出很多各样的错误. 所以使用webpack打包的核心就是拒绝打包一切node_modules里的模块,只是将相对路径引用的文件打包到一个文件里.恰巧我们发现webapck提供externals属性来排除掉不需要打…
创建一个webpack打包流程 首先安装webpack插件 mkdir webpack-demo && cd webpack-demo npm init -y npm install --save-dev webpack npm install --save lodash 创建index.html文件 <html> <head> <title>webpack 2 demo</title> </head> <body>…
记得去年十月份的时候,自己在研究webpack,当时只是知道大致的用法,写了一个简单的demo,现在,经过了7个月对公司产品架构的使用,以及对vue-cli的使用,在了解了实际应用中各种需求之后,我自己写了一套适合开发的vue-cli 为了满足业务需要我这里配置了四套环境,打包的时候可以自己根据不同的业务场景进行打包 首先看整体目录结构: package.json里是各种依赖,build是四套webpack要读取的config,static是要复制到dist下的配置文件,四套环境的api都保存在…
一.原理 webpack 背后的原理其实就是把所有的非 js 资源都转换成 js (如把一个 css 文件转换成“创建一个 style 标签并把它插入 document ”的脚本.把图片转换成一个图片地址的 js 变量或 base64 编码等),然后用 CommonJS 的机制管理起来. 用途是通过 CommonJS 的语法把所有浏览器端需要发布的静态资源做相应的准备,比如资源的合并和打包. 同时 webpack 提供了强大的 loader 机制和 plugin 机制,loader 机制支持载入…
webpack打包,同时将ES6转为ES5,第一次尝试搞了一下午才弄好,所有的问题均来自ES6转es5上面,可能天分不够把,但愿各大浏览器快点支持ES6吧!忽略nodejs安装. 第一,新建一个项目文件夹,目录类似下面, 第二,进入该目录,按住shift+鼠标右键打开命令提示面板,package.json是通过命令npm init -y生成的. 第三,安装3.10.0版本webpack,不好意思只有3.10.0尝试成功,命令 npm --save-dev 第四,安装babel-core,babe…
为什么要模块化 javascript跟其他开发语言有很多的区别,其中一个就是没有模块化概念,如果一个项目中有多个js文件,我们只能通过script标签引入的方式,把一个个js文件插入到页面,这种做法会也引起了很多弊端: 需要手动维护JavaScript的加载顺序 多次请求资源,影响了加载速度 在每个script标签中,顶层作用域即全局作用域,如果没有任何处理而直接在代码中进行变量或函数声明,就会造成全局作用域的污染,也会造成命名冲突. 模块化很容易就避免这些问题,避免冲突,合并资源减少网络开销,…
背景: 项目基于原生js,没用到任何脚手架和框架,但也需要打包压缩. 项目的js中声明了一些全局变量 供其他js调用. 这时候如果用webpack打包,基于webpack特性,会嵌套一层大函数,会将js中的变量变成局部,不能供其他js调用. 因此弃用了webpack.选用了uglifyjs. 原因: webpack里也有用到uglifyjs的webpack版:uglifyjs-webpack-plugin. 打包途径: 打包源文件:dev文件夹下的js文件====>目标文件:js文件夹. 目录结…
一.什么是webpack webpack官网给出的定义是 本质上,webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler).当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency graph),其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个 bundle. 如上图: 中间的蓝色块就是webpack. 他会将左边各种文件打包成右侧html能够解析的文件. 总结: webpack是一个静态的打包模块…