一、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. Python之string模块(详细讲述string常见的所有方法)

    相信不少学习python的程序员都接触过string模块 string模块主要包含关于字符串的处理函数 多说无益,初学python的小伙伴还不赶紧码起来 接下来将会讲到字符串的大小写.判断函数. 以及 ...

  2. cocos2dx 3.2 内存管理

    一.引用计数(cocos2d-x3.2的Node类中用到) 概念:记录当前对象被引用的次数.当次数为0时释放. 1 . retain  与 release 每调用一次retain()使计数+1 每调用 ...

  3. Bran的内核开发教程(bkerndev)-03 内核初步

    目录 内核初步 内核入口 链接脚本 汇编和链接 PS: 下面是我自己写的 64位Linux下的编译脚本 内核初步   在这节教程, 我们将深入研究一些汇编程序, 学习创建链接脚本的基础知识以及使用它的 ...

  4. Github桌面端安装慢问题

    失败截图: 原因是某些域名被墙,所以这里想安装快的话还是得翻墙.如何翻墙请自行百度. 如果翻墙还是很慢,请参考网上大神文章:https://www.yaozeyuan.online/2015/10/0 ...

  5. window 后台运行的应用程序点击没反应

    有时候,开了几个软件,有的软件一段时间没点击,再点击软件的图标一点反应都没有,这时,可以试着这么做: window 快捷键 :win + r  , 输入命令 : taskmgr ,打开任务管理器,选择 ...

  6. [HDU5955]Guessing the Dice Roll

    Problem Description There are N players playing a guessing game. Each player guesses a sequence cons ...

  7. std::multiset

    Set.multiset都是集合类, 差别在与set中不允许有重复元素, multiset中允许有重复元素. sets和multiset内部以平衡二叉树实现.   multiset 多重集合容器是一个 ...

  8. Unity3D 通过JSON查询天气

    一.天气查询API 获取天气信息,首先要找到提供天气数据的接口,我使用的是高德地图免费为我们提供的,网址为 https://lbs.amap.com/api/webservice/guide/api/ ...

  9. 测试中常用sql

    1.增删改查 2.同一服务器下,要从一个数据库复制某张表到另一个数据库 create table test.sf_audit_plan as select * from v3_0_sf_full.sf ...

  10. 以np.concatenate为主题,谈谈numpy数组按维度合并的问题

    1.引言 最近在做多模态融合的图像问题,其中最需要解决的就是不同模态的图像用什么方法进行融合,最简单也最直观的方法就是采用合并数组的方法,将不同模态的图像合并为多通道进行处理.在一些论文中,比如< ...