1: 如何全局安装一个 node 应用?
安装时使用-g指令
npm i -g ***
2: package.json 有什么作用?
package.json的作用
- 记录了npm组件的相关信息如:组件名、版本号、开发作者等
- npm组件依赖文件的的下载索引
3: npm install --save app 与 npm install --save-dev app有什么区别?
使用指令--save-dev 安装包信息将加入到devDependencies(开发阶段的依赖),开发阶段会使用它,别人下载npm包不会下载DEV的依赖
4: node_modules的查找路径是怎样的?
调用模块时,先查找当前文件夹下的node_modules文件夹,如果没有,将查找上级目录的node_modules文件夹,一一直向上查找各级目录下的node_modules文件夹,直到根目录
5: npm3与 npm2相比有什么改进?yarn和 npm 相比有什么优势?
npm3与npm2相比优化的目录结构;
npm3会将同一组件不同版本的文件归纳到同一目录下整理,npm2不会。
yarn和 npm 相比有什么优势
- 版本管理:npm 某些情况会发生两台拥有相同 package.json 文件的机子安装了不同版本的包,这可能导致一些错误。为了避免包版本的错误匹配,一个确定的安装版本被固定在一个锁文件中。每次模块被添加时,Yarn 就会创建(或更新)yarn.lock 文件,这样你就可以保证其它机子也安装相同版本的包,同时包含了 package.json 中定义的一系列允许的版本。
- 并行安装:每当 npm 或 Yarn 需要安装一个包时,它会进行一系列的任务。在 npm 中这些任务是按包的顺序一个个执行,这意味着必须等待上一个包被完整安装才会进入下一个;Yarn 则并行的执行这些任务,提高了性能
- 清晰的输出:npm 默认情况下非常冗余,例如使用 npm install 时它会递归列出所有安装的信息;而 Yarn 则一点也不冗余
6: webpack是什么?和其他同类型工具比有什么优势?
webpack是一款模块加载器兼打包工具,它能把各种资源,例如JS(含JSX)、coffee、样式(含less/sass)、图片等都作为模块来使用和处理。
webpack 的优势
其优势主要可以归类为如下几个:
- webpack 以 commonJS 的形式来书写脚本,同时对 AMD/CMD 的支持也很全面,方便旧项目进行代码迁移。
- 能被模块化的不仅仅是 JS 。
- 开发便捷,能替代部分 grunt/gulp 的工作,比如打包、压缩混淆、图片转base64等。
- 扩展性强,插件机制完善,特别是支持 React 热插拔(见 react-hot-loader )的功能让人眼前一亮
7:npm script是什么?如何使用?
npm 允许在package.json文件里面,使用scripts字段定义脚本命令,即npm script(npm脚本)。
npm script的使用
package.json文件里面的scripts字段是一个对象。它的每一个属性,对应一段脚本。比如,build命令对应的脚本是node build.js。
{
// ...
"scripts": {
"build": "node build.js"
}
}
命令行下使用npm run命令,就可以执行这段脚本。
如果对象的key是保留字,如test、start则使用npm start即可运行npm script,否则运行时使用npm run key的格式。
8: 使用 webpack 替换 入门-任务15中模块化使用的 requriejs
github
9:gulp是什么?使用 gulp 实现图片压缩、CSS 压缩合并、JS 压缩合并
gulp是一个自动化构建工具,开发者可以使用它在项目开发过程中自动执行常见任务。
gulp 实现图片压缩
CSS 压缩合并
JS 压缩合并
//gulpfile.js
var gulp = require('gulp');
gulp.task('default', ['img','css','js']);
gulp.task('img',function() {
gulp.src(['./文件路径/**.png','./文件路径/**.jpg'])
.pipe(imagemin()) //图片压缩
.pipe(gulp.dest('./build')) //输出至build目录
})
gulp.task('css',function() {
gulp.src('./文件路径/**.css')
.pipe(cssnano())
.pipe(concat('合并后css文件名') )//CSS 压缩合并
.pipe(gulp.dest('./build')) //输出至build目录
})
gulp.task('js',function() {
gulp.src('./文件路径/**.js')
.pipe(uglify())
.pipe(concat('合并后js文件名')) //JS 压缩合并
.pipe(gulp.dest('./build')) //输出至build目录
})
/////////////////////////////////////////////////////////////////////////
//nodejs端
$ gulp //执行default任务
网友评论