
文章插图
要解决这个问题,只需在项目的根目录中创建一个.babelrc文件 。可以使用preset-env和plugin-proposal-class-properties添加更多默认值 。
{ "presets": ["@babel/preset-env"], "plugins": ["@babel/plugin-proposal-class-properties"]}现在运行npm run build 一切准备就绪 。Images假设我们需要引用一张图片并直接导入到 JS 文件中,这样是无法正常工作的 。为了演示,创建 src/ images 并向其中添加图像,然后尝试将其导入到index.js文件中 。
src/index.js
import example from './images/example.png'/* ... */运行构建时,再次看到错误:
文章插图
webpack有一些内置的asset modules ,可用于静态资源 。对于图像类型,我们将使用asset/resource,注意,这里是一个type,而不是loader 。
webpack.config.js
module.exports = { /* ... */ module: { rules: [ // Images { test: /.(?:ico|gif|png|jpg|jpeg)$/i, type: 'asset/resource', }, ], },}构建后,可以在dist文件夹查看 。字体和内联webpack 还有一个asset module ,可以使用asset/inline内联某些数据,例如svgs和字体 。
src/index.js
import example from './images/example.svg'/* ... */webpack.config.jsmodule.exports = { /* ... */ module: { rules: [ // Fonts and SVGs { test: /.(woff(2)?|eot|ttf|otf|svg|)$/, type: 'asset/inline', }, ], },}Styles同样的需要使用 style loader才能在脚本中执行类似import 'file.css'的操作 。现在很多人都在使用CSS-in-JS、styled-components和其他工具来将样式引入到他们的 JS 应用程序中 。
当网站只有一个 CSS 文件,仅能够加载一个CSS文件就足够了 。但如果想使用PostCSS,为了能在任何浏览器中使用所有最新的CSS特性 。或者想使用Sass, CSS预处理器,那就需要使用其它的 loader 处理 。
我想使用这三种方法——在Sass中编写,在PostCSS中处理,以及编译到CSS 。这需要引入一些加载器和依赖项 。
- sass-loader — 加载 SCSS 并编译为CSS
- node-sass — Node Sass
- postcss-loader — 使用 PostCSS 处理 CSS
- css-loader — 解析 css import
- style-loader —— 将CSS注入到DOM中
npm i -D sass-loader postcss-loader css-loader style-loader postcss-preset-env node-sass就像Babel一样,PostCSS 也需要一个配置文件 postcss.config.js,在根目录中创建它,并输入以下内容:postcss.config.js
module.exports = { plugins: { 'postcss-preset-env': { browsers: 'last 2 versions', }, },}为了测试 Sass 和 PostCSS 是否正常工作,创建src/styles/main.scss,并输入以下内容:src/styles/main.scss
$font-size: 1rem;$font-color: lch(53 105 40);html { font-size: $font-size; color: $font-color;}现在,将文件导入index.js并添加四个 loader。它们从最后编译到第一个,因此列表中最后一个是sass-loader,因为需要编译,然后是PostCSS,然后是CSS,最后是style-loader,它将CSS注入到DOM 中 。src/index.js
import './styles/main.scss'/* ... */webpack.config.jsmodule.exports = { /* ... */ module: { rules: [ // CSS, PostCSS, and Sass { test: /.(scss|css)$/, use: ['style-loader', 'css-loader', 'postcss-loader', 'sass-loader'], }, ], },}
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Netflix如何实现Android与 iOS共用一套代码?
- 如何做到全屋WIFI无死角,MESH组网对比有哪些优势?
- 如何启用 GitHub Pages 中的子域名
- JavaScript,如何在字符串中找到一个字符?
- 什么是接口的幂等性,如何实现接口幂等性?
- 如何使用哑铃呢
- 异地医保如何报销?
- 餐厅风水促家庭和睦 大师教你如何打造绝佳餐厅风水
- 如何打造好家居风水 招财纳福家居风水之门口踏垫的运用风水
- 注意!家居厨房风水早知道 如何布局让老公不花心的家居风水
