soraka
Version:
Soraka is a React packaging tool for dcloud.
102 lines (100 loc) • 2.62 kB
JavaScript
const path = require('path')
const webpack = require('webpack')
const utils = require('../utils')
const config = require('../config')
module.exports = {
context: config.SOURCE_PATH,
resolveLoader: {
modules: [
path.resolve(config.BIN_PATH, './node_modules'),
path.resolve(config.APP_PATH, './node_modules')
]
},
resolve: {
modules: [
path.resolve(config.BIN_PATH, './node_modules'),
path.resolve(config.APP_PATH, './node_modules')
],
extensions: ['.js', '.jsx', '.ts', '.tsx', '.vue', '.json'],
alias: config.alias
},
entry: config.entry,
// scripts: .js .ts .json .vue
// images: .png .jpg .gif .jpeg
// fonts: .ttf .eot .woff .woff2 .svg
// styles: .css .less .sass .scss .styl .stylus .postcss
// medias: .mp4 .mp3 .ogg
module: {
rules: [
// {
// test: /\.(js|jsx)$/,
// loader: 'eslint-loader',
// enforce: 'pre',
// include: [config.SOURCE_PATH],
// options: {
// formatter: require('eslint-friendly-formatter'),
// eslintPath: require.resolve('eslint'),
// }
// },
{
test: /\.(js|jsx)$/,
exclude: /node_modules/,
use: [{
loader: 'babel-loader',
options: {
babelrc: false,
presets: [require.resolve('babel-preset-react')]
}
}]
},
{
test: /\.tsx?$/,
use: [
{
loader: 'babel-loader',
options: {
babelrc: false,
presets: [require.resolve('babel-preset-react-app')],
plugins: [
[require.resolve('babel-plugin-import'), { libraryName: 'antd', style: 'css' }]
],
cacheDirectory: true
}
},
{
loader: 'awesome-typescript-loader'
}
]
},
{
enforce: 'pre',
test: /\.js$/,
loader: 'source-map-loader'
},
{
test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
loader: 'url-loader',
options: {
limit: 1000,
name: 'assets/images/[name].[hash:5].[ext]'
}
},
{
test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
loader: 'url-loader',
options: {
limit: 1000,
name: 'assets/images/[name].[hash:5].[ext]'
}
},
{
test: /\.(mp3|mp4|ogg)$/,
loader: 'url-loader',
options: {
limit: 1000,
name: 'assets/images/[name].[hash:5].[ext]'
}
}
]
}
}