如何全局安装一个 node 应用?
- npm install -g xxxx(应用名称)
package.json 有什么作用?
- 每个项目的根目录下面,一般都有一个package.json文件,定义了这个项目所需要的各种模块,以及项目的配置信息(比如名称、版本、许可证等元数据)。npm install命令根据这个配置文件,自动下载所需的模块,也就是配置项目所需的运行和开发环境。
- package.json文件就是一个JSON对象,该对象的每一个成员就是当前项目的一项设置。比如name就是项目名称,version是版本(遵守“大版本.次要版本.小版本”的格式)。
- package.json文件的各个字段:
scripts : 指定了运行脚本命令的npm命令行缩写,比如start指定了运行npm run start时,所要执行的命令。
dependencies :字段指定了项目运行所依赖的模块。
devDependencies :指定项目开发所需要的模块。
- package.json文件可以手工编写,也可以使用npm init命令自动生成。这个命令采用互动方式,要求用户回答一些问题,然后在当前目录生成一个基本的package.json文件。所有问题之中,只有项目名称(name)和项目版本(version)是必填的,其他都是选填的。
npm install --save app 与 npm install --save-dev app有什么区别?
- npm install --save app:安装package.json文件的dependencies之中的模块,这里面代表运行所依赖的模块。
- npm install --save-dev app:安装package.json文件的devDependencies之中的模块,这里面代表开发所依赖的模块。
node_modules的查找路径是怎样的?
- 遇见require时,会在当前目录下找node_modules文件夹,看看里面有没有需要的模块,没有则沿着当前项目的路径一层一层往上查找,一直到根目录为止。
npm3与 npm2相比有什么改进?
- npm2所有项目依赖是嵌套关系,也就是说会出现嵌套过多的情况,npm3改进了这个情况,会将所有依赖放在第二层依赖中,即所有依赖都在同一node_modules目录中,是平行而不是嵌套的,有同名才会出现嵌套。
webpack是什么?和其他同类型工具比有什么优势?
- webpack是一个打包工具。它能分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Scss,TypeScript等),并将其打包为合适的格式以供浏览器使用。主要的核心概念为:入口(entry)、输出(output)、loader、插件(plugins)。
- 优势:
- 在webpack看来一切都是模块!这就是它不可不说的优点,包括你的JavaScript代码,也包括CSS和fonts以及图片等等等,只有通过合适的loaders,它们都可以被当做模块被处理。
2.Webpack 本身只能处理原生的 JavaScript 模块,但是 loader 转换器可以将各种类型的资源转换成 JavaScript 模块。这样,任何资源都可以成为 Webpack 可以处理的模块。
3.丰富的插件系统。大多数内容功能都是基于这个插件系统运行的,还可以开发和使用开源的 Webpack 插件,来满足各式各样的需求。
4.和 requirejs 相比,require.js的所有功能它都有,但编绎过程更快,因为 require.js 会去处理不需要的文件,还有一个额外的好处就是你不需要再做一个封装的函数,不需要写 define,自己用 exports 后,require 就好。
npm script是什么?如何使用?
- scripts指定了运行脚本命令的npm命令行缩写,比如start指定了运行npm run start时,所要执行的命令。通过设置 npm script 可以方便实现前端工作流。
- 使用方法:
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"webpack": "webpack app.js ./bin/app.merge.js"
}
//在命令行输入 npm run webpack,就可以在命令行中执行 webpack app.js ./bin/app.merge.js 命令。
使用 webpack 替换 入门-任务15中模块化使用的 requriejs
gulp是什么?使用 gulp 实现图片压缩、CSS 压缩合并、JS 压缩合并
- 它是一款nodejs应用。
- 它是打造前端工作流的利器,打包、压缩、合并、git、远程操作...,
- 简单易用
- 无快不破
- 高质量的插件
- github代码