mirror of
https://github.com/discourse/discourse.git
synced 2024-12-02 07:53:50 +08:00
0f4520867b
decorator-transforms (https://github.com/ef4/decorator-transforms) is a modern replacement for babel's plugin-proposal-decorators. It provides a decorator implementation using modern browser features, without needing to enable babel's full suite of class feature transformations. This improves the developer experience and performance. In local testing with Google's 'tachometer' tool, this reduces Discourse's 'init-to-render' time by around 3-4% (230ms -> 222ms). It reduces our initial gzip'd JS payloads by 3.2% (2.43MB -> 2.35MB), or 7.5% (14.5MB -> 13.4MB) uncompressed.
49 lines
1.1 KiB
JavaScript
49 lines
1.1 KiB
JavaScript
"use strict";
|
|
|
|
const calculateCacheKeyForTree = require("calculate-cache-key-for-tree");
|
|
const path = require("path");
|
|
|
|
module.exports = {
|
|
name: require("./package").name,
|
|
|
|
options: {
|
|
babel: {
|
|
plugins: [
|
|
[
|
|
require.resolve("decorator-transforms"),
|
|
{
|
|
runEarly: true,
|
|
},
|
|
],
|
|
],
|
|
},
|
|
|
|
"ember-cli-babel": {
|
|
disableDecoratorTransforms: true,
|
|
},
|
|
},
|
|
|
|
// return an empty tree here as we do not want the addon modules to be
|
|
// included into vendor.js; instead, we will produce a separate bundle
|
|
// (admin.js) to be included via a script tag as needed
|
|
treeForAddon() {
|
|
return;
|
|
},
|
|
|
|
// custom method to produce the tree for admin.js
|
|
// called by ember-cli-build.js in discourse core
|
|
treeForAddonBundle() {
|
|
let addonTreePath = path.resolve(this.root, this.treePaths.addon);
|
|
let addonTree = this.treeGenerator(addonTreePath);
|
|
return this._super.treeForAddon.call(this, addonTree);
|
|
},
|
|
|
|
cacheKeyForTree(tree) {
|
|
return calculateCacheKeyForTree(tree, this);
|
|
},
|
|
|
|
isDevelopingAddon() {
|
|
return true;
|
|
},
|
|
};
|