Skip to content

Commit a14fec6

Browse files
jakub300LinusBorg
authored andcommitted
Update project creation: sort dependencies in package.json (vuejs-templates#1118)
* Sort dependencies in package.json * Update package.json * keep lint dependencies together * don't mix confitional and non-confitional deps separated
1 parent cb2e340 commit a14fec6

File tree

2 files changed

+45
-20
lines changed

2 files changed

+45
-20
lines changed

meta.js

+28-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,15 @@
1+
const path = require('path');
2+
const fs = require('fs');
3+
4+
function sortObject(object) {
5+
// Based on https://github.com/yarnpkg/yarn/blob/v1.3.2/src/config.js#L79-L85
6+
const sortedObject = {};
7+
Object.keys(object).sort().forEach(item => {
8+
sortedObject[item] = object[item];
9+
});
10+
return sortedObject;
11+
}
12+
113
module.exports = {
214
"helpers": {
315
"if_or": function (v1, v2, options) {
@@ -115,5 +127,20 @@ module.exports = {
115127
"test/e2e/**/*": "e2e",
116128
"src/router/**/*": "router"
117129
},
118-
"completeMessage": "To get started:\n\n {{^inPlace}}cd {{destDirName}}\n {{/inPlace}}npm install\n npm run dev\n\nDocumentation can be found at https://vuejs-templates.github.io/webpack"
130+
"complete": function (data) {
131+
const packageJsonFile = path.join(
132+
data.inPlace ? "" : data.destDirName,
133+
"package.json"
134+
);
135+
const packageJson = JSON.parse(fs.readFileSync(packageJsonFile));
136+
packageJson.devDependencies = sortObject(packageJson.devDependencies);
137+
packageJson.dependencies = sortObject(packageJson.dependencies);
138+
fs.writeFileSync(
139+
packageJsonFile,
140+
JSON.stringify(packageJson, null, 2) + "\n"
141+
);
142+
143+
const message = `To get started:\n\n ${data.inPlace ? '' : `cd ${data.destDirName}\n `}npm install\n npm run dev\n\nDocumentation can be found at https://vuejs-templates.github.io/webpack`;
144+
console.log("\n" + message.split(/\r?\n/g).map(line => " " + line).join("\n"));
145+
}
119146
};

template/package.json

+17-19
Original file line numberDiff line numberDiff line change
@@ -29,20 +29,8 @@
2929
"vue-router": "^3.0.1"{{/router}}
3030
},
3131
"devDependencies": {
32-
"autoprefixer": "^7.1.2",
33-
"babel-core": "^6.22.1",
3432
{{#lint}}
3533
"babel-eslint": "^7.1.1",
36-
{{/lint}}
37-
"babel-loader": "^7.1.1",
38-
"babel-plugin-transform-runtime": "^6.22.0",
39-
"babel-preset-env": "^1.3.2",
40-
"babel-preset-stage-2": "^6.22.0",
41-
"babel-register": "^6.22.0",
42-
"chalk": "^2.0.1",
43-
"copy-webpack-plugin": "^4.0.1",
44-
"css-loader": "^0.28.0",
45-
{{#lint}}
4634
"eslint": "^3.19.0",
4735
"eslint-friendly-formatter": "^3.0.0",
4836
"eslint-loader": "^1.7.1",
@@ -60,12 +48,6 @@
6048
"eslint-plugin-import": "^2.7.0",
6149
{{/if_eq}}
6250
{{/lint}}
63-
"eventsource-polyfill": "^0.9.6",
64-
"extract-text-webpack-plugin": "^3.0.0",
65-
"file-loader": "^1.1.4",
66-
"friendly-errors-webpack-plugin": "^1.6.1",
67-
"html-webpack-plugin": "^2.30.1",
68-
"webpack-bundle-analyzer": "^2.9.0",
6951
{{#if_eq runner "jest"}}
7052
"babel-jest": "^21.0.2",
7153
"babel-plugin-dynamic-import-node": "^1.2.0",
@@ -93,13 +75,29 @@
9375
"babel-plugin-istanbul": "^4.1.1",
9476
"phantomjs-prebuilt": "^2.1.14",
9577
{{/if_eq}}
96-
"node-notifier": "^5.1.2",
9778
{{#e2e}}
9879
"chromedriver": "^2.27.2",
9980
"cross-spawn": "^5.0.1",
10081
"nightwatch": "^0.9.12",
10182
"selenium-server": "^3.0.1",
10283
{{/e2e}}
84+
"autoprefixer": "^7.1.2",
85+
"babel-core": "^6.22.1",
86+
"babel-loader": "^7.1.1",
87+
"babel-plugin-transform-runtime": "^6.22.0",
88+
"babel-preset-env": "^1.3.2",
89+
"babel-preset-stage-2": "^6.22.0",
90+
"babel-register": "^6.22.0",
91+
"chalk": "^2.0.1",
92+
"copy-webpack-plugin": "^4.0.1",
93+
"css-loader": "^0.28.0",
94+
"eventsource-polyfill": "^0.9.6",
95+
"extract-text-webpack-plugin": "^3.0.0",
96+
"file-loader": "^1.1.4",
97+
"friendly-errors-webpack-plugin": "^1.6.1",
98+
"html-webpack-plugin": "^2.30.1",
99+
"webpack-bundle-analyzer": "^2.9.0",
100+
"node-notifier": "^5.1.2",
103101
"postcss-import": "^11.0.0",
104102
"postcss-loader": "^2.0.8",
105103
"semver": "^5.3.0",

0 commit comments

Comments
 (0)