Repository navigation
Expand file tree
/
Copy pathwebpack.config.js
More file actions
78 lines (76 loc) · 2.12 KB
/
Copy pathwebpack.config.js
File metadata and controls
78 lines (76 loc) · 2.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
const path = require("path");
const webpack = require("webpack");
const CopyWebpackPlugin = require("copy-webpack-plugin");
const defaults = require("@wordpress/scripts/config/webpack.config");
const PhpFilePathsPlugin = require("@wordpress/scripts/plugins/php-file-paths-plugin/index");
const { getProjectSourcePath } = require("@wordpress/scripts/utils/index");
const { realpathSync } = require("fs");
const isProEnabled =
process.env.UR_PRO === "true" || process.env.UR_PRO === true;
module.exports = {
...defaults,
output: {
...defaults.output,
filename: "[name].js",
path: path.resolve(__dirname + "/chunks")
},
entry: {
welcome: "./src/welcome/index.tsx",
dashboard: "./src/dashboard/index.js",
blocks: "./src/blocks/index.js",
formblock: "./assets/js/admin/gutenberg/form-block.js",
form_templates: "./src/form-templates/index.js",
"divi-builder": "./src/widgets/divi-builder/index.js",
"content-access-rules": "./src/content-restriction/index.js",
analytics: "./src/analytics/main.tsx"
},
plugins: [
...defaults.plugins.filter((plugin) => {
return plugin.constructor.name !== "CopyPlugin";
}),
new webpack.DefinePlugin({
"process.env.UR_PRO": JSON.stringify(
isProEnabled ? "true" : "false"
)
}),
...(isProEnabled
? []
: [
new webpack.IgnorePlugin({
resourceRegExp: /^\.\/modules\/pro$/,
contextRegExp: /src\/widgets\/divi-builder$/
}),
new webpack.IgnorePlugin({
resourceRegExp: /^\.\/blocks\/pro\/blocks$/,
contextRegExp: /src\/blocks$/
})
]),
new CopyWebpackPlugin({
patterns: [
{
from: "**/block.json",
to: ({ context, absoluteFilename }) => {
const parentDir = path.basename(
path.dirname(absoluteFilename)
);
return `${parentDir}/block.json`;
},
context: "src"
},
{
from: "**/*.php",
context: getProjectSourcePath(),
noErrorOnMissing: true,
filter: (filepath) => {
return (
process.env.WP_COPY_PHP_FILES_TO_DIST ||
PhpFilePathsPlugin.paths.includes(
realpathSync(filepath).replace(/\\/g, "/")
)
);
}
}
]
})
]
};