Подтвердить что ты не робот

Могу ли я заставить node.js требовать чувствительность к регистру?

Так как у моего Mac нет зависящей от регистрационной системы файловой системы, опечатки, связанные с случаем, не будут пойманы при локальном тестировании, однако они не работают на сервере сборки, на котором работает Linux.

Например: require('./mymodule') найдет ./myModule.js при работе на Lion, но не в Linux.

Так как я хотел бы, чтобы тесты не выполнялись локально, чтобы не нарушать сборку на сервере, я ищу способ сделать node.js более строгим, поскольку он выдает ошибку если это имя файла не является точным (т.е. имеет разницу в корпусе).

Кто-нибудь знает, как это сделать?

ИЗМЕНИТЬ

Поскольку для этой проблемы не было хорошего решения, я создал valiquire.

Этот инструмент проверяет все требования, найденные во всем проекте nodejs, также обеспечивая правильность корпуса.

4b9b3361

Ответ 1

Поскольку ваша файловая система hfs не чувствительна к регистру, поиск для "fileName" будет соответствовать "filename" на уровне OS lib, и поэтому node.js будет вести себя одинаково. Поэтому по определению нет обходного пути.

Но по цене переформатирования вы можете изменить формат fs, чтобы использовать регистр hfs.

http://www.coriolis-systems.com/iPartition.php упоминается в этом потоке: https://superuser.com/questions/380330/mac-convert-from-case-sensitive-to-case-insensitive-file-system

Ответ 2

Если вы используете webpack, посмотрите https://github.com/Urthen/case-sensitive-paths-webpack-plugin

Просто установите его для наших сборщиков dev. Это спасло бы нас от того, что я буду делать снимок несколько раз... Который, если вы в этом вопросе, уже, вероятно, происходит 😉

Установка

npm install --save-dev case-sensitive-paths-webpack-plugin

Использование

const CaseSensitivePathsPlugin = require('case-sensitive-paths-webpack-plugin');

const webpackConfig = {
    plugins: [
        new CaseSensitivePathsPlugin(),
        // other plugins ...
    ],
    // other webpack config ...
};

Ответ 3

Без изменения раздела файловой системы ОС вы можете просто использовать пакет, который автоматически обнаруживает тезисы, я использую webpack 2. Он дает предупреждение, когда файл разрешен, но случай отличается. Это не помешает компиляции на OSX/Windows, но у вас будет подсказка. Плюс с пакетом является отличным активом в js dev сегодня

взломанный и не рекомендованный способ заключается в том, чтобы прокладки требовать и принуждать определенный случай или использовать возможные возможные случаи, но это может быть очень уродливым и создать плохую производительность, не говоря о потенциальной опасности для загрузки неправильного файла, если есть файл с переименованием и старый файл не очищается

Ответ 4

Всегда используйте строчные буквы для имен файлов, тогда вам не обязательно будет поддерживать файловую систему или нет.

Напоминает мне, когда люди использовали пробелы в URL-адресах.