UNPKG

rigger-cli

Version:

脚手架工具,用于初始化项目

108 lines (101 loc) 2.62 kB
var path = require('path') var config = require('../config') var utils = require('./utils') var projectRoot = path.resolve(__dirname, '../') var glob = require('glob'); function getEntry(globPath) { var entries = {}, basename, tmp, pathname; glob.sync(globPath).forEach(function (entry, index) { basename = path.basename(entry, path.extname(entry)); tmp = entry.split('/'); tmp.splice(0, 2); pathname = tmp.join('/').replace('.js', ''); // 正确输出js和html的路径 entries[pathname] = entry; }); return entries; } var entries = { app: './src/app.js' }; Object.assign(entries, getEntry('./src/module/**/*.js')); // 获得入口js文件 Object.assign(entries, getEntry('./src/config/**/*.js')); // 获得入口js文件 module.exports = { entry: entries, output: { path: config.build.assetsRoot, publicPath: process.env.NODE_ENV === 'production' ? config.build.assetsPublicPath : config.dev.assetsPublicPath, filename: '[name].js' }, resolve: { extensions: ['', '.js', '.vue'], fallback: [path.join(__dirname, '../node_modules')], alias: { 'src': path.resolve(__dirname, '../src'), 'assets': path.resolve(__dirname, '../src/assets'), 'components': path.resolve(__dirname, '../src/components'), 'env': path.resolve(__dirname, '../config/prod.env.js') } }, resolveLoader: { fallback: [path.join(__dirname, '../node_modules')] }, module: { // preLoaders: [ // { // test: /\.vue$/, // loader: 'eslint', // include: projectRoot, // exclude: /node_modules/ // }, // { // test: /\.js$/, // loader: 'eslint', // include: projectRoot, // exclude: /node_modules/ // } // ], loaders: [ { test: /\.vue$/, loader: 'vue' }, { test: /\.js$/, loader: 'babel', include: projectRoot, exclude: /node_modules/ }, { test: /\.json$/, loader: 'json' }, { test: /\.html$/, loader: 'vue-html' }, { test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, loader: 'url', query: { limit: 1, name: utils.assetsPath('img/[name].[ext]') } }, { test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, loader: 'url', query: { limit: 1, name: utils.assetsPath('fonts/[name].[ext]') } } ] }, eslint: { formatter: require('eslint-friendly-formatter') }, vue: { loaders: utils.cssLoaders() } };