高級5

題目1: 如何全局安裝一個(gè) node 應(yīng)用?

npm install -g xxx表示全局安裝一個(gè)node包。

題目2:package.json 有什么作用?

相當(dāng)于本地包(項(xiàng)目)的一個(gè)文檔說明。
其中最重要的幾個(gè)屬性分別是
main // 規(guī)定文件的入口。
dependencies ...// 上傳時(shí),告訴npm,這個(gè)文件使用過程所用到的包,別人下載你所創(chuàng)建的包時(shí),npm就會自動安裝所依賴的包。
dev dependencies ..// 開發(fā)所依賴的包,別人使用時(shí)不會下載這個(gè)包。
script // 可以簡單的制定前端工作流,便于使用,而且兼容性好。

npm install ,當(dāng)package.json中的dependecies 或這 dev dependencies 改變時(shí),使用這個(gè)命令就會自動下載所依賴的包。

{
        "name": "my_package",     //你的項(xiàng)目名稱,全部小寫,不能有空格,一個(gè)單詞,允許-和_. 如果是要發(fā)布自己的node插件,一般用github上面項(xiàng)目名稱。 下次有機(jī)會說明 npm 上面的發(fā)布流程。

        "version": "1.0.0",  //你的項(xiàng)目版本號,最好遵守 GNU 版本號管理。 

        "main": "index.js", //目錄中啟動文件名稱。或者稱之為入口文件,一般都是 index.js

        "scripts": {

            "test": "echo \"Error: no test specified\" && exit 1"    //一般默認(rèn)一個(gè)test的空文件夾、用作寫測試代碼。

        },

        "keywords": [],  //項(xiàng)目的關(guān)鍵詞。 一般用不到,發(fā)布npm才用得到。

        "author": "ag_dubs", //作者名稱

        "license": "ISC", //協(xié)議 

        "repository": {  // 用來存放到 版本管理遠(yuǎn)程服務(wù)。 發(fā)布npm才有用

            "type": "git",

            "url": "https://github.com/ashleygwilliams/my_package.git"

        },

        "dependencies": {   // 正式使用時(shí),依賴的包

            "my_dep": "^1.0.0"

        },

        "devDependencies" : {//開發(fā)或者測試時(shí),依賴的包。

            "my_test_framework": "^3.1.0"

        }

        "bugs": {  //同repository

            "url": "https://github.com/ashleygwilliams/my_package/issues"

        },

        "homepage": "https://github.com/ashleygwilliams/my_package"  //項(xiàng)目主頁、 發(fā)布才有用

    }

題目3: npm install --save app 與 npm install --save-dev app有什么區(qū)別?

  • npm install --save app 和npm install --save-dev app 兩個(gè)都是當(dāng)前文件夾安裝app包,并且都是這個(gè)包所依賴的其他包, 但是,--save 執(zhí)行時(shí),會自動更新 packge.json中的dependencies 。而 --save-dev 會更新 dev dependencies, 開發(fā)依賴包。當(dāng)我們發(fā)布包成功,別人下載時(shí),會自動下載 dependencies。而開發(fā)依賴的包,不會被用戶下載。

題目4: nodule_modules的查找路徑是怎樣的?

當(dāng)我們在 入口文件 require一個(gè)包時(shí),首先 會在當(dāng)前的nodeule-modules下查找,如果沒有這個(gè)文件或者沒有這個(gè)包,就向上級目錄查找,直到查詢到根目錄。

題目6:webpack是什么?和其他同類型工具比有什么優(yōu)勢?

webpack是一個(gè)模塊打包器。

  1. webpack的核心是 一切皆模塊的思想,所以,任何模塊,CSS,圖片,字體,都被webpack當(dāng)做模塊來處理,我們只需要在需要這些模塊的時(shí)候來require,這樣,開發(fā)的時(shí)候,邏輯就很清晰。開發(fā)人員不由自主的就可以讓文件分割的徹底,變成一個(gè)個(gè)的塊。只要配置好webpack,就可以實(shí)現(xiàn)按需要來加載這些塊。
  2. 獨(dú)有的loader機(jī)制,我們可以用loader來處理目前瀏覽器不兼容的less,ES6啊,然后,webpack自己來處理這些事情,把瀏覽器看不懂的變成看的懂的,開發(fā)人員只需要關(guān)注功能實(shí)現(xiàn)就可以了。

題目7:npm script是什么?如何使用?

npm script 是利用packge.json中 script 這個(gè)屬性,制定一個(gè)工作流。
比如 ''test'':''mkdir abc'',我們就可以直接使用npm test在當(dāng)前文件夾創(chuàng)建一個(gè) mkdir abc;
(但是除了 test和start,設(shè)置的其他命令均需要 用npm run xxx來啟用),對此,我們可以在命令行的使用上就可以簡化很多。不用來敲很多代碼,來執(zhí)行一個(gè)命令,而是敲少量的代碼,來執(zhí)行一系列的事情。

題目8: 使用 webpack 替換 入門-任務(wù)15中模塊化使用的 requriejs

github: https://github.com/sys521/task5

題目9:gulp是什么?使用 gulp 實(shí)現(xiàn)圖片壓縮、CSS 壓縮合并、JS 壓縮(合并)

var gulp= require('gulp')
var gulpconcat=require('gulp-concat')
var gulpimagemin=require('gulp-imagemin')
var gulpuglify= require('gulp-uglify')
var cleanCss=require('gulp-clean-css')

gulp.task('js',function(){                      //js合并,壓縮
    return gulp.src('./src/js/*.js')
        .pipe(gulpconcat('index.js'))
        .pipe(gulpuglify())
        .pipe(gulp.dest('./dist/js'))
})
gulp.task('imgs',function(){                   //圖片壓縮
    return gulp.src('./src/imgs/*')
        .pipe(gulpimagemin())
        .pipe(gulp.dest('./dist/imgs/'))
})

gulp.task('css',function(){
    return gulp.src('./src/css/*.css')        //css合并壓縮
        .pipe(gulpconcat('merge.css'))
        .pipe(cleanCss({compatibility:'ie8'}))
        .pipe(gulp.dest('./dist/css'))
})

gulp.task('build',['js','css','imgs'])

# 題目10:npm制作一個(gè)天氣預(yù)報(bào)的包

npm install npmweather -g
weather
weather 杭州

但是今天好像不行

![接口好像不穩(wěn)定](http://upload-images.jianshu.io/upload_images/6127894-7bb9cc86ca9fb392.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容