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
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2020-11-04 18:13:37 +0300
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2020-11-04 21:21:43 +0300
commitbf2837a314eaf70135791984a423b0b09f58741d (patch)
tree0c9fe3fececcdb46267e13ee3649b91024fd8b2e /hugolib
parentcf6131dc18e5e833b021724a0d9bcdaa6827b8dd (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')
-rw-r--r--hugolib/hugo_sites_build.go41
-rw-r--r--hugolib/js_test.go17
2 files changed, 37 insertions, 21 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)
+ }
}
}
}
diff --git a/hugolib/js_test.go b/hugolib/js_test.go
index 6c27219f3..25617b168 100644
--- a/hugolib/js_test.go
+++ b/hugolib/js_test.go
@@ -176,12 +176,22 @@ path="github.com/gohugoio/hugoTestProjectJSModImports"
go 1.15
-require github.com/gohugoio/hugoTestProjectJSModImports v0.3.0 // indirect
+require github.com/gohugoio/hugoTestProjectJSModImports v0.5.0 // indirect
`)
b.WithContent("p1.md", "").WithNothingAdded()
+ b.WithSourceFile("package.json", `{
+ "dependencies": {
+ "date-fns": "^2.16.1"
+ }
+}`)
+
+ b.Assert(os.Chdir(workDir), qt.IsNil)
+ _, err = exec.Command("npm", "install").CombinedOutput()
+ b.Assert(err, qt.IsNil)
+
b.Build(BuildCfg{})
b.AssertFileContent("public/js/main.js", `
@@ -189,8 +199,9 @@ greeting: "greeting configured in mod2"
Hello1 from mod1: $
return "Hello2 from mod1";
var Hugo = "Rocks!";
-return "Hello3 from mod2";
-return "Hello from lib in the main project";
+Hello3 from mod2. Date from date-fns: ${today}
+Hello from lib in the main project
+Hello5 from mod2.
var myparam = "Hugo Rocks!";`)
}