Vue-cli项目中引入外部/第三方css/js/less文件具体步骤

本文介绍如何使用Webpack进行项目配置,包括安装必要的依赖库、设置加载规则等步骤,以实现CSS、JS及LESS等资源的有效加载。

例子中css文件采用bootstrap.css,js文件采用jQuery,less文件用less.less(自定义文件);

步骤一:安装webpack

cnpm install webpack -g

步骤二:在src/assets下面新建css、js、less、fonts文件夹,并放入对应文件。

将bootstrap.css放入css目录下,bootstrap.min.js放入js文件下,fonts字体放入fonts目录下

步骤三:安装js依赖

cnpm install jquery --save-dev

步骤四:安装css依赖

cnpm install style-loader --save-dev

cnpm install css-loader --save-dev

cnpm install file-loader --save-dev

注:--save是对生产环境所需依赖的声明(开发应用中使用的框架,库),--save-dev是对开发环境所需依赖的声明(构建工具,测试工具).正常使用npm install时,会下载dependenciesdevDependencies中的模块,当使用npm install --production或者注明NODE_ENV变量值为production时,只会下载dependencies中的模块

步骤五:安装less依赖

npm install less less-loader --save

步骤六:修改build/webpack.base.conf.js文件

(1)在开头引入webpack(后面的plugins那里需要)

var  webpack = require('webpack')

(2)添加jquery插件,

在module.exports = {  entry: {app:'./src/main.js'},

后面加

plugins: [

  new webpack.ProvidePlugin({

    $: "jquery",

    jQuery: "jquery"

  })

],

(3)设置路径

把resolve里面的

alias: {'vue$':'vue/dist/vue.common.js','src': path.resolve(__dirname,'../src'),'assets': path.resolve(__dirname,'../src/assets'),'components': path.resolve(__dirname,'../src/components')}

改成

alias: {

'vue$': 'vue/dist/vue.common.js',

'src': path.resolve(__dirname, '../src'),

'assets': path.resolve(__dirname, '../src/assets'),

'components': path.resolve(__dirname, '../src/components'),

jquery: "jquery"

}

(4)配置loader加载依赖,

在修改module里面

{

test: /\.js$/,

loader: 'babel-loader',

exclude: /node_modules/

},

{

test: /\.css$/,

loader: "style-loader!css-loader",

},

{

test: /\.less$/,

loader: "style-loader!css-loader!less-loader",

},

注意:如果utils.js文件里面已经添加了less、css这里不用添加上面后两个test了,否则会报错!!!


(5)配置字体loader加载依赖

{test: /\.svg(\?v=\d+\.\d+\.\d+)?$/, loader: 'file-loader?mimetype=image/svg+xml'},

{test: /\.woff(\?v=\d+\.\d+\.\d+)?$/, loader: "file-loader?mimetype=application/font-woff"},

{test: /\.woff2(\?v=\d+\.\d+\.\d+)?$/, loader: "file-loader?mimetype=application/font-woff"},

{test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/, loader: "file-loader?mimetype=application/octet-stream"},

{test: /\.eot(\?v=\d+\.\d+\.\d+)?$/, loader: "file-loader"}

步骤六:接着修改 src文件夹下面的main.js文件,打开文件之后在顶部加入

import'./assets/css/bootstrap.css'

import'./assets/js/bootstrap.min.js'

import'./assets/less/less.less'

现在就可正常使用css、js

(本文是为方便记下步骤转载,用过有效)



在使用 Vue 和相关加载器处理 `.vue` 文件时,出现 `TypeError: this.getOptions is not a function` 错误,通常与加载器版本不兼容有关,尤其是在 Vue CLI 和 Webpack 版本不匹配的情况下。以下是详细的分析与解决方案: ### 错误原因 该错误通常出现在使用 `sass-loader` 或 `less-loader` 时,其版本与当前项目中 Webpack 的版本不兼容。例如: - `sass-loader@11.0.0` 需要 `webpack@5.0.0`,而 `@vue/cli@4.5.0` 使用的是 `webpack@4`,导致 `this.getOptions is not a function` 错误[^1]。 - 类似地,`less-loader` 的高版本也可能与 Webpack 4 不兼容,从而引发同样的错误[^2]。 ### 解决方案 #### 1. 降级加载器版本 为了兼容 `webpack@4`,需要将 `sass-loader` 或 `less-loader` 的版本降级至与 Webpack 4 兼容的版本: - **对于 `sass-loader`**:使用版本低于 `11.0.0`,例如 `10.3.2`。 - **对于 `less-loader`**:使用版本 `4.1.0`,这是一个与 Webpack 4 稳定兼容的版本[^4]。 ```bash npm install sass-loader@10.3.2 -D npm install less-loader@4.1.0 -D ``` #### 2. 配置 Webpack 规则 在 `webpack.config.js` 文件中,确保加载器的配置正确,并且顺序无误。以 `less-loader` 为例,需添加以下规则: ```javascript module: { rules: [ { test: /\.less$/, use: [ 'style-loader', 'css-loader', 'less-loader' // 确保版本与 Webpack 兼容 ] } ] } ``` #### 3. 清理缓存并重新安装依赖 在修改版本后,建议清除 `node_modules` 和 `package-lock.json`,然后重新安装依赖: ```bash rm -rf node_modules package-lock.json npm install ``` #### 4. 检查 Vue CLI 版本 如果使用的是 `@vue/cli@4.5.0`,它默认使用 Webpack 4,因此在升级加载器版本之前,确保 Vue CLI 和 Webpack 的兼容性。如果计划升级 Webpack 至 5,则需同步升级 Vue CLI 到兼容版本(如 `@vue/cli@5.0.0`)。 ### 示例代码 以下是一个完整的 `webpack.config.js` 示例片段,展示了如何配置 `less-loader` 以避免此错误: ```javascript const path = require('path'); module.exports = { entry: './src/main.js', output: { filename: 'bundle.js', path: path.resolve(__dirname, 'dist') }, module: { rules: [ { test: /\.less$/, use: [ 'style-loader', 'css-loader', 'less-loader' // 使用兼容版本,如 less-loader@4.1.0 ] } ] } }; ``` ### 总结 `TypeError: this.getOptions is not a function` 错误通常由加载器与 Webpack 不兼容引起。解决方法包括降级加载器版本、配置 Webpack 规则、清理缓存并重新安装依赖。确保所有依赖版本之间的兼容性是避免此类错误的关键。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值