Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
sagemath
GitHub Repository: sagemath/sagecell
Path: blob/master/webpack.config.js
447 views
1
const webpack = require("webpack");
2
const path = require("path");
3
4
module.exports = {
5
entry: "./js/main.js",
6
output: {
7
filename: "./embedded_sagecell.js",
8
path: path.resolve(__dirname, "build"),
9
},
10
// Enable sourcemaps for debugging webpack's output.
11
devtool: "source-map",
12
resolve: {
13
extensions: ["", ".webpack.js", ".web.js", ".js"],
14
modules: ["build/vendor", "node_modules"],
15
},
16
module: {
17
rules: [
18
{
19
test: /\.m?js$/,
20
exclude: /(node_modules|bower_components|JSmol.js)/,
21
use: {
22
loader: "babel-loader",
23
options: {
24
presets: ["@babel/preset-env"],
25
plugins: ["@babel/plugin-transform-modules-amd"],
26
},
27
},
28
},
29
// JSmol.js is not written in strict mode, so the babel-loader
30
// will error if it is imported. Instead we directly load
31
// it in an unprocessed form.
32
{ test: /JSmol.js$/, loader: "source-map-loader" },
33
{
34
test: /\.(html|css)$/i,
35
use: "raw-loader",
36
},
37
],
38
},
39
plugins: [
40
new webpack.ProvidePlugin({
41
jQuery: "jquery",
42
$: "jquery",
43
// Normally the following lines are used to make sure that jQuery
44
// cannot "leak" into the outside environment. However, since
45
// we *want* to initialize the global jQuery object, we omit them.
46
// "window.jQuery": "jquery",
47
// "window.$": "jquery",
48
}),
49
new webpack.optimize.LimitChunkCountPlugin({
50
maxChunks: 1,
51
}),
52
],
53
};
54
55