2013-12-02 2 views
1

Можно ли вручную создать каталог внутри node_module и разместить там некоторые модули?
Например, я, возможно, хотите создать каталог с именем models внутри node_modules и разместить свои модели там, так что я могу сделатьМожно ли вручную создать каталог внутри node_module?

var Person = require("models/person"); 

Я знаю, что он работает нормально, но это считается плохой практикой, если я делаю это?

+0

нет никаких оснований, чтобы не сделать человеку правильный модуль НПМ? Мне не нужно жить в главном реестре npmjs - вы можете установить из git (включая частный github repo) –

+0

@AndreySidorov, это звучит неплохо. Хотя я все еще хочу узнать ответ на свой первоначальный вопрос (мне просто интересно). –

ответ

4

Хотя, конечно, вы можете поместить свой код в любом месте вы хотите в вашем проекте, вот несколько причин, почему я не поставить код приложения в этой папке:

  1. исключить эту папку из источника Git (как содержимое может быть воссоздано)
  2. Я рассматриваю папку node_modules как ссылки третьих сторон, доступные для чтения, которые находятся за пределами моего контроля и получены в другом месте, и что-то, что я могу легко воссоздать, если предположить, что репозиторий NPM доступен на время.
  3. Я бы предпочел иметь папку верхнего уровня с именем models, как в вашем примере, вместо того, чтобы быть похороненным среди кода, который я не писал.
  4. Папка models не конфликтует ни с чем другим в папке верхнего уровня.

Единственное исключение - это общие частные пакеты. Но поскольку они являются общими, я бы не стал рассматривать их как код, который я бы редактировал как часть приложения. И они будут установлены как часть процесса НПМ.

В качестве примера проект я работаю прямо сейчас структурирована следующим образом:

+ public 
    - JavaScript 
    - styles 
+ models 
+ views 
+ routes 
+ services 
+ node_modules 
+0

Очень хороший ответ. Хотя, интересно, как вы включаете свои модели. Я имею в виду, вы используете абсолютные пути? –

+1

'require ('./ models/myfile.js');' –

+0

@Ako - Я просто написал короткое сообщение в блоге, используя код из проекта, над которым я работал, объясняя больше: http://www.wiredprairie.us /blog/index.php/archives/1974 – WiredPrairie

0

Хотя субъективный ответ, я бы не счел это плохой практикой. В самом деле, я обычно разделяю фрагменты кода на модули таким образом, что я не хочу на npm, и на самом деле не стоит надевать частное репо на github. Однако полезно использовать их, как если бы они были «опубликованными модулями».

Смежные вопросы