题目1: 如何全局安装一个 node 应用?
npm install -g
题目2: package.json 有什么作用?
直接的说:就是管理你本地安装的npm包
一个package.json文件可以做如下事情:
1.展示项目所依赖的npm包
2.允许你指定一个包的版本[范围]
3.让你建立起稳定,意味着你可以更好的与其他开发者共享
通常在创建NPM包时,可以在命令行输入nmp init命令自动生成一个package.json文件,里面包含了一些常用的字段。也可以手动配置。
package.json文件包含的常用配置字段:
1)name
name和version是package.json中最重要的两个字段,也是发布到NPM平台上的唯一标识,如果没有正确设置这两个字段,包就不能发布和被下载。
2)version
这个字段的取值需要符合node-semver的规则,详细可以见其文档。
3)description
包的描述信息,将会在npm search的返回结果中显示,以帮助用户了解包的用途。
4)author
包的作者,可以是字符串或对象。
5)files
包所包含的所有文件,可以取值为文件夹。还可以用.npmignore来去除不想包含到包里的文件。
6)main
包的入口文件,如index.js
7)repository
包的github仓库地址。
7)repository
包的github仓库地址。
8)scripts
通过设置这个可以使NPM调用一些命令脚本,封装一些功能。
9)config
添加一些设置,可以供scripts读取用,同时这里的值也会被添加到系统的环境变量中。
10)dependencies
指定依赖的其它包,这些依赖是指包发布后正常执行时所需要的,也就是生产中所需要的,如果是开发中依赖的包,可以在devDependencies设置。
题目3: npm install --save app 与 npm install --save-dev app有什么区别?
同时,--save参数表示将该模块写入dependebcies属性
--save-dev表示将该模块写入devDependencies属性。
题目4: nodule_modules的查找路径是怎样的?
从本目录开始找,如果没有就一直往上级目录找,直到找到系统根目录为止。
题目6: webpack是什么?和其他同类型工具比有什么优势?
WebPack可以看做是模块打包机:它做的事情是,分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Scss,TypeScript等),并将其打包为合适的格式以供浏览器使用。主要包含四个核心概念:入口(entry)、输出(output)、loader、插件(plugins)。
优势:
1.在webpack看来一切都是模块!这就是它不可不说的优点,包括你的JavaScript代码,也包括CSS和fonts以及图片等等等,只有通过合适的loaders,它们都可以被当做模块被处理。
2.Loader
Webpack 本身只能处理原生的 JavaScript 模块,但是 loader 转换器可以将各种类型的资源转换成 JavaScript 模块。这样,任何资源都可以成为 Webpack 可以处理的模块
3.丰富的插件系统。大多数内容功能都是基于这个插件系统运行的,还可以开发和使用开源的 Webpack 插件,来满足各式各样的需求。
和requirejs相比:
1.require.js的所有功能它都有
2.编绎过程更快,因为require.js会去处理不需要的文件
3.还有一个额外的好处就是你不需要再做一个封装的函数,不用define,自己用就require,给别人用就exports
题目7:npm script是什么?如何使用?
npm script 是 package.json 中的一个属性,可以在这个属性中自定义npm命令脚本,简化操作。
使用方法:
"scripts": { "test": "echo \"Error: no test specified\" && exit 1", "start": "webpack" },
这样可以直接在命令行里使用npm start 就是运行webpack打包webpack.config.js里的配置文件。
题目8: 使用 webpack 替换 入门-任务15中模块化使用的 requriejs
题目9:gulp是什么?使用 gulp 实现图片压缩、CSS 压缩合并、JS 压缩合并
gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器;她不仅能对网站资源进行优化,而且在开发过程中很多重复的任务能够使用正确的工具自动完成;使用她,我们不仅可以很愉快的编写代码,而且大大提高我们的工作效率。
gulp是基于Nodejs的自动任务运行器, 她能自动化地完成 javascript/coffee/sass/less/html/image/css 等文件的的测试、检查、合并、压缩、格式化、浏览器自动刷新、部署文件生成,并监听文件在改动后重复指定的这些步骤。在实现上,她借鉴了Unix操作系统的管道(pipe)思想,前一级的输出,直接变成后一级的输入,使得在操作上非常简单。通过本文,我们将学习如何使用Gulp来改变开发流程,从而使开发更加快速高效。