一、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. 部署主从dns

    主机部署:yum安装DNS服务和依赖 [admin@haifly-bj-dns1 ~]$ sudo yum install bind-chroot启动named-chroot服务 [admin@hai ...

  2. HikariCP重要参数配置

    概述 HikariCP是Spring Framework 5.0的默认数据库连接池,这得益于他的高性能.但是如果配置不当,数据库连接池也可能因影响到系统性能. 重要参数 maximum-pool-si ...

  3. SpringBoot2.x升级踩坑--新增Configuration property name限制

    最近公司项目在做SpringBoot的升级,在升级过程中遇到了一些问题,简单记录一下,做个分享.另外,本文中的程序只为示例代码,并非公司生产环境代码. 遇到什么问题 从SpringBoot1.x升级到 ...

  4. unittest执行用例方法

    #coding=utf-8 from selenium import webdriver from time import sleep import unittest#导入unittest库 impo ...

  5. 安装VMware Tools显示灰色正确解决办法

    首先问题如下: 解决办法如下:1.关闭虚拟机: 2.在虚拟机设置分别设置CD/DVD.CD/DVD2和软盘为自动检测三个步骤: 3.再重启虚拟机,灰色字即点亮. 大功告成,如果解决了你的问题,点个赞鼓 ...

  6. Cocos2d-x 学习笔记(11.1) MoveBy MoveTo

    1. MoveBy MoveTo 两方法都是对node的平移,MoveBy是相对当前位置的移动.MoveTo是By的子类,是移动到世界坐标位置. 1.1 成员变量和create方法 MoveBy的主要 ...

  7. Cocos Creator 中 _worldMatrix 到底是什么(中)

    Cocos Creator 中 _worldMatrix 到底是什么(中) 1. 中篇摘要 在上篇中主要做了三件事 简单表述了矩阵的基本知识,以及需要涉及到的三角函数知识 推导了图形变换中 位移 .旋 ...

  8. Vulnhub靶场渗透练习(四) Acid

    利用namp 先进行扫描获取ip nmap  192.168.18.* 获取ip  没发现80端口 主机存活  猜测可以是个2000以后的端口 nmap -p1-65533 192.168.18.14 ...

  9. 详解 Redis 内存管理机制和实现

    Redis是一个基于内存的键值数据库,其内存管理是非常重要的.本文内存管理的内容包括:过期键的懒性删除和过期删除以及内存溢出控制策略. 最大内存限制 Redis使用 maxmemory 参数限制最大可 ...

  10. 从零开始把项目发布到maven仓库中心

    sonatype准备操作 注册账号 https://issues.sonatype.org 1. 密码符号规范,并且工记住 新建项目 1. group id 如果你有com域名的所有权可以直接使用,如 ...