如何全局安装一个 node 应用?
npm install -g pkg
package.json 有什么作用?
每个项目的根目录下面,一般都有一个package.json文件,定义了这个项目所需要的各种模块,以及项目的配置信息(比如名称、版本、许可证等元数据)。npm install命令根据这个配置文件,自动下载所需的模块,也就是配置项目所需的运行和开发环境。
(npm init)
package.json字段全解
package.json文件
npm install --save app 与 npm install --save-dev app有什么区别?
--save 会把依赖包名称添加到 package.json 文件 dependencies 键下
--save-dev 则添加到 devDependencies 键下,只有开发测试项目的时候会用到,别人引用项目不会下载
node_modules的查找路径是怎样的?
例如:
// index.js
var marked = require('marked')
-demo
--node_modules
---bin
---marked
--index.js
先从当前所在文件夹demo的node_modules里找marked,找不到就依次到上级目录中的node_modules里面找,,直到系统根目录。
npm3与 npm2相比有什么改进?yarn和 npm 相比有什么优势?
webpack是什么?和其他同类型工具比有什么优势?
webpack是一个模块加载器和打包工具,它可以将许多松散的模块按照依赖和规则打包成符合生产环境部署的前端资源。还可以将按需加载的模块进行代码分隔,等到实际需要的时候再异步加载。通过 loader 的转换,任何形式的资源都可以视作模块,比如 CommonJs 模块、 AMD 模块、 ES6 模块、CSS、图片、 JSON、Coffeescript、 LESS 等。
优势:
对CommonJS、AMD、ES6的语法兼容
对js、css、图片等资源文件都支持打包
串联式模块加载器以及插件机制,让其具有更好的灵活性和扩展性,例如提供对CoffeeScript、ES6的支持
有独立的配置文件webpack.config.js
可以将代码切割成不同的chunk,实现按需加载,降低了初始化时间
支持 SourceUrls 和 SourceMaps,易于调试
具有强大的Plugin接口,大多是内部插件,使用起来比较灵活
webpack 使用异步 IO 并具有多级缓存。这使得 webpack 很快且在增量编译上更加快
npm script是什么?如何使用?
npm script允许在package.json中使用scripts字段定义脚本命令
//package.json
{
...
"scripts": {
"start": "webpack" //npm start
"server": "webpack-dev-server --open" //npm run server
},
...
}
使用 webpack 替换 requriejs
gulp是什么?使用 gulp 实现图片压缩、CSS 压缩合并、JS 压缩合并
在Javascript的开发过程中,经常会遇到一些重复性的任务,比如合并文件、压缩代码、检查语法错误、将Sass代码转成CSS代码等等。通常,我们需要使用不同的工具,来完成不同的任务,既重复劳动又非常耗时。grunt,gulp都是为了解决这个问题而发明的工具,可以帮助我们自动管理和运行各种任务,很多人认为,在操作上,它要比Grunt简单。
//gulpfile.js
var gulp = require('gulp'),
imagemin = require('gulp-imagemin'), //图片压缩
concat = require('gulp-concat'), //文件合并
cssnano = require('gulp-cssnano'), //css压缩
uglify = require('gulp-uglify') //js压缩
gulp.task('imgtest', function(){
gulp.src('src/img/*')
.pipe(imagemin())
.pipe(gulp.dest('dist/img/'))
})
gulp.task('csstest', function(){
gulp.src('src/css/*')
.pipe(concat("merge.css"))
.pipe(cssnano())
.pipe(gulp.dest('dist/css/'))
})
gulp.task('jstest', function(){
gulp.src('src/css/*')
.pipe(concat('merge.js'))
.pipe(uglify())
.pipe(gulp.dest('dist/js/'))
})
gulp.task('default', ['imgtest', 'csstest', 'jstest'])
开发一个 node 命令行天气应用用于查询用户当前所在城市的天气,发布到 npm 上去。
npm install -g weather-peacechierdo
weather