UNPKG

soraka

Version:

Soraka is a React packaging tool for dcloud.

66 lines (59 loc) 1.63 kB
const path = require('path') const config = require('../config') const extractTextPlugin = require('extract-text-webpack-plugin') // 解析静态文件路径 exports.assetsPath = (_path) => { let assetsDirectory = process.env.NODE_ENV === 'production' ? config.BUILD_ASSETS_PATH : config.SOURCE_ASSETS_PATH return path.resolve(assetsDirectory, _path) } exports.cssLoaders = (options = {}) => { let cssLoader = { loader: 'css-loader', options: { minimize: process.env.NODE_ENV === 'production', sourceMap: options.sourceMap } } let generateLoaders = (loader, loaderOptions) => { let loaders = [cssLoader] if (loader) { loaders.push({ loader: loader + '-loader', options: Object.assign({}, loaderOptions, { sourceMap: options.sourceMap }) }) } if (options.extract) { return extractTextPlugin.extract({ use: loaders, fallback: 'vue-style-loader' }) } else { return ['vue-style-loader'].concat(loaders) } } return { css: generateLoaders(), postcss: generateLoaders('postcss'), less: generateLoaders('less'), sass: generateLoaders('sass', { indentedSyntax: true }), scss: generateLoaders('sass'), stylus: generateLoaders('stylus'), styl: generateLoaders('stylus') } } exports.styleLoaders = (options) => { var output = [] var loaders = exports.cssLoaders(options) for (var extension in loaders) { var loader = loaders[extension] output.push({ test: new RegExp('\\.' + extension + '$'), use: loader }) } return output }