diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2020-11-04 18:13:37 +0300 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2020-11-04 21:21:43 +0300 |
commit | bf2837a314eaf70135791984a423b0b09f58741d (patch) | |
tree | 0c9fe3fececcdb46267e13ee3649b91024fd8b2e /hugolib/hugo_sites_build.go | |
parent | cf6131dc18e5e833b021724a0d9bcdaa6827b8dd (diff) |
js: Misc fixes
* Fix resolve of package.json deps in submodules
* Fix directory logic for writing assets/jsconfig.json
Fixes #7924
Fixes #7923
Diffstat (limited to 'hugolib/hugo_sites_build.go')
-rw-r--r-- | hugolib/hugo_sites_build.go | 41 |
1 files changed, 23 insertions, 18 deletions
diff --git a/hugolib/hugo_sites_build.go b/hugolib/hugo_sites_build.go index 603772afd..bd5c2b661 100644 --- a/hugolib/hugo_sites_build.go +++ b/hugolib/hugo_sites_build.go @@ -354,26 +354,31 @@ func (h *HugoSites) postProcess() error { // Write a jsconfig.json file to the project's /asset directory // to help JS intellisense in VS Code etc. if !h.ResourceSpec.BuildConfig.NoJSConfigInAssets && h.BaseFs.Assets.Dirs != nil { - m := h.BaseFs.Assets.Dirs[0].Meta() - assetsDir := m.Filename() - if strings.HasPrefix(assetsDir, h.ResourceSpec.WorkingDir) { - if jsConfig := h.ResourceSpec.JSConfigBuilder.Build(assetsDir); jsConfig != nil { + fi, err := h.BaseFs.Assets.Fs.Stat("") + if err != nil { + h.Log.Warnf("Failed to resolve jsconfig.json dir: %s", err) + } else { + m := fi.(hugofs.FileMetaInfo).Meta() + assetsDir := m.SourceRoot() + if strings.HasPrefix(assetsDir, h.ResourceSpec.WorkingDir) { + if jsConfig := h.ResourceSpec.JSConfigBuilder.Build(assetsDir); jsConfig != nil { - b, err := json.MarshalIndent(jsConfig, "", " ") - if err != nil { - h.Log.Warnf("Failed to create jsconfig.json: %s", err) + b, err := json.MarshalIndent(jsConfig, "", " ") + if err != nil { + h.Log.Warnf("Failed to create jsconfig.json: %s", err) - } else { - filename := filepath.Join(assetsDir, "jsconfig.json") - if h.running { - h.skipRebuildForFilenamesMu.Lock() - h.skipRebuildForFilenames[filename] = true - h.skipRebuildForFilenamesMu.Unlock() - } - // Make sure it's written to the OS fs as this is used by - // editors. - if err := afero.WriteFile(hugofs.Os, filename, b, 0666); err != nil { - h.Log.Warnf("Failed to write jsconfig.json: %s", err) + } else { + filename := filepath.Join(assetsDir, "jsconfig.json") + if h.running { + h.skipRebuildForFilenamesMu.Lock() + h.skipRebuildForFilenames[filename] = true + h.skipRebuildForFilenamesMu.Unlock() + } + // Make sure it's written to the OS fs as this is used by + // editors. + if err := afero.WriteFile(hugofs.Os, filename, b, 0666); err != nil { + h.Log.Warnf("Failed to write jsconfig.json: %s", err) + } } } } |