webpack中的~

比如我们可以看到一些css文件中有这样的代码:

@import ‘~antd/dist/antd.css‘;...

那么,这个 ~ 起什么作用呢?

首先,我们来看一下URL转换规则

1、如果URL是一个绝对路径(例如 /images/foo.png),它将会保留不变。

2、如果URL以 . 开头,它会作为一个相对模块请求被解析且基于你的文件系统中的目录结构进行解析。

3、如果URL以 ~ 开头,其后任何的内容都会作为一个模块请求被解析。这意味着你甚至可以引用node模块中的资源:

<img src="~some-npm-package/foo.png" />

4、如果URL以 @ 开头,它也会作为一个模块请求被解析。它的用处在于可以在webpack中设置别名。

其实和import,require没区别,只是这种方式不能写到css或者html里面,就写成了~ (css /less/ sass没有用于导入相关文件的特殊语法,
所以这里添加的~实际上是为了告诉webpack这里是从根目录开始寻找,而不是相对目录。)

Webpack 会将以 ~ 符号作为前缀的路径视作依赖模块而去解析

‘~PATH‘将PATH里的内容作为模块进行查询,比如在assert里的内容,可以这样显式引用

参考链接:

http://www.imooc.com/wenda/detail/522672

https://juejin.im/post/5bf532a1518825741f626355

原文地址:https://www.cnblogs.com/zyl-Tara/p/12552067.html

时间: 2024-08-01 04:29:11

webpack中的~的相关文章

Webpack中的sourcemap

Webpack中sourcemap的配置 sourcemap是为了解决开发代码与实际运行代码不一致时帮助我们debug到原始开发代码的技术.尤其是如今前端开发中大部分的代码都经过编译,打包等工程化转换.比如开发环境下用scss写样式, 想在浏览器中在线编辑css那样编辑scss就不是那么容易了.从我自己看过的资料中, sourcemap的概念最早出现在12年, jquer1.9是较早支持sourcemap的库.这篇博客比较有代表性:Introduction to JavaScript Sourc

Webpack中的路径

webpack中涉及许多路径参数的配置.在此做个整理. context context是webpack编译时的基础目录,entry入口会相对于此目录查找. 若不配置,默认值是当前目录,webpack设置context.默认值代码: this.set("context", process.cwd()); 即webpack运行所在目录. context应该是绝对路径,假设入口是src/main.js,则可以设置 { context: path.resolve("./src&quo

在webpack中使用postcss之插件包precss

precss是一个预处理css的插件包,集成了很多postcss插件的功能,比如嵌套,变量,继承,混合,循环,判断.下面来介绍如何在webpack中使用precss.一.新建项目1.新建package.json #自动生成package.json文件 npm init 2.新建webpack.config.js module.exports = { entry: "./main.js", output: { path: __dirname, // __dirname是node.js中的

解决Webpack中提示syntax &#39;classProperties&#39; isn&#39;t currently enabled的错误

当我们使用了一些JavaScript的一些新特性的时候,但是有没有在webpack.config.js里面或者是.babelrc文件中配置相关插件,就可以解决了. error:Support for the experimental syntax 'classProperties' isn't currently enable 解决方案:安装如下插件 npm i -D @babel/plugin-proposal-class-properties 在babelrc中配置插件: options:

在webpack中配置vue.js

在webpack中配置vue.js 这里有两种在webpack中配置vue.js的方法,如下: 1.在main.js中引入vue的包: index.html: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,

webpack中使用wowjs和animate.css

animate.css 是一个来自国外的 CSS3 动画库,它预设了抖动(shake).闪烁(flash).弹跳(bounce).翻转(flip).旋转(rotateIn/rotateOut).淡入淡出(fadeIn/fadeOut)等多达 60 多种动画效果,几乎包含了所有常见的动画效果. 官网:https://daneden.github.io/animate.css github:https://github.com/daneden/animate.css WOW.js可以在页面向下滚动的

在webpack中区分环境变量

webpack 中的定义插件可以帮我们定义一些全局变量,使用方法如下: plugins: [ new webpack.DefinePlugin({ NODE_ENV: JSON.stringify('development') }) ] 在 webpack.DefinePlugin 中定义,传入对象作为参数,key 是名称,value 是值,在这里你需要注意 value 的表现形式,如果是个字符串 NODE_ENV: 'development' 在取环境变量的时候 NODE_ENV 代表的是 d

webpack中的hash、chunkhash和contenthash

这三个hash值都是webpack在打包的时候根据内部算法生成的一串字符串,总的来说最大的不同就是其囊括控制的范围大小不同,对应的控制颗粒度不同. hash hash是对webpack整个一次构建而言,在webpack构建中,文件都会带上对应的MD5值,构建生成的文件hash值都是一样的.如果出口是hash,那么一旦针对项目中任何一个文件的修改,都会构建整个项目,重新获取hash值.如果有目的性的缓存就会失败. chunkhash chunkhash的范围可以针对某个模块而言,它会从入口出发,对

webpack中使用ECharts

npm安装ECharts 引入ECharts 通过 npm 上安装的 ECharts 和 zrender 会放在node_modules目录下.可以直接在项目代码中 require('echarts') 得到 ECharts. var echarts = require('echarts'); // 基于准备好的dom,初始化echarts实例 var myChart = echarts.init(document.getElementById('main')); // 绘制图表 myChart

webpack中的加载器

通过loader打包非js模块 在实际开发过程中,webpack 默认只能打包处理以.js 后缀名结尾的模块,其他非.js 后缀名结 尾的模块,webpack默认处理不,需要调用loader加载器才可以正常打包,否则会报错! loader加载器可以协助webpack打包处理特定的文件模块,比如: less-loader可以打包处理 .less相关的文件 sass-loader可以打包处理 .scss相关的文件 url-loader可以打包处理css中与url路径相关的文件 loader的调用过程