summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--hugolib/hugo_modules_test.go173
-rw-r--r--modules/npm/package_builder.go11
2 files changed, 106 insertions, 78 deletions
diff --git a/hugolib/hugo_modules_test.go b/hugolib/hugo_modules_test.go
index fbb232325..5ebf8bd0b 100644
--- a/hugolib/hugo_modules_test.go
+++ b/hugolib/hugo_modules_test.go
@@ -135,7 +135,11 @@ JS imported in module: |
b.WithSourceFile("package.json", `{
"name": "mypack",
"version": "1.2.3",
- "scripts": {},
+ "scripts": {
+ "client": "wait-on http://localhost:1313 && open http://localhost:1313",
+ "start": "run-p client server",
+ "test": "echo 'hoge' > hoge"
+ },
"dependencies": {
"nonon": "error"
}
@@ -144,7 +148,11 @@ JS imported in module: |
b.WithSourceFile("package.hugo.json", `{
"name": "mypack",
"version": "1.2.3",
- "scripts": {},
+ "scripts": {
+ "client": "wait-on http://localhost:1313 && open http://localhost:1313",
+ "start": "run-p client server",
+ "test": "echo 'hoge' > hoge"
+ },
"dependencies": {
"foo": "1.2.3"
},
@@ -160,34 +168,39 @@ JS imported in module: |
b.AssertFileContentFn("package.json", func(s string) bool {
return s == `{
- "comments": {
+ "comments": {
+ "dependencies": {
+ "foo": "project",
+ "react-dom": "github.com/gohugoio/hugoTestModule2"
+ },
+ "devDependencies": {
+ "@babel/cli": "github.com/gohugoio/hugoTestModule2",
+ "@babel/core": "github.com/gohugoio/hugoTestModule2",
+ "@babel/preset-env": "github.com/gohugoio/hugoTestModule2",
+ "postcss-cli": "project",
+ "tailwindcss": "project"
+ }
+ },
"dependencies": {
- "foo": "project",
- "react-dom": "github.com/gohugoio/hugoTestModule2"
+ "foo": "1.2.3",
+ "react-dom": "^16.13.1"
},
"devDependencies": {
- "@babel/cli": "github.com/gohugoio/hugoTestModule2",
- "@babel/core": "github.com/gohugoio/hugoTestModule2",
- "@babel/preset-env": "github.com/gohugoio/hugoTestModule2",
- "postcss-cli": "project",
- "tailwindcss": "project"
- }
- },
- "dependencies": {
- "foo": "1.2.3",
- "react-dom": "^16.13.1"
- },
- "devDependencies": {
- "@babel/cli": "7.8.4",
- "@babel/core": "7.9.0",
- "@babel/preset-env": "7.9.5",
- "postcss-cli": "7.8.0",
- "tailwindcss": "1.8.0"
- },
- "name": "mypack",
- "scripts": {},
- "version": "1.2.3"
-}`
+ "@babel/cli": "7.8.4",
+ "@babel/core": "7.9.0",
+ "@babel/preset-env": "7.9.5",
+ "postcss-cli": "7.8.0",
+ "tailwindcss": "1.8.0"
+ },
+ "name": "mypack",
+ "scripts": {
+ "client": "wait-on http://localhost:1313 && open http://localhost:1313",
+ "start": "run-p client server",
+ "test": "echo 'hoge' > hoge"
+ },
+ "version": "1.2.3"
+}
+`
})
})
@@ -198,7 +211,11 @@ JS imported in module: |
const origPackageJSON = `{
"name": "mypack",
"version": "1.2.3",
- "scripts": {},
+ "scripts": {
+ "client": "wait-on http://localhost:1313 && open http://localhost:1313",
+ "start": "run-p client server",
+ "test": "echo 'hoge' > hoge"
+ },
"dependencies": {
"moo": "1.2.3"
}
@@ -211,34 +228,39 @@ JS imported in module: |
b.AssertFileContentFn("package.json", func(s string) bool {
return s == `{
- "comments": {
+ "comments": {
+ "dependencies": {
+ "moo": "project",
+ "react-dom": "github.com/gohugoio/hugoTestModule2"
+ },
+ "devDependencies": {
+ "@babel/cli": "github.com/gohugoio/hugoTestModule2",
+ "@babel/core": "github.com/gohugoio/hugoTestModule2",
+ "@babel/preset-env": "github.com/gohugoio/hugoTestModule2",
+ "postcss-cli": "github.com/gohugoio/hugoTestModule2",
+ "tailwindcss": "github.com/gohugoio/hugoTestModule2"
+ }
+ },
"dependencies": {
- "moo": "project",
- "react-dom": "github.com/gohugoio/hugoTestModule2"
+ "moo": "1.2.3",
+ "react-dom": "^16.13.1"
},
"devDependencies": {
- "@babel/cli": "github.com/gohugoio/hugoTestModule2",
- "@babel/core": "github.com/gohugoio/hugoTestModule2",
- "@babel/preset-env": "github.com/gohugoio/hugoTestModule2",
- "postcss-cli": "github.com/gohugoio/hugoTestModule2",
- "tailwindcss": "github.com/gohugoio/hugoTestModule2"
- }
- },
- "dependencies": {
- "moo": "1.2.3",
- "react-dom": "^16.13.1"
- },
- "devDependencies": {
- "@babel/cli": "7.8.4",
- "@babel/core": "7.9.0",
- "@babel/preset-env": "7.9.5",
- "postcss-cli": "7.1.0",
- "tailwindcss": "1.2.0"
- },
- "name": "mypack",
- "scripts": {},
- "version": "1.2.3"
-}`
+ "@babel/cli": "7.8.4",
+ "@babel/core": "7.9.0",
+ "@babel/preset-env": "7.9.5",
+ "postcss-cli": "7.1.0",
+ "tailwindcss": "1.2.0"
+ },
+ "name": "mypack",
+ "scripts": {
+ "client": "wait-on http://localhost:1313 && open http://localhost:1313",
+ "start": "run-p client server",
+ "test": "echo 'hoge' > hoge"
+ },
+ "version": "1.2.3"
+}
+`
})
// https://github.com/gohugoio/hugo/issues/7690
@@ -254,31 +276,32 @@ JS imported in module: |
b.AssertFileContentFn("package.json", func(s string) bool {
return s == `{
- "comments": {
+ "comments": {
+ "dependencies": {
+ "react-dom": "github.com/gohugoio/hugoTestModule2"
+ },
+ "devDependencies": {
+ "@babel/cli": "github.com/gohugoio/hugoTestModule2",
+ "@babel/core": "github.com/gohugoio/hugoTestModule2",
+ "@babel/preset-env": "github.com/gohugoio/hugoTestModule2",
+ "postcss-cli": "github.com/gohugoio/hugoTestModule2",
+ "tailwindcss": "github.com/gohugoio/hugoTestModule2"
+ }
+ },
"dependencies": {
- "react-dom": "github.com/gohugoio/hugoTestModule2"
+ "react-dom": "^16.13.1"
},
"devDependencies": {
- "@babel/cli": "github.com/gohugoio/hugoTestModule2",
- "@babel/core": "github.com/gohugoio/hugoTestModule2",
- "@babel/preset-env": "github.com/gohugoio/hugoTestModule2",
- "postcss-cli": "github.com/gohugoio/hugoTestModule2",
- "tailwindcss": "github.com/gohugoio/hugoTestModule2"
- }
- },
- "dependencies": {
- "react-dom": "^16.13.1"
- },
- "devDependencies": {
- "@babel/cli": "7.8.4",
- "@babel/core": "7.9.0",
- "@babel/preset-env": "7.9.5",
- "postcss-cli": "7.1.0",
- "tailwindcss": "1.2.0"
- },
- "name": "myhugosite",
- "version": "0.1.0"
-}`
+ "@babel/cli": "7.8.4",
+ "@babel/core": "7.9.0",
+ "@babel/preset-env": "7.9.5",
+ "postcss-cli": "7.1.0",
+ "tailwindcss": "1.2.0"
+ },
+ "name": "myhugosite",
+ "version": "0.1.0"
+}
+`
})
})
}
diff --git a/modules/npm/package_builder.go b/modules/npm/package_builder.go
index f407a92bd..fe5d19832 100644
--- a/modules/npm/package_builder.go
+++ b/modules/npm/package_builder.go
@@ -14,9 +14,11 @@
package npm
import (
+ "bytes"
"encoding/json"
"fmt"
"io"
+ "strings"
"github.com/gohugoio/hugo/common/hugio"
@@ -129,12 +131,15 @@ func Pack(fs afero.Fs, fis []hugofs.FileMetaInfo) error {
b.originalPackageJSON["comments"] = commentsm
// Write it out to the project package.json
- packageJSONData, err := json.MarshalIndent(b.originalPackageJSON, "", " ")
- if err != nil {
+ packageJSONData := new(bytes.Buffer)
+ encoder := json.NewEncoder(packageJSONData)
+ encoder.SetEscapeHTML(false)
+ encoder.SetIndent("", strings.Repeat(" ", 2))
+ if err := encoder.Encode(b.originalPackageJSON); err != nil {
return errors.Wrap(err, "npm pack: failed to marshal JSON")
}
- if err := afero.WriteFile(fs, packageJSONName, packageJSONData, 0666); err != nil {
+ if err := afero.WriteFile(fs, packageJSONName, packageJSONData.Bytes(), 0666); err != nil {
return errors.Wrap(err, "npm pack: failed to write package.json")
}