一、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扩展使用的更多相关文章

  1. vue-cli webpack项目npm run dev启动过程

    前言 通过vue init webpack和npm install命令初始化项目后,执行npm run dev就打开了网站http://localhost:8080.初学者不知道index.html. ...

  2. webpack、npm、nginx常用命令

    webpack命令:webpack --watch 监听变动并自动打包,简写-wwebpack -p --progress --color 压缩混淆脚本webpack -d  生成映射文件,告知那些模 ...

  3. 基于 webpack 的 chrome 扩展开发探索

    起 最近利用闲暇时间在进行一款 chrome 扩展 V2EX-HELPER 的开发(如果巧遇 V 友欢迎试用),今天把它彻底改成了用 webpack 打包依赖的模式,不由得感概 webpack 的强大 ...

  4. Scss开发临时学习过程||webpack、npm、gulp配置

    SCSS语法: 假设变量申明带有!default,那么如果在此申明之前没有这个变量的申明,则用这个值,反之如果之前有申明,则用申明的值. ‘...’传递多个参数: @mixin box-shadow( ...

  5. webpack nodejs npm关系

    nodejs是js后端运行平台,可以把它看成java体系中对应的jdk,是三个里面最基础的.npm是nodejs的包管理工具,可以把它看成maven中包依赖管理那部分.webpack是前端工程化打包工 ...

  6. vue项目webpack中Npm传递参数配置不同域名接口

    项目开发中,前端在配置后端api域名时很困扰,常常出现:本地开发环境: api-dev.demo.com测试环境: api-test.demo.com线上生产环境: api.demo.com, 这次是 ...

  7. 16 关于webpack和npm中几个问题的说明

    1.json里面不能写注释 2.'webpack-dev-server'不是内部或外部命令,也不是可运行的程序或批处理文件. 注意:webpack-dev-server包只需要本地安装就行,不用全局安 ...

  8. webpack打包优化之外部扩展externals的实际应用

    目录 前言 externals定义 用法 string array object function regex 实际案例 打包时间 打包之后包的大小 浏览器加载 需要注意 参考 前言 使用vue-cl ...

  9. 如何扩展 Create React App 的 Webpack 配置

    如何扩展 Create React App 的 Webpack 配置  原文地址https://zhaozhiming.github.io/blog/2018/01/08/create-react-a ...

随机推荐

  1. 寻找子串位置<codevs>

    KMP板子题; 如果不会可以参考其他算法书 代码: #include<iostream> #include<stdio.h> #include<stdlib.h> ...

  2. Idea项目注释规范设置

    Idea项目注释规范设置文档 1.类注释: /**    *@ClassName: ${NAME}    *@Description: TODO    *@Author: guohui    *@Da ...

  3. 机器学习:不平衡信息有序平均加权最近邻算法IFROWANN

    一 背景介绍 不平衡信息,特点是少数信息更珍贵,多数信息没有代表性.所以一般的分类算法会被多数信息影响,而忽略少数信息的重要性. 解决策略: 1.数据级别 (1)上采样:增加稀有类成本数 (2)下采样 ...

  4. [POJ3523]The Morning after Halloween

    Description You are working for an amusement park as an operator of an obakeyashiki, or a haunted ho ...

  5. 虚拟机Ubuntu系统无法连接网络解决方案

    宿主机连接wifi,虚拟机无法联网 查看是否有网络图标 操作一: sudo service network-manager stopsudo rm /var/lib/NetworkManager/Ne ...

  6. 在树莓派上安装Theano

    “查遍全网都没人成功在树莓派安装Theano,这是什么样的感觉?” ——写在开头 在这里必须先说一下,由于安装过程中的坑太多了,遇到的问题层出不穷,所以我这里只能记录我安装过程中的印象深刻的问题,如果 ...

  7. 算法随笔-二叉树遍历的N种姿势

    最近在练习用Python刷算法,leetcode上刷了快300题.一开始怀疑自己根本不会写代码,现在觉得会写一点点了,痛苦又充实的刷题历程.对我这种半路出家的人而言,收获真的很大. 今天就从二叉树遍历 ...

  8. ES和zookeeper选取帮主之江湖秘闻

    ES帮会 某日,ES帮会中决定选取老大统领帮会走向辉煌.大家七嘴八舌,讨论方案,场面一顿混乱.傻牛站起来大喊一声:谁比俺力气大,谁就当老大.(ES集群在启动时,选取集群master,按照nodeId进 ...

  9. Token refresh的实现

    实现原理: 在access_token里加入refresh_token标识,给access_token设置短时间的期限(例如一天),给refresh_token设置长时间的期限(例如七天).当活动用户 ...

  10. 设计时需要考虑的问题(webAPI)

    1.根据api接口访问路径定义好controller和action. 2.记录操作日志.包含接口入参.出参.异常以及重要的节点数据(数据库返回.第三方接口返回.重要的私有变量值) 3.入参合法性检查. ...