1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/caomei-studio-wxapp-boilerplate

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
webpack.config.babel.js 3.3 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
炒饭 Отправлено 15.01.2018 16:50 84fcc05
import { resolve } from 'path';
import { DefinePlugin, EnvironmentPlugin, IgnorePlugin, optimize } from 'webpack';
import WXAppWebpackPlugin, { Targets } from 'wxapp-webpack-plugin';
import StylelintPlugin from 'stylelint-webpack-plugin';
import DashboardPlugin from 'webpack-dashboard/plugin';
const { NODE_ENV, LINT, NO_LINT } = process.env;
const isDev = NODE_ENV !== 'production';
const shouldLint = (!isDev || (!!LINT && LINT !== 'false')) && !NO_LINT;
const relativeFileLoader = (ext = '[ext]') => [
{
loader: 'file-loader',
options: {
publicPath: '',
useRelativePath: true,
name: `[name].${ext}`,
emitFile: false,
},
},
{
loader: 'file-loader',
options: {
publicPath: '',
context: resolve('src'),
name: `[path][name].${ext}`,
},
},
];
export default (env = {}) => {
const target = env.target || 'Wechat';
const isWechat = env.target !== 'Alipay';
const isAlipay = !isWechat;
return {
entry: {
app: [
`es6-promise/dist/es6-promise.auto${isDev ? '.min' : ''}.js`,
'./src/utils/bomPolyfill.js',
'./src/app.js',
],
},
output: {
filename: '[name].js',
publicPath: '/',
path: resolve('dist', isWechat ? 'wechat' : 'alipay'),
},
target: Targets[target],
resolve: {
modules: [resolve(__dirname, 'src'), 'node_modules'],
},
watchOptions: {
ignored: /dist|manifest/,
aggregateTimeout: 300,
},
module: {
rules: [
{
test: /\.js$/,
include: /src/,
exclude: /node_modules/,
use: [
'babel-loader',
shouldLint && 'eslint-loader',
].filter(Boolean),
},
{
test: /\.wxs$/,
include: /src/,
use: [
...relativeFileLoader(),
'babel-loader',
shouldLint && 'eslint-loader',
].filter(Boolean),
},
{
test: /\.scss$/,
include: /src/,
use: [
...relativeFileLoader('wxss'),
{
loader: 'sass-loader',
options: {
includePaths: [
resolve('src', 'styles'),
resolve('src'),
],
},
},
],
},
{
test: /\.(json|png|jpg|gif|wxss)$/,
include: /src/,
use: relativeFileLoader(),
},
{
test: /\.wxml$/,
include: resolve('src'),
use: [
...relativeFileLoader(isWechat ? 'wxml' : 'axml'),
{
loader: 'wxml-loader',
options: {
root: resolve('src'),
},
},
],
},
],
},
plugins: [
new EnvironmentPlugin({
NODE_ENV: 'development',
}),
new DefinePlugin({
__DEV__: isDev,
__WECHAT__: isWechat,
__ALIPAY__: isAlipay,
wx: isWechat ? 'wx' : 'my',
}),
new WXAppWebpackPlugin({
clear: !isDev,
}),
new optimize.ModuleConcatenationPlugin(),
new IgnorePlugin(/vertx/),
isDev && new DashboardPlugin(),
shouldLint && new StylelintPlugin(),
].filter(Boolean),
devtool: isDev ? 'source-map' : false,
};
};

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/caomei-studio-wxapp-boilerplate.git
git@api.gitlife.ru:oschina-mirror/caomei-studio-wxapp-boilerplate.git
oschina-mirror
caomei-studio-wxapp-boilerplate
caomei-studio-wxapp-boilerplate
master