Модули 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) достаточно, чтобы решить проблему самостоятельно.