npm - postCss 不适用于 laravel 外的 laravel-mix、scss 和 tailwindcss

标签 npm laravel-mix postcss tailwind-css

我在优化 tailwindcss 时遇到问题与 postCss使用 laravel-mixScss . npm run dev生成正确的css。但是,生产版本 npm run prod不导出我在 HTML 中使用的类模板。

包.json

{
  "name": "school",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "dev": "npm run development",
    "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
    "watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
    "watch-poll": "npm run watch -- --watch-poll",
    "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
    "prod": "npm run production",
    "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "webpack": "^4.42.1",
    "webpack-cli": "^3.3.11",
    "webpack-dev-server": "^3.10.3"
  },
  "devDependencies": {
    "tailwindcss": "^1.2.0",
    "cross-env": "^7.0.2",
    "laravel-mix": "^5.0.4",
    "laravel-mix-purgecss": "^5.0.0-rc.1",
    "sass": "^1.26.3",
    "sass-loader": "^8.0.2",
    "vue-template-compiler": "^2.6.11"
  }
}

laravel-mix.js
const mix = require('laravel-mix');
const tailwindcss = require('tailwindcss');
require('laravel-mix-purgecss');


mix.js('src/js/app.js', 'public/js')
    .sass('src/sass/app.scss', 'public/css')
    .options({
        processCssUrls: false,
        postCss: [tailwindcss('./tailwind.config.js')],
    })
    .purgeCss();

源代码/应用程序.scss

I have tried without purgecss ignore and that too doesn't make any difference.


/* purgecss start ignore */
@tailwind  base;
@tailwind  components;
/* purgecss end ignore */
@tailwind  utilities;
//@tailwind screens;

索引.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="public/css/app.css">
    <script src="public/js/app.js"></script>
</head>
<body class="bg-teal-400">

<div class="container">
    <h1 class="text-6xl text-orange-500">Hello</h1>
</div>

</body>
</html>

请看 this repository对于整个源代码。

Question:

How can I optimize taliwindcss using scss, laravel-mix with postCss outside / Non - Laravel project?

最佳答案

您可以将 PostCSS 插件传递到 sass您可以在以下代码示例中看到的方法。

// webpack.mix.js
let mix = require('laravel-mix');

mix
  .sass('assets/scss/app.scss', 'dist', {}, [
    require("tailwindcss"),
  ])
  .setPublicPath('web')
;

关于npm - postCss 不适用于 laravel 外的 laravel-mix、scss 和 tailwindcss,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61290702/

相关文章:

node.js - 中间 suv-patch Node.js 包版本

node.js - 模块构建失败(来自 ./node_modules/html-loader/dist/cjs.js):

linux - `npm uninstall` 在没有明显事件的情况下挂起(或非常慢)

node.js - npm 无法发布我的模块

javascript - Tempus Dominus Bootstrap4 需要 moment.js。 (日期时间选择器)

javascript - 如何在 Laravel Mix 生成的产品中包含缩小的 javascript 文件?

webpack - 将 postcss-loader 从 3.0.0 迁移到 4.0.2 会导致错误 : [object Object] is not a PostCSS plugin

Webpack 和 Precss 不会在 @import 文件更改时重新加载

postcss - 找不到模块 precss