繁体   English   中英

Rails 7 sprockets-rails, not regenerating application.css

[英]Rails 7 sprockets-rails, not regenerating application.css

编辑: ./app/assets/builds/application.css是纱线的产品吗? 因为如果是这样,那么我需要重新考虑这个问题。 我正在调查它。

从 Rails 6 升级到 7 并使用

gem "jsbundling-rails" 
gem "sprockets-rails" 
gem "turbo-rails"

我在使用 css 资产管道时遇到问题。 ./app/assets/builds/application.css在我更改./app/assets/stylesheets/application.scss时没有得到更新

我认为我在使用 Leafletjs 格式时遇到了问题,我正在尝试为 leaflet 整理 css。 问题可能出在引导程序上,但我不这么认为。

我试图切换不同的.scss 文件。

// app/assets/stylesheets/application.scss
@import 'leaflet'; // node_module 
// files in app/assets/stylesheets/
@import 'custom';
@import 'static_pages';
@import 'streets';
@import 'leaflet.timeline';
@import 'leaflet.OpacityControls'; 

@import @import…是多余的吗? 换句话说,它们是自动添加的。 我就是这么理解的。 如果它是自动的,那么我必须删除 .scss 文件才能切换?

package.json

    {
      "license": "ISC",
      "main": "application.js",
      "dependencies": {
        "@babel/core": "^7.10.3",
        "@fortawesome/fontawesome-free": "^5.13.1",
        "@hotwired/stimulus": "^3.1.0",
        "@hotwired/turbo-rails": "^7.1.3",
        "@popperjs/core": "^2.11.6",
        "@rails/activestorage": "^7.0.3.1",
        "@rails/ujs": "^7.0.3.1",
        "bootstrap": "^4.5.0",
        "bootstrap-icons": "^1.9.1",
        "browserify": "^17.0.0",
        "core-js": "^3.6.5",
        "esbuild": "^0.15.7",
        "jquery": "^3.6.1",
        "jquery-ui": "^1.13.2",
        "leaflet": "^1.6.0",
        "leaflet-bing-layer": "^3.3.1",
        "leaflet-draw": "^1.0.4",
        "leaflet.control.opacity": "^1.6.0",
        "leaflet.timeline": "^1.4.3",
        "popper.js": "^1.16.1",
        "regenerator-runtime": "^0.13.5",
        "sass-loader": "^10.1.1",
        "turbolinks": "^5.2.0",
        "turf": "^3.0.14",
        "webpack": "^4.43.0"
      },
      "devDependencies": {
        "@babel/plugin-syntax-dynamic-import": "^7.8.3",
        "webpack-bundle-analyzer": "^3.8.0"
      },
      "scripts": {
        "webpack:analyze": "yarn webpack:build_json && yarn webpack:analyze_json",
        "webpack:build_json": "RAILS_ENV=${RAILS_ENV:-production} NODE_ENV=${NODE_ENV:-production} bin/webpack --profile --json > tmp/webpack-stats.json",
        "webpack:analyze_json": "webpack-bundle-analyzer tmp/webpack-stats.json public/packs",
        "build": "esbuild app/javascript/*.* --bundle --sourcemap --outdir=app/assets/builds --public-path=assets",
        "build:css": "sass ./app/assets/stylesheets/application.bootstrap.scss:./app/assets/builds/application.css --no-source-map --load-path=node_modules"
      }
    }

@import... 是多余的吗? 换句话说,它们是自动添加的吗? 不,您明确需要添加它们。

./app/assets/builds/application.css 是纱线的产物吗? 肯定是。

我用一个新的 Rails 7 应用程序解决了这个问题,它不会有任何来自以前版本的 Rails 的包袱。

所以现在我可以继续解决我的 leaflet css 问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM