一、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. UVA - 11400 Lighting System Design

    题文: You are given the task to design a lighting system for a huge conference hall. After doing a lot ...

  2. asp.net 重写OnException返回json或跳转新页面

    protected override void OnException(ExceptionContext filterContext) { // 此处进行异常记录,可以记录到数据库或文本,也可以使用其 ...

  3. Qt5教程: (4) 带参数信号与槽

    在subwidget.h中声明一个signal. 和之前的信号函数重名但是有参数: void backSignal(QString); 之后在subwidget.cpp的槽函数sendSignal() ...

  4. spring源码系列8:AOP源码解析之代理的创建

    回顾 首先回顾: JDK动态代理与CGLIB动态代理 Spring中的InstantiationAwareBeanPostProcessor和BeanPostProcessor的区别 我们得知 JDK ...

  5. WCF 入门调用实例教程

    WCF的相关概念信息就不在此赘述了,网上一搜一大把. 现在让我们动手搭建我们的第一个wcf程序吧,具体流程如下: 1. 新建立空白解决方案,并在解决方案中新建项目,项目类型为:WCF服务应用程序. 2 ...

  6. python日记:用pytorch搭建一个简单的神经网络

    最近在学习pytorch框架,给大家分享一个最最最最基本的用pytorch搭建神经网络并且训练的方法.本人是第一次写这种分享文章,希望对初学pytorch的朋友有所帮助! 一.任务 首先说下我们要搭建 ...

  7. python里怎么查看数据类型

    python里怎么查看数据类型? python里可以通过type()函数来查看数据类型. Python 内置函数 Python 内置函数 Python type() 函数如果你只有第一个参数则返回对象 ...

  8. 第九周课程总结&实验报告(七)

    实验任务详情: 完成火车站售票程序的模拟. 要求: (1)总票数1000张: (2)10个窗口同时开始卖票: (3)卖票过程延时1秒钟: (4)不能出现一票多卖或卖出负数号票的情况. 实验代码 pac ...

  9. 是可忍孰不可忍!!nodepad++作者台独分子,恶毒言论!!!

    本来用了两年这个软件吧,不带任何情感的,单纯辅助工具.直到今天,在GitHub上,发现了这个作者以及一些同党都是一群尼玛生在中国骂中国的狗币. https://github.com/notepad-p ...

  10. 小房子配置开发实例-IT资产管理(资产类管理)--开发设计过程

    小房子(Houselet)作为一个集开发和应用为一体的管理软件平台,通过数据库配置开发的方式来开发管理系统:目的在于辅助企业低成本快速建设管理系统.且系统为开放的,随时可以维护升级的,随企业管理的需要 ...