resource/postcss: Try node_modules/postcss-cli/bin/postcss first
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Wed, 18 Jul 2018 08:00:50 +0000 (10:00 +0200)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Wed, 18 Jul 2018 08:00:50 +0000 (10:00 +0200)
Fixes #4952

resource/postcss/postcss.go

index 7dd27b2f9d6124e085339da6ccd93482f1012d1b..3b2b4175a16bee727877b1f243cf4d6596093268 100644 (file)
@@ -98,11 +98,21 @@ func (t *postcssTransformation) Key() resource.ResourceTransformationKey {
 // npm install -g autoprefixer
 func (t *postcssTransformation) Transform(ctx *resource.ResourceTransformationCtx) error {
 
-       const binary = "postcss"
+       const localPostCSSPath = "node_modules/postcss-cli/bin/"
+       const binaryName = "postcss"
+
+       // Try first in the project's node_modules.
+       csiBinPath := filepath.Join(t.rs.WorkingDir, localPostCSSPath, binaryName)
+
+       binary := csiBinPath
 
        if _, err := exec.LookPath(binary); err != nil {
-               // This may be on a CI server etc. Will fall back to pre-built assets.
-               return errors.FeatureNotAvailableErr
+               // Try PATH
+               binary = binaryName
+               if _, err := exec.LookPath(binary); err != nil {
+                       // This may be on a CI server etc. Will fall back to pre-built assets.
+                       return errors.FeatureNotAvailableErr
+               }
        }
 
        var configFile string