gpt4 book ai didi

javascript - 网页包 4 : How to extract CSS from Node module?

转载 作者:行者123 更新时间:2023-11-28 00:56:09 25 4
gpt4 key购买 nike

如何将已编译的 JS 文件中的 CSS 提取到我自己的 application.css 中?我想用一个例子来详细说明这个问题:

使用 Webpack 4,Rails webpacker和 Vue.js 我已经建立了一个 SPA。我添加了外部 Vue 组件 Vue-infinite-loading .该组件提供一个 dist JS file我添加了:

application.js 中:

import InfiniteLoading from 'vue-infinite-loading'

此 JS 包含 CSS 并将样式添加到 <head>标记。我正在寻找一种在生产环境中避免这种情况的方法。我想将 CSS 移动到我自己的 application.css文件(由 Webpack 生成)。

enter image description here

我发现了以下(错误的)解决方案:

外部组件使用LESS,我在元素中没有使用。但是如果我将 LESS 添加到我的元素中,我可以使用组件的源文件并使用 MiniCssExtractPlugin 来提取样式:

application.js 中:

import InfiniteLoading from 'vue-infinite-loading/src/index'

environment.js中:

....
const isProduction = process.env.NODE_ENV === 'production'
const MiniCssExtractPlugin = require('mini-css-extract-plugin')
environment.loaders.append('less', {
test: /\.less$/,
use: [
isProduction ? MiniCssExtractPlugin.loader : 'style-loader',
'css-loader',
'less-loader'
],
})
....

但是将 LESS 添加到我的元素中只是为了从外部组件中提取样式对我来说似乎不合适。有没有更好的办法?

是否可以从 JS 文件中提取样式?

最佳答案

您不需要添加 less 来提取您的 css。

const isProduction = process.env.NODE_ENV === 'production'
const MiniCssExtractPlugin = require('mini-css-extract-plugin')
environment.loaders.append('css', {
test: /\.css$/,
use: [
isProduction ? MiniCssExtractPlugin.loader : 'style-loader',
'css-loader',
],
})

关于javascript - 网页包 4 : How to extract CSS from Node module?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52929012/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com