72 lines
2.1 KiB
JavaScript
72 lines
2.1 KiB
JavaScript
/* webpack.config.js */
|
|
require('style-loader');
|
|
require('css-loader');
|
|
var path = require('path');
|
|
|
|
const projectName = 'rhodecode-components';
|
|
let destinationDirectory = path.join(process.cwd(), 'rhodecode', 'public', 'js')
|
|
|
|
if (process.env.RC_STATIC_DIR) {
|
|
destinationDirectory = process.env.RC_STATIC_DIR;
|
|
}
|
|
|
|
// doing it this way because it seems that plugin via grunt does not pick up .babelrc
|
|
let babelRCOptions = {
|
|
"presets": [
|
|
["env", {
|
|
"targets": {
|
|
"esmodules": true
|
|
},
|
|
"exclude": [
|
|
"transform-es2015-classes",
|
|
"transform-regenerator",
|
|
"transform-async-to-generator"
|
|
]
|
|
}]
|
|
],
|
|
"plugins": [
|
|
["transform-class-properties", { "loose": true }],
|
|
"transform-object-rest-spread"
|
|
]
|
|
};
|
|
|
|
module.exports = {
|
|
// Tell Webpack which file kicks off our app.
|
|
entry: {
|
|
main: path.resolve(__dirname, 'rhodecode/public/js/src/components/index.js'),
|
|
},
|
|
output: {
|
|
filename: 'rhodecode-components.js',
|
|
path: path.resolve(destinationDirectory)
|
|
},
|
|
// Tell Webpack which directories to look in to resolve import statements.
|
|
// Normally Webpack will look in node_modules by default but since we're overriding
|
|
// the property we'll need to tell it to look there.
|
|
resolve: {
|
|
modules: [
|
|
path.resolve(__dirname, 'node_modules'),
|
|
]
|
|
},
|
|
// These rules tell Webpack how to process different module types.
|
|
// Remember, *everything* is a module in Webpack. That includes
|
|
// CSS, and (thanks to our loader) HTML.
|
|
module: {
|
|
rules: [
|
|
{
|
|
test: /style-lit.css/,
|
|
use: 'raw-loader'
|
|
},
|
|
{
|
|
// Babel-loader for JS files
|
|
test: /\.js$/,
|
|
exclude: /node_modules/,
|
|
use: {loader: 'babel-loader', options: babelRCOptions}
|
|
},
|
|
{
|
|
test: /intl-messageformat.min.js/,
|
|
use: 'imports-loader?this=>window'
|
|
}
|
|
]
|
|
},
|
|
plugins: []
|
|
};
|