Vue文件中的Sass未编译

Posted

技术标签:

【中文标题】Vue文件中的Sass未编译【英文标题】:Sass within Vue file not compiling 【发布时间】:2017-10-28 13:28:16 【问题描述】:

通过npm dev watchnpm dev run 编译sass 时出现错误。

npm ERR! Darwin 16.5.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "run" "development"
npm ERR! node v6.9.5
npm ERR! npm  v3.10.10
npm ERR! code ELIFECYCLE
npm ERR! @ development: `cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js`
npm ERR! Exit status 2
npm ERR!
npm ERR! Failed at the @ development script 'cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the  package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR!     /Users/mike/code/chatroom/npm-debug.log

问题在于我在 Chat.vue 文件中编写的 sass。我对 npm 之类的前端工具没有那么丰富的经验,所以我真的不知道该尝试什么。我尝试按照此处 (https://github.com/vuejs/vue-loader/issues/363) 的说明运行 npm install sass-loader node-sass webpack --save-dev,但并没有什么不同。

文件的实际内容与 .vue 文件中的几乎所有样式内容都无关。

<style lang="scss">
    .chat 
        background-color: #fff;
        border: 1px solid #D3E0E9;
        border-radius: 3px;

        &__form 
            border-top: 1px solid #D3E0E9;
            padding: 10px;

            &-input 
                width:
                border: 1px solid #D3E0E9;
                padding: 5px 10px;
                outline: none;
            

            &-helptext 
                color: #aaa;
            
        
    
</style>

NPM 版本 3.10.10 节点版本 6.9.5

我的 webpack-dev-server/client/webpack.config.js 文件如下;

module.exports = 
    module: 
        rules: [
            
                test: /\.pug$/,
                use: [
                    "pug-loader?self",
                ]
            ,
            
                test: /\.css$/,
                use: [
                    "style-loader",
                    "css-loader"
                ],
            
        ]
    
;

【问题讨论】:

github.com/vuejs/vue-loader/issues/363#issuecomment-297196238 和 vuejs-templates.github.io/webpack/pre-processors.html 呢?? 你能发布你的 webpack 配置文件吗? @TinusWagner 完成 【参考方案1】:

见https://vue-loader.vuejs.org/en/configurations/pre-processors.html


  test: /\.vue$/,
  loader: 'vue-loader',
  options: 
    loaders: 
      scss: 'vue-style-loader!css-loader!sass-loader', // <style lang="scss">
      sass: 'vue-style-loader!css-loader!sass-loader?indentedSyntax' // <style lang="sass">
    
  

还包括一个 SCSS 规则


  test: /\.s(a|c)ss$/,
  use: [
    "style-loader",
    "css-loader",
    "sass-loader"
  ]

【讨论】:

没有区别 如果您还没有,请使用 ['style-loader', 'css-loader', 'sass-loader'] 为 .sass 和 .scss 文件添加新规则。 怎么样?我不知道语法 已更新。尝试在您的规则下添加 SASS/SCSS 规则。【参考方案2】:

npm install --save-dev sass-loader style-loader css-loader

也许,你还没有安装'style-loader'和'css-loader'

【讨论】:

没有区别

以上是关于Vue文件中的Sass未编译的主要内容,如果未能解决你的问题,请参考以下文章

带有 SASS 的 Webpack-simple + vue-cli - 无法编译?

预编译时的 Sass 未定义变量

Storybook + Vue.js + Sass + npm7 工作区无法编译

资产预编译期间未找到文件错误

Sencha Sass 文件编译问题

如何使用 Gulp 编译不同目录中的 SASS 文件?