mirror of
https://github.com/excalidraw/excalidraw.git
synced 2024-11-02 03:25:53 +01:00
4bfcf105a5
Co-authored-by: Aakansha Doshi <aakansha1216@gmail.com>
41 lines
1.2 KiB
JavaScript
Executable File
41 lines
1.2 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
|
|
|
// In order to use this, you need to install Cairo on your machine. See
|
|
// instructions here: https://github.com/Automattic/node-canvas#compiling
|
|
|
|
// In order to run:
|
|
// npm install canvas # please do not check it in
|
|
// yarn build-node
|
|
// node build/static/js/build-node.js
|
|
// open test.png
|
|
|
|
const rewire = require("rewire");
|
|
const defaults = rewire("react-scripts/scripts/build.js");
|
|
const config = defaults.__get__("config");
|
|
|
|
// Disable multiple chunks
|
|
config.optimization.runtimeChunk = false;
|
|
config.optimization.splitChunks = {
|
|
cacheGroups: {
|
|
default: false,
|
|
},
|
|
};
|
|
// Set the filename to be deterministic
|
|
config.output.filename = "static/js/build-node.js";
|
|
// Don't choke on node-specific requires
|
|
config.target = "node";
|
|
// Set the node entrypoint
|
|
config.entry = "./src/index-node";
|
|
// By default, webpack is going to replace the require of the canvas.node file
|
|
// to just a string with the path of the canvas.node file. We need to tell
|
|
// webpack to avoid rewriting that dependency.
|
|
config.externals = (context, request, callback) => {
|
|
if (/\.node$/.test(request)) {
|
|
return callback(
|
|
null,
|
|
"commonjs ../../../node_modules/canvas/build/Release/canvas.node",
|
|
);
|
|
}
|
|
callback();
|
|
};
|