0

我正在尝试在我的 Vue 项目中更改 iView 的主题。我按照此链接中的步骤操作:

https://www.iviewui.com/docs/guide/theme-en

my-theme我在我的主项目文件夹中创建了一个文件夹。在其中,我有一个名为 的文件index.less,其中包含我的主题的样式。我还使用以下命令安装了 less-loader

npm install less-loader --save-dev

main.js然后,我在我的文件中导入了我的主题,如下所示:

import iView from 'iview';
import '../my-theme/index.less';

Vue.use(iView);

但是,当我尝试加载我的项目时,出现以下错误:

Failed to compile.

./my-theme/index.less (./node_modules/css-loader??ref--10-oneOf-3-1!./node_modules/postcss-loader/src??ref--10-oneOf-3-2!./node_modules/less-loader/dist/cjs.js??ref--10-oneOf-3-3!./my-theme/index.less)
Module build failed (from ./node_modules/less-loader/dist/cjs.js):
Error: Cannot find module 'less'
    at Function.Module._resolveFilename (module.js:547:15)
    at Function.Module._load (module.js:474:25)
    at Module.require (module.js:596:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/Users/myusername/myapp/node_modules/less-loader/dist/index.js:8:36)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)
    at Module.require (module.js:596:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/Users/myusername/myapp/node_modules/less-loader/dist/cjs.js:3:18)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)

https://pastebin.com/wRSP65bX

我该如何解决这个问题?谢谢你的帮助。

更新

我也less使用npm install less --save. 现在我得到这个错误:

Failed to compile.

./my-theme/index.less (./node_modules/css-loader??ref--10-oneOf-3-1!./node_modules/postcss-loader/src??ref--10-oneOf-3-2!./node_modules/less-loader/dist/cjs.js??ref--10-oneOf-3-3!./my-theme/index.less)
Module build failed (from ./node_modules/less-loader/dist/cjs.js):


// https://github.com/ant-design/ant-motion/issues/44
.bezierEasingMixin();
^
Inline JavaScript is not enabled. Is it set in your options?
      in /Users/myusername/myapp/node_modules/iview/src/styles/color/bezierEasing.less (line 110, column 0)
4

1 回答 1

0

您需要在 vue.config.js 中启用 javascript loaderOptions

如果您的项目的根文件夹中没有vue.config.js文件,让我们创建此文件并粘贴以下代码:

module.exports = {
    css: {
        loaderOptions: {
            less: {
                javascriptEnabled: true
            }
        }
    }
};

否则,您只需将此代码放入vue.config.js文件中。您的文件现在看起来像这样:

module.exports = {
    ...// other options
    ...
    css: {
        loaderOptions: {
            less: {
                javascriptEnabled: true
            }
        }
    }
    ...
    ...
};
于 2020-02-10T10:28:29.800 回答