1
0
mirror of synced 2025-11-06 04:21:11 +08:00
Files
eruda/build/webpack.base.js
redhoodsu cbebcc2c55 fix: ci
2024-07-09 11:37:26 +08:00

110 lines
2.7 KiB
JavaScript

const autoprefixer = require('autoprefixer')
const prefixer = require('postcss-prefixer')
const clean = require('postcss-clean')
const webpack = require('webpack')
const pkg = require('../package.json')
const path = require('path')
process.traceDeprecation = true
const banner = pkg.name + ' v' + pkg.version + ' ' + pkg.homepage
const postcssLoader = {
loader: 'postcss-loader',
options: {
plugins: [
prefixer({
prefix: '_',
ignore: [/luna-*/],
}),
autoprefixer,
clean(),
],
},
}
const rawLoader = {
loader: 'raw-loader',
options: {
esModule: false,
},
}
module.exports = {
entry: './src/index',
resolve: {
symlinks: false,
},
resolve: {
alias: {
axios: path.resolve(__dirname, '../src/lib/empty.js'),
micromark: path.resolve(__dirname, '../src/lib/micromark.js'),
},
},
devServer: {
static: {
directory: path.join(__dirname, '../test'),
},
port: 8080,
},
output: {
path: path.resolve(__dirname, '../dist'),
publicPath: '/assets/',
library: 'eruda',
libraryTarget: 'umd',
},
module: {
rules: [
{
test: /\.js$/,
include: [
path.resolve(__dirname, '../src'),
path.resolve(__dirname, '../node_modules/luna-console'),
path.resolve(__dirname, '../node_modules/luna-modal'),
path.resolve(__dirname, '../node_modules/luna-tab'),
path.resolve(__dirname, '../node_modules/luna-data-grid'),
path.resolve(__dirname, '../node_modules/luna-object-viewer'),
path.resolve(__dirname, '../node_modules/luna-dom-viewer'),
path.resolve(__dirname, '../node_modules/luna-text-viewer'),
path.resolve(__dirname, '../node_modules/luna-setting'),
path.resolve(__dirname, '../node_modules/luna-box-model'),
path.resolve(__dirname, '../node_modules/luna-notification'),
],
use: [
{
loader: 'babel-loader',
options: {
sourceType: 'unambiguous',
presets: ['@babel/preset-env'],
plugins: [
'@babel/plugin-transform-runtime',
'@babel/plugin-proposal-class-properties',
],
},
},
'eslint-loader',
],
},
{
test: /\.scss$/,
use: ['css-loader', postcssLoader, 'sass-loader'],
},
{
test: /\.css$/,
exclude: /luna-dom-highlighter/,
use: ['css-loader', postcssLoader],
},
{
test: /luna-dom-highlighter\.css$/,
use: [rawLoader],
},
],
},
plugins: [
new webpack.BannerPlugin(banner),
new webpack.DefinePlugin({
VERSION: '"' + pkg.version + '"',
}),
],
}