diff --git a/package.json b/package.json
index cecb354..a73923e 100644
--- a/package.json
+++ b/package.json
@@ -11,8 +11,10 @@
"check-node-version": "^3.1.1",
"codecov": "^2.3.1",
"glob": "^7.1.2",
+ "is-plain-obj": "^1.1.0",
"lerna": "^2.9.0",
"mkdirp": "^0.5.1",
+ "npm-package-json-lint": "^3.0.1",
"npm-run-all": "^4.1.2",
"path-type": "^3.0.0",
"rimraf": "^2.6.1",
@@ -27,6 +29,26 @@
],
"preset": "@wordpress/jest-preset-default"
},
+ "npmPackageJsonLintConfig": {
+ "extends": "@wordpress/npm-package-json-lint-config",
+ "rules": {
+ "require-publishConfig": "error",
+ "valid-values-author": [
+ "error",
+ [
+ "WordPress"
+ ]
+ ],
+ "valid-values-publishConfig": [
+ "error",
+ [
+ {
+ "access": "public"
+ }
+ ]
+ ]
+ }
+ },
"scripts": {
"build-clean": "rimraf ./packages/*/build ./packages/*/build-module",
"prebuild": "npm-run-all check-engines build-clean",
@@ -34,7 +56,9 @@
"check-engines": "check-node-version --package",
"create-symlinks": "node ./scripts/create-symlinks.js",
"lerna-bootstrap": "lerna bootstrap --hoist",
+ "lint:pkg-json": "npmPkgJsonLint ./packages",
"postinstall": "npm-run-all lerna-bootstrap create-symlinks build",
+ "pretest": "npm run lint:pkg-json",
"test": "wp-scripts test-unit-js",
"test:coverage": "npm run test -- --coverage",
"test:coverage-ci": "npm run test -- --coverage && codecov",
diff --git a/packages/babel-plugin-makepot/package.json b/packages/babel-plugin-makepot/package.json
index 2c630df..dc86cc6 100644
--- a/packages/babel-plugin-makepot/package.json
+++ b/packages/babel-plugin-makepot/package.json
@@ -19,9 +19,6 @@
},
"main": "build/index.js",
"module": "build-module/index.js",
- "publishConfig": {
- "access": "public"
- },
"dependencies": {
"gettext-parser": "^1.3.1",
"lodash": "^4.17.5"
@@ -29,5 +26,8 @@
"devDependencies": {
"babel-core": "^6.26.0",
"babel-traverse": "^6.26.0"
+ },
+ "publishConfig": {
+ "access": "public"
}
}
diff --git a/packages/browserslist-config/package.json b/packages/browserslist-config/package.json
index 3ab42fd..89c7e18 100644
--- a/packages/browserslist-config/package.json
+++ b/packages/browserslist-config/package.json
@@ -17,10 +17,10 @@
"bugs": {
"url": "https://github.com/WordPress/packages/issues"
},
- "main": "index.js",
"engines": {
"node": ">=8"
},
+ "main": "index.js",
"devDependencies": {
"browserslist": "^3.1.0"
},
diff --git a/packages/custom-templated-path-webpack-plugin/package.json b/packages/custom-templated-path-webpack-plugin/package.json
index 362c289..71c6271 100644
--- a/packages/custom-templated-path-webpack-plugin/package.json
+++ b/packages/custom-templated-path-webpack-plugin/package.json
@@ -8,7 +8,7 @@
"webpack",
"webpack-plugin"
],
- "homepage": "https://github.com/WordPress/packages/tree/master/packages/custom-templated-path-webpack-plugin/",
+ "homepage": "https://github.com/WordPress/packages/blob/master/packages/custom-templated-path-webpack-plugin/README.md",
"repository": {
"type": "git",
"url": "https://github.com/WordPress/packages.git"
@@ -18,9 +18,6 @@
},
"main": "build/index.js",
"module": "build-module/index.js",
- "publishConfig": {
- "access": "public"
- },
"dependencies": {
"escape-string-regexp": "^1.0.5"
},
@@ -29,5 +26,8 @@
},
"peerDependencies": {
"webpack": "^4.0.0"
+ },
+ "publishConfig": {
+ "access": "public"
}
}
diff --git a/packages/i18n/package.json b/packages/i18n/package.json
index bd696ed..b4d12b8 100644
--- a/packages/i18n/package.json
+++ b/packages/i18n/package.json
@@ -17,8 +17,8 @@
},
"main": "build/index.js",
"module": "build-module/index.js",
- "publishConfig": {
- "access": "public"
+ "bin": {
+ "pot-to-php": "./tools/pot-to-php.js"
},
"dependencies": {
"gettext-parser": "^1.3.1",
@@ -26,7 +26,7 @@
"lodash": "^4.17.5",
"memize": "^1.0.5"
},
- "bin": {
- "pot-to-php": "./tools/pot-to-php.js"
+ "publishConfig": {
+ "access": "public"
}
}
diff --git a/packages/jest-console/package.json b/packages/jest-console/package.json
index 2f11331..165f44d 100644
--- a/packages/jest-console/package.json
+++ b/packages/jest-console/package.json
@@ -18,12 +18,12 @@
"bugs": {
"url": "https://github.com/WordPress/packages/issues"
},
- "main": "build/index.js",
- "module": "build-module/index.js",
"files": [
"build",
"build-module"
],
+ "main": "build/index.js",
+ "module": "build-module/index.js",
"dependencies": {
"jest-matcher-utils": "^22.4.0",
"lodash": "^4.17.4"
diff --git a/packages/jest-preset-default/package.json b/packages/jest-preset-default/package.json
index 8408870..f623d8a 100644
--- a/packages/jest-preset-default/package.json
+++ b/packages/jest-preset-default/package.json
@@ -20,11 +20,11 @@
"bugs": {
"url": "https://github.com/WordPress/packages/issues"
},
- "main": "index.js",
"files": [
"scripts",
"jest-preset.json"
],
+ "main": "index.js",
"dependencies": {
"@wordpress/jest-console": "^1.0.6",
"babel-jest": "^22.1.0",
diff --git a/packages/npm-package-json-lint-config/.npmrc b/packages/npm-package-json-lint-config/.npmrc
new file mode 100644
index 0000000..43c97e7
--- /dev/null
+++ b/packages/npm-package-json-lint-config/.npmrc
@@ -0,0 +1 @@
+package-lock=false
diff --git a/packages/npm-package-json-lint-config/README.md b/packages/npm-package-json-lint-config/README.md
new file mode 100644
index 0000000..3cbbaae
--- /dev/null
+++ b/packages/npm-package-json-lint-config/README.md
@@ -0,0 +1,65 @@
+# `@wordpress/npm-package-json-lint-config`
+
+> WordPress [npm-package-json-lint](https://github.com/tclindner/npm-package-json-lint) shareable config
+
+## Installation
+
+Install the module
+
+```shell
+$ npm install @wordpress/npm-package-json-lint-config
+```
+
+## Usage
+
+Add this to your `package.json` file:
+
+```json
+"npmPackageJsonLintConfig": {
+ "extends": "@wordpress/npm-package-json-lint-config",
+},
+```
+
+Or to a `.npmpackagejsonlintrc.json` file in the root of your repo:
+```json
+{
+ "extends": "@wordpress/npm-package-json-lint-config",
+}
+
+```
+
+To add, modify, or override any [npm-package-json-lint](https://github.com/tclindner/npm-package-json-lint/wiki) rules add this to your `package.json` file:
+
+```json
+"npmPackageJsonLintConfig": {
+ "extends": "@wordpress/npm-package-json-lint-config",
+ "rules": {
+ "valid-values-author": [
+ "error",
+ [
+ "WordPress"
+ ]
+ ]
+ }
+},
+```
+
+Or to a `.npmpackagejsonlintrc.json` file in the root of your repo:
+
+```json
+{
+ "extends": "@wordpress/npm-package-json-lint-config",
+ "rules": {
+ "require-publishConfig": "error",
+ "valid-values-author": [
+ "error",
+ [
+ "WordPress"
+ ]
+ ]
+ }
+}
+
+```
+
+