Модули PostCSS загружаются из неправильного каталога

Я пытаюсь заставить PostCSS CLI работать на Windows, чтобы использовать с PHPStorm. У меня это работает через параметры командной строки, но я хочу использовать его с файлом конфигурации javascript.

Вот команды, которые я использовал для установки PostCSS через NPM:

# NPM is installed at PostCSS\node\npm. Commands are run in the PostCSS dir.

"node\npm" install --global postcss-cli # PostCSS\node\node_modules\postcss-cli\
"node\npm" install --global lost        # PostCSS\node\node_modules\lost\
# and a few other modules...

Итак, у меня есть около 6 модулей в каталоге node/node_modules.

У меня есть этот пакетный файл (разбит на несколько строк для вашего удобства просмотра). Это в папке PostCSS, только для тестирования:

"node\postcss" -u postcss-normalize
               -u postcss-cssnext 
               -u postcss-import
               -u lost
               -o output.css
               source.css

Этот пакетный файл работает, и все плагины тоже работают.

Моя проблема:

Я хочу использовать postcss.config.js вместо параметров командной строки, чтобы я мог легко настроить плагины и сделать их еще более переносимыми. У меня есть десятки отдельных проектов, для которых я буду использовать одинаковые настройки в разных каталогах и компьютерах. Поэтому для этого у меня есть новый пакетный файл с именем "run-from-config.bat" со следующим содержимым:

"node\postcss" -c "postcss.config.js"
               -o output-configured.css
               source.css

Этот новый пакетный файл находится в той же папке, что и версия командной строки, вместе с новым файлом postcss.config.js:

module.exports = {
  plugins: [
    require('postcss-normalize')({
        "browserslist": "last 2 versions" // I intend to add more options...
    }),
    require('postcss-cssnext')({}),
    require('postcss-import')({}),
    require('lost')({})
  ]
}

Это следует инструкциям на странице PostCSS-CLI в разделе "Содержимое": https://github.com/postcss/postcss-cli

Но это дает мне ошибку и, кажется, загружает модули из неправильного места:

    Processing source.css
    { Error: Cannot find module 'postcss-normalize'
        at Function.Module._resolveFilename (module.js:469:15)
        at Function.Module._load (module.js:417:25)
        at Module.require (module.js:497:17)
        at require (internal/module.js:20:19)
        at Object.<anonymous> (G:\Dropbox\Web Development\PostCSS\postcss.config.js:3:5)
        at Module._compile (module.js:570:32)
        at requireFromString (G:\Dropbox\Web Development\PostCSS\node\node_modules\postcss-cli\node_modules\require-from-string\index.js:27:4)
        at G:\Dropbox\Web Development\PostCSS\node\node_modules\postcss-cli\node_modules\cosmiconfig\lib\loadJs.js:11:15 code: 'MODULE_NOT_FOUND' }

Таким образом, кажется, что он не может найти модуль при использовании этого файла конфигурации javascript. Но это может при загрузке плагинов через параметр командной строки -u, Я просто не знаю, как изменить каталог модуля.

Я попытался использовать некоторые другие параметры, чтобы изменить каталог, в том числе -b а также -d, но ничего не работает. И я просто не понимаю PostCSS (или лежащее в основе программное обеспечение javascript) достаточно, чтобы решить проблему самостоятельно.

0 ответов

Другие вопросы по тегам