1. ホーム
  2. javascript

[解決済み] webpack で require パスを解決する

2022-04-23 20:58:29

質問

webpackでモジュールのパスをどのように解決するか、まだ迷っています。今、私は書いています。

myfile = require('../../mydir/myfile.js') 

と書きたいところですが

myfile = require('mydir/myfile.js') 

と思っていたら resolve.alias を使用した類似の例を見るので、役に立つかもしれません。 { xyz: "/some/dir" } をエイリアスとして使用することができます。 require("xyz/file.js") .

しかし、エイリアスを { mydir: '/absolute/path/mydir' } , require('mydir/myfile.js') は動作しません。

何度もドキュメントを読みましたが、何か足りない気がして、馬鹿みたいです。 という相対的な要求をすべて書かないようにするには、どうしたらいいのでしょうか? ../../ 等を教えてください。

解決方法は?

Webpack >2.0

参照 wtkの回答 .

Webpack 1.0

もっと簡単な方法は、resolve.root を使うことです。

http://webpack.github.io/docs/configuration.html#resolve-root

resolve.root

モジュールを格納するディレクトリ(絶対パス)。ディレクトリの配列でもかまいません。この設定は、個々のディレクトリを検索パスに追加するために使用されるべきです。

あなたの場合

webpackの設定

var path = require('path');

// ...

  resolve: {
    root: path.resolve('./mydir'),
    extensions: ['', '.js']
  }

消費型モジュール

require('myfile')

または

require('myfile.js')

も参照してください。 http://webpack.github.io/docs/configuration.html#resolve-modulesdirectories