diff --git a/packages/vue-cli-plugin-uni/lib/app-plus/index.js b/packages/vue-cli-plugin-uni/lib/app-plus/index.js index 2be242be23c98f76895c96974b88ef6125677f03..ae0f24351340d439d73de59b2127cf9deb050546 100644 --- a/packages/vue-cli-plugin-uni/lib/app-plus/index.js +++ b/packages/vue-cli-plugin-uni/lib/app-plus/index.js @@ -110,6 +110,15 @@ const v3 = { }] }) + if (isAppService) { + rules.push({ + test: [/\.css$/, /\.p(ost)?css$/, /\.scss$/, /\.sass$/, /\.less$/, /\.styl(us)?$/], + use: [{ + loader: path.resolve(__dirname, '../../packages/webpack-uni-app-loader/service/style.js') + }] + }) + } + const entry = {} if (isAppService) { entry['app-service'] = path.resolve(process.env.UNI_INPUT_DIR, getMainEntry()) @@ -281,6 +290,12 @@ const v3 = { } } + if (isAppService) { // service 层移除 css 相关 + ['css', 'postcss', 'scss', 'sass', 'less', 'stylus'].forEach(cssLang => { + webpackConfig.module.rules.delete(cssLang) + }) + } + webpackConfig.plugins.delete('hmr') webpackConfig.plugins.delete('html') webpackConfig.plugins.delete('copy') diff --git a/packages/vue-cli-plugin-uni/packages/webpack-uni-app-loader/service/style.js b/packages/vue-cli-plugin-uni/packages/webpack-uni-app-loader/service/style.js new file mode 100644 index 0000000000000000000000000000000000000000..9e0897e5b9f64a069c082375b7f347c4a35eb83e --- /dev/null +++ b/packages/vue-cli-plugin-uni/packages/webpack-uni-app-loader/service/style.js @@ -0,0 +1,6 @@ +module.exports = function(source, map) { + console.warn( + `App平台 v3 模式暂不支持在 js 文件中引用"${this._module && this._module.rawRequest || this.resourcePath}"` + ) + return '' +} diff --git a/packages/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/main.js b/packages/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/main.js index a2ee5fe0c79585302930a0e2acb2eda09cc0ccff..1e1abc1d32368375e292c3e2ba8312afc34f57a6 100644 --- a/packages/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/main.js +++ b/packages/vue-cli-plugin-uni/packages/webpack-uni-app-loader/view/main.js @@ -103,7 +103,7 @@ module.exports = function(source, map) { import 'uni-pages?${JSON.stringify({type:'view'})}' function initView(){ ${getStylesCode(this)} - injectStyles() + typeof injectStyles ==='function' && injectStyles() ${getDefineComponents(parseComponents(source, traverse)).join('\n')} UniViewJSBridge.publishHandler('webviewReady') }