MCPcopy Create free account
hub / github.com/ember-cli/ember-cli / updatePackageJson

Function updatePackageJson

packages/addon-blueprint/index.js:50–115  ·  view source on GitHub ↗
(content)

Source from the content-addressed store, hash-verified

48 ],
49
50 updatePackageJson(content) {
51 let contents = JSON.parse(content);
52
53 contents.name = stringUtil.dasherize(this.options.entity.name);
54 contents.description = this.description;
55
56 delete contents.private;
57
58 contents.dependencies = contents.dependencies || {};
59 contents.devDependencies = contents.devDependencies || {};
60
61 // npm doesn't like it when we have something in both deps and devDeps
62 // and dummy app still uses it when in deps
63 contents.dependencies['ember-cli-babel'] = contents.devDependencies['ember-cli-babel'];
64 delete contents.devDependencies['ember-cli-babel'];
65
66 // Addons must bring in their own version of `@babel/core` when using
67 // `ember-cli-babel` >= v8. More info:
68 // https://github.com/babel/ember-cli-babel/blob/master/UPGRADING.md#upgrade-path-for-addons
69 contents.dependencies['@babel/core'] = contents.devDependencies['@babel/core'];
70 delete contents.devDependencies['@babel/core'];
71
72 // Move ember-cli-htmlbars into the dependencies of the addon blueprint by default
73 // to prevent error:
74 // `Addon templates were detected but there are no template compilers registered for (addon-name)`
75 contents.dependencies['ember-cli-htmlbars'] = contents.devDependencies['ember-cli-htmlbars'];
76 delete contents.devDependencies['ember-cli-htmlbars'];
77
78 contents.dependencies['ember-template-imports'] = contents.devDependencies['ember-template-imports'];
79 delete contents.devDependencies['ember-template-imports'];
80
81 // 95% of addons don't need ember-data or ember-fetch, make them opt-in instead
82 let deps = Object.keys(contents.devDependencies);
83 for (let depName of deps) {
84 if (depName.includes('ember-data') || depName.includes('warp-drive')) {
85 delete contents.devDependencies[depName];
86 }
87 }
88
89 // Per RFC #811, addons should not have this dependency.
90 // @see https://github.com/emberjs/rfcs/blob/master/text/0811-element-modifiers.md#detailed-design
91 delete contents.devDependencies['ember-modifier'];
92
93 // 100% of addons don't need ember-cli-app-version, make it opt-in instead
94 delete contents.devDependencies['ember-cli-app-version'];
95
96 // add scripts to build type declarations for TypeScript addons
97 if (this.options.typescript) {
98 contents.devDependencies.rimraf = '^5.0.10';
99
100 contents.scripts.prepack = 'tsc --project tsconfig.declarations.json';
101 contents.scripts.postpack = 'rimraf declarations';
102
103 contents.typesVersions = {
104 '*': {
105 'test-support': ['declarations/addon-test-support/index.d.ts'],
106 'test-support/*': ['declarations/addon-test-support/*', 'declarations/addon-test-support/*/index.d.ts'],
107 '*': ['declarations/addon/*', 'declarations/addon/*/index.d.ts'],

Callers

nothing calls this directly

Calls 1

stringifyAndNormalizeFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…