题目1: 如何全局安装一个 node 应用?
在命令行下输入npm install -g app
,其中-g
是--global
的缩写,也可以写npm install --global app
题目2: package.json 有什么作用?
package.json定义了这个项目所需的所有模块,以及项目的配置信息,如"name","version","author","description","keyboard" 等元数据。npm install 命令根据这个配置文件,自动下载所需的模块,即配置项目所需的运行和开发环境。
题目3: npm install --save app 与 npm install --save-dev app有什么区别?
都是将"app"下载到当前目录,以供自己的package使用,不同之处在于,当他人下载我们写的package时,--save-dev
所下载的app不会被下载,即,--save-dev
所用的app仅供自己测试使用,别人不会下载访问。
题目4: node_modules的查找路径是怎样的?
当我们使用require一个js的时候,首先会从当前目录寻找node_modules文件夹中的package.json 文件,找到里面的 "main" ,"main"对应的值就是要使用的js的文件路径,这样就找到了,如果当前目录下没有找到,则从上一级查找,依次类推,直到找到根目录,如果还没有,则报错。
题目6: webpack是什么?和其他同类型工具比有什么优势?
webpack是一个前端资源模块化管理和打包工具。
它可以将许多松散的模块按照依赖和规则打包成符合生产环境部署的前端资源。
还可以将按需加载的模块进行代码分隔,等到实际需要的时候再异步加载。
通过 loader 的转化,任何形式的资源都可以视作模块。
相比于CommonJS规范和AMD规范,对依赖的管理和模块的使用更加方便,将模块中要输出的添加给 module.expose,直接require模块的路径加文件名就可以使用了,并且将这些模块合并成一个文件。
ES6也有类似的管理依赖的方法,但是ES6兼容性不好。
题目7:npm script是什么?如何使用?
每个项目下都会有一个 package.json 文件,package.json 文件中有一个script键值对,对应的值里面的每一条语句可以直接在命令行中运行,npm script 就是通过写一些语句达到对前端资源的操作,其中每个命令之间用分号隔开。
例如:
//在package.json中写入
"script": {
"test": "mkdir test"
"git": "git add.; git commit -am 'change'; git push"
}
//在命令行中输入npm test,即可执行mkdir test ,在当前路径下创建test文件夹
//在命令行中输入npm run git ,即可执行git add.; git commit -am 'change'; git push这三条语句,完成push
//系统会识别例如 "test" ,"start" ,"build" 之类的语句,其他的需要加上 "run" 才能运行