Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/gohugoio/hugo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2020-09-09 23:31:43 +0300
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2020-09-13 21:55:29 +0300
commit85ba9bfffba9bfd0b095cb766f72700d4c211e31 (patch)
tree43b66efaafe4cb804234ca7273873ab949305799 /common
parent9df60b62f9c4e36a269f0c6e9a69bee9dc691031 (diff)
Add "hugo mod npm pack"
This commit also introduces a convention where these common JS config files, including `package.hugo.json`, gets mounted into: ``` assets/_jsconfig ´`` These files mapped to their real filename will be added to the environment when running PostCSS, Babel etc., so you can do `process.env.HUGO_FILE_TAILWIND_CONFIG_JS` to resolve the real filename. But do note that `assets` is a composite/union filesystem, so if your config file is not meant to be overridden, name them something specific. This commit also adds adds `workDir/node_modules` to `NODE_PATH` and `HUGO_WORKDIR` to the env when running the JS tools above. Fixes #7644 Fixes #7656 Fixes #7675
Diffstat (limited to 'common')
-rw-r--r--common/hugo/hugo.go24
1 files changed, 23 insertions, 1 deletions
diff --git a/common/hugo/hugo.go b/common/hugo/hugo.go
index 6e07f69c3..ac75e6bca 100644
--- a/common/hugo/hugo.go
+++ b/common/hugo/hugo.go
@@ -17,8 +17,15 @@ import (
"fmt"
"html/template"
"os"
+ "path/filepath"
+ "strings"
+
+ "github.com/gohugoio/hugo/hugofs/files"
+
+ "github.com/spf13/afero"
"github.com/gohugoio/hugo/config"
+ "github.com/gohugoio/hugo/hugofs"
)
const (
@@ -73,8 +80,23 @@ func NewInfo(environment string) Info {
}
}
-func GetExecEnviron(cfg config.Provider) []string {
+func GetExecEnviron(workDir string, cfg config.Provider, fs afero.Fs) []string {
env := os.Environ()
+ nodepath := filepath.Join(workDir, "node_modules")
+ if np := os.Getenv("NODE_PATH"); np != "" {
+ nodepath = workDir + string(os.PathListSeparator) + np
+ }
+ config.SetEnvVars(&env, "NODE_PATH", nodepath)
+ config.SetEnvVars(&env, "HUGO_WORKDIR", workDir)
config.SetEnvVars(&env, "HUGO_ENVIRONMENT", cfg.GetString("environment"))
+ fis, err := afero.ReadDir(fs, files.FolderJSConfig)
+ if err == nil {
+ for _, fi := range fis {
+ key := fmt.Sprintf("HUGO_FILE_%s", strings.ReplaceAll(strings.ToUpper(fi.Name()), ".", "_"))
+ value := fi.(hugofs.FileMetaInfo).Meta().Filename()
+ config.SetEnvVars(&env, key, value)
+ }
+ }
+
return env
}