webpack的npm扩展使用
一、NPM的扩展使用
(1) npm init:初始化一个Node.js项目------创建必须的package.json文件
npm init -y:创建必须的package.json文件
(2) npm help json:查看package.json文件中可用的所有条目
(3) npm install xxx:下载安装指定的扩展依赖模块
npm install xxx --save:下载并安装指定的依赖模块,并声明为"运行时依赖"
npm install xxx ---save-dev:下载并安装指定的依赖模块,并声明为“开发时依赖”
npm install:根据package.json中的“运行时依赖”和“开发时依赖”列表指定模块下载
(4) npm run xxx:执行当前目录下 package.json中scripts所定义的命令;若xxx是test/start/stop/rebuild之一,可以省略
掉run 简写为npm xxx,即npm run start等价于 npm start
=============================================================
package.json中的特殊用法:
{
“scripts”: { 定义可以使用npm run 执行的命令
"test":"node ./test.js",
"start": "node ./main.js"
}
"dependencies":{ 定义当前项目的“运行时依赖”
"express":"^4.3.0",
"mysql":"^2.16.0"
},
"devDependencies":{ 定义当前项目的“开发时依赖”
"scss":"^1.15.0",
"gulp":"2.0.0"
}
}
运行时依赖:指当前项目在部署到服务器上供客户端请求时需要使用到的第三方模块
开发时依赖:指当前项目在程序员开发阶段(在最终运行之前)需要使用到的第三方模块
二、模块的使用
注意:在JS中使用全局变量/函数,会自动成为全局对象的成员——称为“全局对象的污染问题”;后续重名的变量/函数会覆盖之前的变量/函数。 实际开发中,应努力避免使用全局变量/函数。
解决方案:—— 模块(Module)
CommonJS中的模块规范 |
ES6中的模块规范 |
||
导出 |
//x.js module.exports = { age: 20, work: function(){ } } //每个模块只能导出一次 |
//x.js export var age = 20; export function work(){} //每个模块可以导出多个内部成员 |
//x.js export default { age: 20, work: function(){} } //每个模块只能导出一个默认对象 |
导入 |
//y.js const obj = require('./x'); console.log(obj.age); obj.work(); |
//y.js import {age, work} from './x'; console.log(age); work(); |
//y.js import obj from './x'; console.log(obj.age); obj.work(); |
书写位置 |
导入/导出可以写在顶级或内部 |
导出/导入只能写在最顶级 |
|
适用场合 |
服务器端Node.js中使用; 浏览器中不能使用 |
服务器端Node.js不支持 —— 这是客户端浏览器中的JS模块规范!—— 目前所有浏览器都不能直接支持此规范! |
三、Webpack的使用
官网:www.webpackjs.com
作用:把多个静态资源文件(脚本/样式/图片等)“打包”为一个/少数几个静态资源文件 —— 减少客户端请求次数/数据传输量,提高Web访问效率。
使用方法:先使用传统方法写完一个Web项目(若干js/css/图片...),再使用Webpack把静态资源打包,在HTML中引入打包后的资源文件让客户端请求。
使用步骤:
(0)按照传统方法编写Web项目
(1)下载并安装Webpack所需要的所有模块
npm i webpack --save-dev
(2)在项目根目录下创建Webpack主配置文件
webpack.config.js 注意文件位置/名称
(3)运行Webpack,读取配置文件,执行打包工作
node ./node_modules/webpack/bin/webpack.js
(4)修改HTML文件,只引入打包后得到的打包文件即可
webpack的npm扩展使用的更多相关文章
- vue-cli webpack项目npm run dev启动过程
前言 通过vue init webpack和npm install命令初始化项目后,执行npm run dev就打开了网站http://localhost:8080.初学者不知道index.html. ...
- webpack、npm、nginx常用命令
webpack命令:webpack --watch 监听变动并自动打包,简写-wwebpack -p --progress --color 压缩混淆脚本webpack -d 生成映射文件,告知那些模 ...
- 基于 webpack 的 chrome 扩展开发探索
起 最近利用闲暇时间在进行一款 chrome 扩展 V2EX-HELPER 的开发(如果巧遇 V 友欢迎试用),今天把它彻底改成了用 webpack 打包依赖的模式,不由得感概 webpack 的强大 ...
- Scss开发临时学习过程||webpack、npm、gulp配置
SCSS语法: 假设变量申明带有!default,那么如果在此申明之前没有这个变量的申明,则用这个值,反之如果之前有申明,则用申明的值. ‘...’传递多个参数: @mixin box-shadow( ...
- webpack nodejs npm关系
nodejs是js后端运行平台,可以把它看成java体系中对应的jdk,是三个里面最基础的.npm是nodejs的包管理工具,可以把它看成maven中包依赖管理那部分.webpack是前端工程化打包工 ...
- vue项目webpack中Npm传递参数配置不同域名接口
项目开发中,前端在配置后端api域名时很困扰,常常出现:本地开发环境: api-dev.demo.com测试环境: api-test.demo.com线上生产环境: api.demo.com, 这次是 ...
- 16 关于webpack和npm中几个问题的说明
1.json里面不能写注释 2.'webpack-dev-server'不是内部或外部命令,也不是可运行的程序或批处理文件. 注意:webpack-dev-server包只需要本地安装就行,不用全局安 ...
- webpack打包优化之外部扩展externals的实际应用
目录 前言 externals定义 用法 string array object function regex 实际案例 打包时间 打包之后包的大小 浏览器加载 需要注意 参考 前言 使用vue-cl ...
- 如何扩展 Create React App 的 Webpack 配置
如何扩展 Create React App 的 Webpack 配置 原文地址https://zhaozhiming.github.io/blog/2018/01/08/create-react-a ...
随机推荐
- Python移动自动化测试面试 ☝☝☝
Python移动自动化测试面试 ☝☝☝ Python移动自动化测试面试 学习 教程 1.super 是干嘛用的?在 Python2 和 Python3 使用,有什么区别?为什么要使用 super? ...
- 告诉你如何回答"线上CPU100%排查"面试问题
不知道在大家面试中,有没有遇到这个问题: 生产服务器上部署了几个java程序,突然出现了CPU100%的异常告警,你如何定位出问题呢? 这个问题分为两版回答!高调版对不起,我是做研发的,这个问题在生产 ...
- 重新整理django中Auth模块
0907自我总结 重新整理django中Auth模块 from django.contrib import auth 一.设置 默认Auth表单 auth默认是使用自带的user表单 自定义Auth表 ...
- LeetCode初级算法--链表01:反转链表
LeetCode初级算法--链表01:反转链表 搜索微信公众号:'AI-ming3526'或者'计算机视觉这件小事' 获取更多算法.机器学习干货 csdn:https://blog.csdn.net/ ...
- 零基础转行web前端,如何高效的去学习web前端
web前端开发要学的知识内容涉及的会很宽泛,虽然说主要是HTML.CSS和JavaScript这些基础知识点,但学前端开发除了要学这些基础知识外,学员还要在这之上进行延伸和深入的去学,而且互联网时代不 ...
- node.js当中的http模块与url模块的简单介绍
一.http模块的简单介绍 node.js当中的http内置模块可以用于创建http服务器与http客户端. 1.引包 const http = require('http'); 2.创建http服务 ...
- 百万年薪python之路 -- JS的BOM与DOM对象
BOM对象 location对象 location.href 获取URL location.href="URL" // 跳转到指定页面 location.reload() 重新加载 ...
- 百万年薪python之路 -- socket()模块的用法
socket()模块的用法: import socket socket.socket(socket_family,socket_type,protocal=0) socket_family 可以是 A ...
- 远程控制服务(SSH)之Linux环境下客户端与服务端的远程连接
本篇blog将讲述sshd服务提供的两种安全验证的方法,并且通过这两种方法进行两台Linux虚拟机之间的远程登陆. 准备工作: (1) 准备两台安装有Linux系统的虚拟机,虚拟机软件采用VM ...
- textbox获取焦点选中内容
前台: <TextBox VerticalAlignment="> <TextBox.Style> <Style TargetType="TextBo ...