From 73e6916dfb4956e733be0542bb3f8bf87fd89925 Mon Sep 17 00:00:00 2001 From: lyh <925863403@qq.com> Date: 星期五, 12 九月 2025 17:16:07 +0800 Subject: [PATCH] 起落架DNC初始化代码 --- build/utils.js | 98 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 98 insertions(+), 0 deletions(-) diff --git a/build/utils.js b/build/utils.js new file mode 100644 index 0000000..72bd579 --- /dev/null +++ b/build/utils.js @@ -0,0 +1,98 @@ +'use strict'; +const path = require('path'); +const config = require('../config'); +const ExtractTextPlugin = require('extract-text-webpack-plugin'); +const pkg = require('../package.json'); + +exports.assetsPath = function (_path) { + const assetsSubDirectory = process.env.NODE_ENV === 'production' + ? config.build.assetsSubDirectory + : config.dev.assetsSubDirectory + return path.posix.join(assetsSubDirectory, _path) +}; + +exports.cssLoaders = function (options) { + options = options || {}; + + const cssLoader = { + loader: 'css-loader', + options: { + sourceMap: options.sourceMap + } + }; + + var postcssLoader = { + loader: 'postcss-loader', + options: { + sourceMap: options.sourceMap + } + }; + + // generate loader string to be used with extract text plugin + function generateLoaders (loader, loaderOptions) { + const loaders = options.usePostCSS ? [cssLoader, postcssLoader] : [cssLoader]; + if (loader) { + loaders.push({ + loader: loader + '-loader', + options: Object.assign({}, loaderOptions, { + sourceMap: options.sourceMap + }) + }) + } + + // Extract CSS when that option is specified + // (which is the case during production build) + if (options.extract) { + return ExtractTextPlugin.extract({ + use: loaders, + fallback: 'vue-style-loader' + }) + } else { + return ['vue-style-loader'].concat(loaders) + } + } + + // https://vue-loader.vuejs.org/en/configurations/extract-css.html + return { + css: generateLoaders(), + postcss: generateLoaders(), + less: generateLoaders('less'), + sass: generateLoaders('sass', { indentedSyntax: true }), + scss: generateLoaders('sass'), + stylus: generateLoaders('stylus'), + styl: generateLoaders('stylus') + } +}; + +// Generate loaders for standalone style files (outside of .vue) +exports.styleLoaders = function (options) { + const output = []; + const loaders = exports.cssLoaders(options); + for (const extension in loaders) { + const loader = loaders[extension]; + output.push({ + test: new RegExp('\\.' + extension + '$'), + use: loader + }) + } + return output +}; + +exports.createNotifierCallback = function () { + const notifier = require('node-notifier'); + + return (severity, errors) => { + if (severity !== 'error') { + return + } + const error = errors[0]; + + const filename = error.file && error.file.split('!').pop(); + notifier.notify({ + title: pkg.name, + message: severity + ': ' + error.name, + subtitle: filename || '', + icon: path.join(__dirname, 'logo.png') + }) + } +}; -- Gitblit v1.9.3