1. 问题描述
最近在使用vuecli创建uniapp的过程中,出现了错误,无法正常使用。具体错误如下:
ERROR TypeError: Cannot read property 'trim' of undefined
at normalizeOptions (/xxx/node_modules/@vue/cli-service/lib/util/resolveLoaderOptions.js:39:39)
at Object.resolveLoader (internal/modules/cjs/loader.js:587:5)
at Object.loader (/xxx/node_modules/@vue/cli-plugin-typescript/node_modules/ts-loader/dist/index.js:20:31)
at resolveLoader (/xxx/node_modules/webpack/lib/NormalModule.js:316:19)
at /xxx/node_modules/webpack/lib/NormalModule.js:358:3
at context.callback (/xxx/node_modules/webpack/lib/NormalModule.js:129:23)
at /xxx/node_modules/webpack/lib/NormalModule.js:476:14
at /xxx/node_modules/webpack/lib/NormalModule.js:570:5
at /xxx/node_modules/loader-runner/lib/LoaderRunner.js:399:11
at /xxx/node_modules/loader-runner/lib/LoaderRunner.js:251:18
at context.callback (/xxx/node_modules/loader-runner/lib/LoaderRunner.js:124:13)
at Promise.resolve.then.then.catch.err (/xxx/node_modules/@vue/cli-service/node_modules/enhanced-resolve/lib/Resolver.js:231:11)
at
2. 分析问题
从错误提示来看,问题出现在resolveLoaderOptions.js文件的第39行。经过查看该文件的代码,发现这个问题与相关的loader配置有关。在vuecli创建uniapp时,默认会引入一些loader,这些loader都需要进行一些相关的配置,比如ts-loader等。因此,我们需要对这些loader进行适当的配置。
3. 解决问题
要解决这个问题,有两种常见的方式:
3.1 修改loader配置
我们可以手动修改项目中的loader配置文件,对其中的loader进行适当的配置。打开项目目录下的vue.config.js文件,可以看到其中的loader配置:
module.exports = {
chainWebpack: config => {
config.module
.rule("ts")
.use("ts-loader")
.loader("ts-loader")
.tap(options => {
options = Object.assign(options, { transpileOnly: true });
return options;
});
}
};
可以看到,这里对ts-loader进行了配置,将transpileOnly选项设置为true。我们可以根据自己的实际情况,对相应的loader进行合适的配置,从而解决这个问题。
3.2 更新vuecli
如果手动修改loader配置不方便,我们也可以尝试更新vuecli,从而解决这个问题。在终端中运行以下命令来更新vuecli:
npm install -g @vue/cli
如果已经安装了vuecli,请先卸载之前的版本,再进行安装。安装完成后,重新创建uniapp应用程序,应该就可以正常使用了。
4. 总结
在使用vuecli创建uniapp时,如果遇到了上述问题,可以尝试手动调整loader配置或者更新vuecli版本。在解决问题的过程中,需要了解相应的loader配置和vuecli的相关知识,并对其进行灵活的运用。最后,希望本篇文章对大家有所帮助,谢谢!