nodejsいくつかのファイルパスとパスモジュール

9847 ワード

前言
最近weexのwebpackの配置を書いていますが、先ほどピットを踏んだばかりです.weekpackではpathモジュールが使われます.このモジュールについては、抜き出してみたいです.これはまだ多く使われていますので、好きな友達が好きなものを注文してもいいですか?それとも私のgithubに行ってもいいです.ありがとうございます.手を上げて教えてください.間違ったところを書いて、コメントしてください.ありがとうございます.
nodeのパス分類
nodeの中の経路は大体5種類に分けられています.dirname、filename、process.cwd()/,その中の最初の三つは全部絶対パスです.
まず簡単な例を見てみましょう.
もし、ファイルのディレクトリ構造があったら、次のようにします.
editor/
  - dist/
  - src/
      - task.js
それから、task.jsファイルにコードを書き込みます.
const path = require('path');
console.log(__dirname);
console.log(__filename);
console.log(process.cwd());
console.log(path.resolve('./'));
editorディレクトリでnode src/task.jsを実行しています.結果は以下の通りです.
/Users/laihuamin/Documents/richEditor/editor/src
/Users/laihuamin/Documents/richEditor/editor/src/task.js
/Users/laihuamin/Documents/richEditor/editor
/Users/laihuamin/Documents/richEditor/editor
その後、srcディレクトリでこのファイルを実行できるようになりました.node task.js、運転結果は以下の通りです.
/Users/laihuamin/Documents/richEditor/editor/src
/Users/laihuamin/Documents/richEditor/editor/src/task.js
/Users/laihuamin/Documents/richEditor/editor/src
/Users/laihuamin/Documents/richEditor/editor/src
二つの出力結果を比較して、私達はいくつかの点を要約することができます.
1.__dirname:このファイルがあるフォルダの位置を返します.filename:あなたがコマンドを実行するのはファイルの位置を表しています.あなたがどんなコマンドを実行してもファイル3.process.cwd():あなたがnodeコマンドのあるフォルダの位置を実行します.
パス
前の三つの絶対パスを話したいですが、パスというモジュールについて話をしたいです.このnodeモジュールは多くのところで応用があります.だから、私達にとって彼を掌握するのは今後の発展にとってもっと有利です.webpackの配置ファイルを見るたびに、このアプリが何をするかを調べてみなくてもいいです.私達の効率に影響します.
nodeJS/path
上のサイトには詳細なアプリがありますが、ここではマスターしなくてもいいです.私はいくつかの経験があります.webpackなどの工程構成で使うと思います.
path.normalize
この方法は規範化されていない経路を規範化することです.例えば、次の例を見ます.
const path = require('path');
console.log(path.normalize('/foo/bar//baz/asdf/quux/..'));
出力結果:
/foo/bar/baz/asdf
path.join
const path = require('path');
console.log(path.join('src', 'task.js'));

const path = require('path');
console.log(path.join('dist', 'task.js'));

const path = require('path');
console.log(path.join(''));
この二つの出力結果は:
src/task.js
dist/task.js
.
彼の役割はすぐに明らかになります.彼はいくつかの規則を持っています.1.入ってきたパラメータは文字列のパスセグメントです.1つであってもいいし、複数であってもいいです.
2.戻ってきたのはスティッチングの良いパスですが、プラットフォームによっては彼は経路を違った規範化しています.例えば、Unixシステムは「/Windowsシステムは」です.
3.返されたパス文字列の長さが0なら、彼は'を返します.'は現在のフォルダを表します.
4.入力されたパラメータの中に文字列ではないものがあれば、直接にエラーが発生します.
path.parse
まず例を見てみます.srcディレクトリのtask.jsに書き込みます.
const path = require('path');
console.log(path.parse('/Users/laihuamin/Documents/richEditor/editor'));
そしてnode src/task.jsを実行した後、出力の結果は以下の通りです.
{ 
  root: '/',
  dir: '/Users/laihuamin/Documents/richEditor',
  base: 'editor',
  ext: '',
  name: 'editor' 
}
彼が戻ってきたのは対象です.このようないくつかの名詞を紹介します.
path.parse
この表は非常にイメージを示すべきですが、これらの名詞を説明します.1.root:代表ルートディレクトリ2.dir:代表ファイルのあるフォルダ3.base:代表ファイルの4.name:代表ファイル名5.ext:代表ファイルの拡張子名
次の規則に基づいて、次の例を見てみます.自分で頭を働かせたほうがいいです.
const path = require('path');
console.log(path.parse('/Users/laihuamin/Documents/richEditor/editor/src/task.js'));
出力の結果:
{ 
  root: '/',
  dir: '/Users/laihuamin/Documents/richEditor/editor/src',
  base: 'task.js',
  ext: '.js',
  name: 'task' 
}
正しいですか?
path.basename
前のクッションがあります.このインターフェースでも推測できます....次の例を見ます.
const path = require('path');
console.log(path.basename('/Users/laihuamin/Documents/richEditor/editor/src/task.js'));
出力の結果は:
task.js
やはり簡単に紹介します.二つのパラメータを受け取ります.一つはパスです.もう一つはextです.
const path = require('path')
console.log(path.basename('/Users/laihuamin/Documents/richEditor/editor/src/task.js', '.js'));
出力結果:
task
path.dirname
このインターフェースはbasenameよりもっと簡単です.私は多く言いません.例を見て、結果を見ます.
const path = require('path');
console.log(path.basename('/Users/laihuamin/Documents/richEditor/editor/src/task.js'));
出力の結果:
/Users/laihuamin/Documents/richEditor/editor/src
すみません、受信したパラメータは文字列タイプです.
path.extname
これは展示ファイルの拡張子です.いくつかのことに注意しなければなりません.
const path = require('path');
path.extname('index.html');
path.extname('index.coffee.md');
path.extname('index.');
path.extname('index');
path.extname('.index');
出力の結果は:
.html
.md
.
''
''
自分でこのいくつかの情況に注意します.
path.reolve
私たちはこのいくつかの例を通して、まず詳しく説明します.
const path = require('path');
console.log(path.resolve('/foo/bar', '/bar/faa', '..', 'a/../c'));
出力の結果は
/bar/c
彼はcdの操作の山に相当します.一歩ずつ見ます.
cd /foo/bar/    //     ,       /foo/bar/
cd /bar/faa     //     ,         ,   /   ,       ,      /bar/faa
cd ..       //   , faa   ,       /bar
cd a/../c   //   ,  a,     ,   c,     /bar/c
しかし、この操作はcdとは違っています.このパスは必ずしも存在しなくてもいいです.最後はファイルでもいいです.
path.relative
これはfromからtoまでの相対パスです.どういう意味ですか?私達は次の例を見れば分かります.
const path = require('path');
console.log(path.relative('src/bar/baz', 'src/aaa/bbb'));
出力の結果は:
../../aaa/bbb
締め括りをつける
これらの比較的に実用的な方法は、みんなに共有して、自分はやはり素直にweektoolのwebpackの配置ファイルを見に行きました.好きな友達は好きなものを注文したり、私のgithubに行ってstarを注文してもいいです.ありがとうございます.