2016-04-08 4 views
0

Как я могу установить модули postcss локально и использовать их через postcss-cli, установленный по всему миру?postcss-cli: используя локально и глобально установленные модули postcss

Например:

postcss -u autoprefixer -o style.css index.css 

Эта команда работает, если у меня есть postcss-cli и autoprefixer установленных по всему миру, или если оба установлены локально. Но это не работает, если у меня есть postcss-cli, установленный по всему миру, и autoprefixer локально.

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

Это ошибка я получаю, если postcss-cli установлен в глобальном масштабе, и autoprefixer локально:

> postcss -u autoprefixer -o style.css index.css -w 

module.js:327 
    throw err; 
    ^

Error: Cannot find module 'autoprefixer' 
    at Function.Module._resolveFilename (module.js:325:15) 
    at Function.Module._load (module.js:276:25) 
    at Module.require (module.js:353:17) 
    at require (internal/module.js:12:17) 
    at /home/user/.nvm/versions/node/v4.4.2/lib/node_modules/postcss-cli/index.js:104:14 
    at Array.map (native) 
    at Object.<anonymous> (/home/user/.nvm/versions/node/v4.4.2/lib/node_modules/postcss-cli/index.js:97:24) 
    at Module._compile (module.js:409:26) 
    at Object.Module._extensions..js (module.js:416:10) 
    at Module.load (module.js:343:32) 

npm ERR! Linux 3.19.0-58-generic 
npm ERR! argv "/home/user/.nvm/versions/node/v4.4.2/bin/node" "/home/user/.nvm/versions/node/v4.4.2/bin/npm" "run" "css" 
npm ERR! node v4.4.2 
npm ERR! npm v2.15.0 
npm ERR! code ELIFECYCLE 
npm ERR! [email protected] css: `postcss -u autoprefixer -o style.css index.css -w` 
npm ERR! Exit status 1 
npm ERR! 
npm ERR! Failed at the [email protected] css script 'postcss -u autoprefixer -o style.css index.css -w'. 
npm ERR! This is most likely a problem with the Node.js package, 
npm ERR! not with npm itself. 
npm ERR! Tell the author that this fails on your system: 
npm ERR!  postcss -u autoprefixer -o style.css index.css -w 
npm ERR! You can get information on how to open an issue for this project with: 
npm ERR!  npm bugs Node.js 
npm ERR! Or if that isn't available, you can get their info via: 
npm ERR! 
npm ERR!  npm owner ls Node.js 
npm ERR! There is likely additional logging output above. 
+0

Я бы установить все на месте. Это тебя волнует ? – topheman

+0

@topheman Удобно, чтобы кли был установлен один раз в одном месте для каждого проекта. –

+0

Если бы я столкнулся с такой же ошибкой, я бы установил все на локальном компьютере, у вас есть некоторые сценарии npm, определенные как './node_modules/.bin/postcss -u autoprefixer -o style.css index.css' (хорошо, что коллабораторы не нужно ** любой ** глобальной зависимости при посадке на проект), но я также понимаю, что вы хотите, чтобы кли установил только один раз. Это похоже на ошибку, которую вы должны отправить в репозиторий 'postcss-cli'. – topheman

ответ

1

Если вы используете postcss-кли вы можете создать конфигурационный файл, как так:

{ 
    "use": [ 
     "postcss-import", 
     "postcss-cssnext", 
     "lost", 
     "rucksack-css", 
     "postcss-autoreset", 
     "postcss-font-magician" 
    ], 
    "input": "src/app.css", 
    "output": "css/main.css", 
    "local-plugins": true, 
    "autoprefixer": { 
     "browsers": "last 2 versions" 
    } 
} 

Обратите внимание на строку "local-plugins": true,. Из документов:

Посмотрите плагины, начиная с node_modules, расположенных в текущем рабочем каталоге. Без этого параметра postcss-cli будет искать плагины в node_modules, в которых он установлен - особенно если он установлен глобально, он будет искать только плагины, которые установлены на глобальном уровне.

Если вы не хотите использовать файл конфигурации, вы можете использовать опцию --local-plugins.

Рекомендуется устанавливать локально. Вы всегда можете создать сценарии НПМ в package.json, чтобы сделать его проще запустить postcss-cli так:

"scripts": { 
    "test": "echo \"Error: no test specified\" && exit 1", 
    "build": "node_modules/postcss-cli/bin/postcss -c config.json", 
    "watch": "node_modules/postcss-cli/bin/postcss -c config.json -w", 
    "minify": "node_modules/postcss-cli/bin/postcss -c config-minify.json" 
}, 

Теперь вы просто использовать:

npm run build 
Смежные вопросы