为什么基础网站不再编译6.3.x与早午餐?

时间:2017-01-08 22:56:21

标签: sass zurb-foundation elixir phoenix-framework brunch

当我尝试使用最新的基础网站包时, 我得到了一堆新的scss编译错误。 如果有人有一些线索,那就非常感激。

重现的步骤:

版本

elixir 1.4.0
phoenix 1.2.1
node 6.4.2

npm packages

"brunch": "~2.9.1",
"css-brunch": "~2.6.1",
"foundation-sites": "^6.3.0",

编译错误

08 Jan 23:48:36 - info: compiling
08 Jan 23:48:37 - error: Compiling of web/static/scss/application.scss failed. Error: It's not clear which file to import for '@import "../_vendor/normalize-scss/sass/normalize"'.
       Candidates:
         ../_vendor/normalize-scss/sass/normalize
         ../_vendor/normalize-scss/sass/_normalize.scss
       Please delete or rename all but one of these files.
        on line 9 of node_modules/foundation-sites/scss/foundation.scss
>> @import "../_vendor/normalize-scss/sass/normalize";
   ^

1 个答案:

答案 0 :(得分:0)

使用此设置,我可以解决问题:) 希望它可以保护其他几个小时的搜索。 对这个家伙的称赞:https://elixirforum.com/t/how-to-setup-foundation-sites-6-brunch-phoenix-app/2704/3

brunch-config需要一些调整,因为,基础导致一些奇怪的行为与本机lib-sass。我想,使用ruby编译器,没有路径问题。

因此,当你从package.json和brunch-config中明确地包含它时,可以找到并导入normaliz-scss,即使它从基础失败。

  plugins: {
    babel: {
      presets: ['es2015', 'es2016', 'react'],
      // Do not use ES6 compiler in vendor code
      ignore: [/web\/static\/vendor/],
    },
    sass: {
      mode: 'native',
      precision: 8,
      options: {
        includePaths: [
          'node_modules/normalize-scss/sass',
          'node_modules/foundation-sites/scss',
          'node_modules/motion-ui/src',
        ],
      },
    },
    postcss: {
      processors: [
        require('autoprefixer')(['last 8 versions']),
        require('csswring')()
      ]
    },
  },