我试图在我的create-react-app项目中包含一些CSS。 CSS来自第三方NPM包,因此它位于node_modules目录中。
我试过了:
import '/node_modules/packagename/css/styles.css';
但我收到错误:
找不到模块:您试图导入位于项目src /目录之外的/node_modules/packagename/css/styles.css。不支持src /之外的相对导入。您可以在src /中移动它,或者从项目的node_modules /中添加符号链接。
我宁愿不将CSS移动到src /所以它可以通过NPM更新。我可以通过符号链接,但是当我在Windows上开发并部署到linux时,这并不理想。
包含CSS的最佳方式是什么?
答案 0 :(得分:30)
node_modules不需要相对路径,不应该是包含css
的推荐方法您要做的就是不要使用前面的斜杠和node_modules目录,就像从节点模块导入js包一样:
strToInt
答案 1 :(得分:9)
找到css文件的路径
示例:./node_modules/packagename/dist/css/styles.css
使用与node_modules相关的路径导入(node_modules/
之后的任何内容)
import 'packagename/dist/css/styles.css'
答案 2 :(得分:6)
与之前的答案没有区别,这取决于您将CSS导入的位置;组件或样式表。
如果要将node_modules
样式表导入到组件中,则不需要上面提到的相对路径。
import 'packagename/dist/css/styles.css'
但是,如果要将node_modules
样式表导入CSS / SCSS文件,则需要使用波浪号~
。
@import '~packagename/dist/css/styles.css'
答案 3 :(得分:-2)
我发现这是一个令人讨厌的错误。特别是我的webpack.config.js不再运行。
特别反应应用程序现在正在src文件夹中运行,并且导入文件需要在公共文件夹中。
我当时使用的是materialize-social,发现最简单的方法是将node_module文件文件夹“ materialize-social”移动到公共目录中,请以其他方式推荐一下。