简体   繁体   English

Webpack Encore Zurb Foundation-sites 编译错误

[英]Webpack Encore Zurb Foundation-sites compilation error

I am trying to use Foundation-sites in a Symfony 4 application together with Webpack Encore.我正在尝试在 Symfony 4 应用程序中使用 Foundation-sites 以及 Webpack Encore。 When trying to compile the scss files I am getting the following error:尝试编译 scss 文件时,出现以下错误:

./node_modules/.bin/encore dev
Running webpack ...

 ERROR  Failed to compile with 1 errors                                                                                                   6:42:54 AM

 error  in ./assets/css/app.css

CssSyntaxError

(10:3) Unclosed bracket

   8 |      for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];
   9 |  }
> 10 | })(window, function(__WEBPACK_EXTERNAL_MODULE_jquery__) {
     |   ^
  11 | return /******/ (function(modules) { // webpackBootstrap
  12 | /******/     // The module cache
    at <anonymous>


 @ ./assets/js/app.js 9:0-24

My configuration is as follows:我的配置如下:

webpack.config.js webpack.config.js

var Encore = require('@symfony/webpack-encore');

if (!Encore.isRuntimeEnvironmentConfigured()) {
    Encore.configureRuntimeEnvironment(process.env.NODE_ENV || 'dev');
}

Encore
    // directory where compiled assets will be stored
    .setOutputPath('public/build/')
    // public path used by the web server to access the output path
    .setPublicPath('/build')

    .addEntry('app', './assets/js/app.js')

    .splitEntryChunks()

    .enableSingleRuntimeChunk()

    .cleanupOutputBeforeBuild()
    .enableBuildNotifications()
    .enableSourceMaps(!Encore.isProduction())
    // enables hashed filenames (e.g. app.abc123.css)
    .enableVersioning(Encore.isProduction())

    // enables @babel/preset-env polyfills
    .configureBabelPresetEnv((config) => {
        config.useBuiltIns = 'usage';
        config.corejs = 3;
    })

    // enables Sass/SCSS support
    .enableSassLoader(function (options) {
        options.sassOptions.includePaths = [
            '/vendor/zurb/foundation/scss'
        ];
        options.sassOptions.resolveUrlLoader= true;
    })


    .autoProvidejQuery()


;

module.exports = Encore.getWebpackConfig();

package.json package.json

{
    "devDependencies": {
        "@symfony/webpack-encore": "^0.30.0",
        "core-js": "^3.0.0",
        "node-sass": "^4.14.1",
        "regenerator-runtime": "^0.13.2",
        "sass-loader": "^8.0.2",
        "sass": "^1.26.5",
        "webpack-notifier": "^1.6.0"
    },
    "license": "UNLICENSED",
    "private": true,
    "scripts": {
        "dev-server": "encore dev-server",
        "dev": "encore dev",
        "watch": "encore dev --watch",
        "build": "encore production --progress"
    },
    "dependencies": {
        "foundation-sites": "^6.6.3",
        "jquery": "^3.5.1"
    }
}

app.css app.css

@import "~foundation-sites";

body {
    background-color: lightgray;
}

The import in app.css is wrong. app.css 中的导入错误。

By default it imports the Js and the error says “hey, you can't import js code into css”.默认情况下它会导入 Js 并且错误提示“嘿,你不能将 js 代码导入 css”。

So the correct import is:所以正确的导入是:

 @import "~foundation-sites/dist/css/foundation.css";

Or the min file:或最小文件:

@import "~foundation-sites/dist/css/foundation.min.css";

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

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