npm-gulp-webpack

7648 ワード

テーマ1:どのようにしてnodeアプリケーションをグローバルにインストールしますか?

npm install -g XXX//        node  

タイトル2:package.jsonは何の役に立つの?

  • 各プロジェクトのルートディレクトリの下には、一般的にpackageがあります.jsonファイルは、このプロジェクトに必要なさまざまなモジュールと、プロジェクトの構成情報(名前、バージョン、ライセンスなどのメタデータなど)を定義します.npm installコマンドは、このプロファイルに基づいて、必要なモジュール、すなわちプロジェクトを構成するために必要な実行環境と開発環境を自動的にダウンロードします.
  • scriptsフィールドscriptsは、スクリプトコマンドを実行するnpmコマンドラインの略語を指定します.たとえば、startがnpm run startを実行するときに実行するコマンドを指定します.
  • dependenciesフィールド、devDependenciesフィールドdependenciesフィールドプロジェクト実行に依存するモジュールを指定し、devDependenciesプロジェクト開発に必要なモジュールを指定します.
  • binフィールドbinエントリは、各内部コマンドに対応する実行可能ファイルの場所を指定するために使用される.
  • mainフィールドmainフィールドはロードされたエントリファイルを指定し、require('moduleName')はこのファイルをロードします.このフィールドのデフォルト値はモジュールルートディレクトリの下のindexです.js.
  • configフィールドconfigフィールドコマンドラインの環境変数を追加します.
  • versionフィールドは、プロジェクトのバージョンが良いことを示します.デフォルトは1.0.0
  • です.
  • authorは、プロジェクトの著者
  • を表す.
    {
        "name": "Hello World",
        "version": "0.0.1",
        "author": "  ",
        "description": "   node.js  ",
        "keywords":["node.js","javascript"],
        "repository": {
            "type": "git",
            "url": "https://path/to/url"
        },
        "license":"MIT",
        "engines": {"node": "0.10.x"},
        "bugs":{"url":"http://path/to/bug","email":"[email protected]"},
        "contributors":[{"name":"  ","email":"[email protected]"}],
        "scripts": {
            "start": "node index.js"
        },
        "dependencies": {
            "express": "latest",
            "mongoose": "~3.8.3",
            "handlebars-runtime": "~1.0.12",
            "express3-handlebars": "~0.5.0",
            "MD5": "~1.2.0"
        },
        "devDependencies": {
            "bower": "~1.2.8",
            "grunt": "~0.4.1",
            "grunt-contrib-concat": "~0.3.0",
            "grunt-contrib-jshint": "~0.7.2",
            "grunt-contrib-uglify": "~0.2.7",
            "grunt-contrib-clean": "~0.5.0",
            "browserify": "2.36.1",
            "grunt-browserify": "~1.3.0",
        }
    }
    ```
    
    

    タイトル3:npm install--save appとnpm install--save-dev appの違いは何ですか?

  • npm install--save appはプロジェクトの実行時の依存を表し、他のユーザーはこのアプリケーションをインストールするときに一緒にインストールします.
  • npm install--save-devは、プロジェクト開発時以降、他のユーザーがこのアプリケーションをインストールするときに一緒にインストールしないことを示します.

  • タイトル4:node_modulesの検索パスはどうですか?

  • node_module検索依存ルートは、ローカルディレクトリの下から検索し、存在しない場合はシステムルートディレクトリまで上位ディレクトリに順次クエリーします.Nodeグローバルインストールはシステムルートディレクトリの下にあるので、グローバルインストール後はすべてのディレクトリで使用できます.

  • テーマ5:npm 3はnpm 2と比較してどのような改善がありますか?yarnはnpmと比較してどんな優位性がありますか?(テーマを選ぶ)

  • npm 3はnpm 2に比べて最も重要なのは依存管理の変更である.
  • npm 2の方式は、積層ネストされている.依存をインストールするときは簡単で直接、パッケージ依存のツリー構造に従ってローカルディレクトリ構造をダウンロードして埋め込みます.npm設計の初心は,パケット依存のバージョンが複雑な関係にあることを考慮したものであり,同一のパケットは依存の関係により複数のバージョンが出現し,単純に構造を埋め込むことで,インストールや削除にかかわらず統一的な動作と構造が保証される.そこで欠陥が明らかになり,深すぎるディレクトリツリー構造は効率に深刻な影響を及ぼし,Windowsではシステムパスの制限の長さを超える可能性がある.また、Windowsでは削除node_modulesディレクトリの経験は、長い待ち時間を経験した可能性があります.
  • npm 3の方式は最新の依存を同じ層に置くことである.npm 2の問題に対して、npm 3は点アルゴリズムを加えて、率直な解釈は:npm installの時packageに従います.jsonで依存する順序を順次解析し、新しいパケットに遭遇したらそれを第1レベルディレクトリに配置し、その後、1レベルディレクトリにすでに存在するパケットに遭遇した場合、まずバージョンを判断し、バージョンが同じであれば無視し、そうでなければnpm 2のように依存パケットディレクトリの下に
  • に順次掛けられる.
  • yarnはnpmと比較してどんな優位性があります
  • より速いyarnはダウンロードしたパケットごとにキャッシュされるので、再利用時にダウンロードを繰り返す必要はありません.同時にパラレルダウンロードを利用してリソースの利用率を最大化し、一度のインストール速度を速めます.
  • は、コードを実行する前に、yarnがアルゴリズムによって各インストールパッケージの完全性を検証するより安全です.
  • より信頼性の高い詳細と見解のロックファイルフォーマットと明確なインストールアルゴリズムを使用して、yarnは異なるシステムの下で差異のない仕事
  • を保証することができる.

    テーマ6:webpackとは何ですか。他の同型ツールと比べてどんなメリットがありますか?

  • webpackは、現代のJavaScriptアプリケーションのモジュール・パッケージです.Webpackがアプリケーションを処理すると、アプリケーションに必要な各モジュールを含む依存関係図(dependency graph)が再帰的に構築され、これらのモジュールはすべて1つ以上のbundleにパッケージされます.
  • はwebpackですべてのモジュールを開きます.あなたのjsコードも含めて、cssとfontsと画像なども含めて、適切なloadersを通じて、彼らはすべてモジュールとして処理することができます.
  • Webpack自体は原音を処理できるjsモジュールを作っているが,loadersは様々なタイプのリソースをjsモジュールに変換することができる.これにより、どのリソースもWebpackが処理できるモジュールになります.
  • 豊富なプラグインシステム.ほとんどの機能はこのプラグインシステムに基づいて実行され、オープンソースのwebpackプラグインを開発して使用して、さまざまなニーズを満たすことができます.
  • はrequirejsと比較して、requirejsの機能はすべてあり、AMD、ES 6と互換性があります.Webpackはdefineを書く必要はありません.自分でexportsを書いた後、requireでいいです.


  • タイトル7:npm scriptって何ですか?使用方法

  • npm scriptはpackageで許可する.jsonではscriptフィールドを使用してスクリプトコマンドを定義します.npm scriptを設定することで、フロントエンドワークフローを容易に実現できます.例えば、コマンドnpm run startを入力とindexが実行する.jsファイル.コマンドnpm run beginを入力すると、コマンドラインに'there it goes'
  • が出力されます.
    "scripts": {
        "begin": "echo there it goes!",
        "start": "node index.js",
    
    }
    

    タイトル8:webpackを使用して入門-タスク15でモジュール化して使用するrequriejsを置き換える


    プレビューコード

    テーマ9:gulpとは何ですか。gulpによるピクチャ圧縮、CSS圧縮マージ、JS圧縮マージ

  • gulpはNodejsベースの自動タスク実行器で、javascript/coffee/sass/less/html/image/cssなどのファイルのテスト、チェック、マージ、圧縮、フォーマット、ブラウザの自動リフレッシュ、配置ファイルの生成を自動化し、変更後に指定されたステップ
  • をリスニングすることができます.
    var gulp = require('gulp')
    var clean = require('gulp-clean')//     
    var cssnano = require('gulp-cssnano')//css  
    var concat = require('gulp-concat')//    
    var uglify = require('gulp-uglify')//js  
    var imagemin = require('gulp-imagemin')//    
    var babel = require('gulp-babel')
    var notify = require('gulp-notify')
    
    gulp.task('css', function () {
      gulp.src('./dist/app.css')
      .pipe(cssnano())
      .pipe(gulp.dest('./gulp/css'))
      .pipe(notify('CSS     !!!!'))
    })
    
    gulp.task('js', function () {
      gulp.src(['./dist/app.merge.js'])
        .pipe(babel({
          presets: ['es2015']
        }))
        .pipe(uglify())
        .pipe(gulp.dest('./gulp/js'))
        .pipe(notify('JS     !!!!'))
    })
    
    gulp.task('img', function () {
      gulp.src('./src/image/*')
        .pipe(imagemin())
        .pipe(gulp.dest('./gulp/image'))
        .pipe(notify('IMG     !!!!'))
    })
    
    gulp.task('img1', function () {
      gulp.src('./src/image/history/*')
        .pipe(imagemin())
        .pipe(gulp.dest('./gulp/image/history'))
        .pipe(notify('IMG1     !!!!'))
    })
    
    gulp.task('img2', function () {
      gulp.src('./src/image/more/*')
        .pipe(imagemin())
        .pipe(gulp.dest('./gulp/image/more'))
        .pipe(notify('IMG2     !!!!'))
    })
    
    gulp.task('img3', function () {
      gulp.src('./src/image/watches/*')
        .pipe(imagemin())
        .pipe(gulp.dest('./gulp/image/watches'))
        .pipe(notify('IMG3     !!!!'))
    })
    
    gulp.task('clean', function () {
      gulp.src(['./gulp/css/*.css', './gulp/image/*','./gulp/js/*.js'],{read: false})
      .pipe(clean())
    })
    gulp.task('build', ['clean'],function() {
      gulp.start('css','js','img','img1','img2','img3')
    })
    
    

    テーマ10:nodeコマンドライン天気アプリケーションを開発し、ユーザーの現在の都市の天気を検索し、npmに公開する。使用は以下の方法でインストールできます(api.jirengu.comで提供されているクエリー天気インタフェースを使用できます)(テーマを選択)

    $ npm install weather-search -g
    weather //      
    weather beijing //  beijing  ,