我试图让 PostCSS CLI 在 Windows 上工作,与 PHPStorm 一起使用。我已经通过命令行选项让它工作,但我想将它与 javascript 配置文件一起使用。
以下是我用来通过 NPM 安装 PostCSS 的命令:
# 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...
所以我现在在 node/node_modules 目录中有大约 6 个模块。
我有这个批处理文件(为了您的观看乐趣,分成多行)。这是在 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
and -d
,但似乎没有任何效果。而且我只是不了解 PostCSS(或底层的 javascript 软件),无法自行调试问题。