2016-07-17 4 views
2

Soweit ich gesehen habe, können npm Module require() ohne Pfad sein :Wie vermeidet man die Verwendung von require ("../../ Path/To/Module"), und nur require ("Module")

require("module") // --> npm module 

und lokale Module sind require() einen Pfad:

require("./module") // --> local module, in this directory 
require("../../path/to/module") // path to directory 

In react.js, Module ohne Pfad benötigt werden. See here zum Beispiel. Ich frage mich, wie sie das erreichen.

Antwort

3

Offenbar nutzt es rewrite-modules Babel Plugin mit module-map Modul (siehe gulpfile.js.)

Es gibt auch this Babel-Plugin, das Sie das gleiche Verhalten zu erreichen, verwenden können.

+1

Sie können auch Aliase mit Webpack verwenden, wenn Sie es verwenden. (was oft der Fall ist mit react + es6 + babel) [webpack.resolve.alias] (https://webpack.github.io/docs/configuration.html#resolve-alias) – Amida

1

Wenn Sie Webpack verwenden, können Sie path/to/modules in resolve.modulesDirectories Array hinzufügen und es funktioniert ähnlich zu erfordern von node_modules anstelle der Verwendung relativer Pfade.

resolve: { modulesDirectories: ['path/to/modules', 'node_modules'], },

und dann

var foo = require('foo'); // Instead of: // var foo = require('/path/to/modules/foo'); // or // var foo = require('../../foo');