在 Webpack 中从 "node_modules" 导入 CSS
Import CSS from "node_modules" in Webpack
我使用的一些第三方模块有它们自己的 CSS 文件。我想将它们包含在我的应用程序的单个 CSS 文件中,该文件由 Webpack 处理。如何将 "node_modules" 下的 CSS 个文件导入到我的 CSS 文件中?
例如,我正在使用第三方 react-select
模块,但我无法从 node_modules
:
导入它的 CSS 文件
@import 'react-select/dist/react-datetime.css';
webpack.config.js
中的相关加载器:
{
test: /\.css$/,
use: ExtractTextPlugin.extract({
use: [
{
loader: 'css-loader',
options: {
url: false
}
}
]
})
}
您可以通过波浪号前缀 ~
:
导入相对于项目根目录的文件(从根文件夹解析 node_modules/
)
@import '~react-select/dist/react-datetime.css';
这是一个文档不足的 Webpack(冗余短语)约定,请参阅 https://github.com/webpack-contrib/css-loader/issues/12#issuecomment-41940311 and
如果您在一个 node_modules 文件夹中使用了太多东西,您还可以通过传递以下选项来创建别名
options: {
url: false,
includePaths: [
// this one for using node_modules as a base folder
path.resolve('node_modules'),
// this one for using sass as the base folder
path.resolve('node_modules/flag-icon-css/sass')
]
}
配置完成后,您可以按照问题中的尝试进行导入。
我今天遇到了类似的问题。毕竟,我所要做的就是在我的 webpack 配置文件中 configure resolve
。我希望这会对某人有所帮助。
我使用的webpack版本:
"webpack": "^4.37.0",
在 webpack 配置文件中,应配置以下内容:
module.exports = {
resolve: {
extensions: ['.json', '.js', '.jsx'],
modules: ['node_modules'],
},
或
module.exports = {
resolve: {
alias: {
'some-library': path.resolve(__dirname, './node_modules/some-library'),
}
},
在 css 文件中,我们可以通过 node_modules
:
的相对路径访问库
@import '~some-library/src/some-css-file';
我使用的一些第三方模块有它们自己的 CSS 文件。我想将它们包含在我的应用程序的单个 CSS 文件中,该文件由 Webpack 处理。如何将 "node_modules" 下的 CSS 个文件导入到我的 CSS 文件中?
例如,我正在使用第三方 react-select
模块,但我无法从 node_modules
:
@import 'react-select/dist/react-datetime.css';
webpack.config.js
中的相关加载器:
{
test: /\.css$/,
use: ExtractTextPlugin.extract({
use: [
{
loader: 'css-loader',
options: {
url: false
}
}
]
})
}
您可以通过波浪号前缀 ~
:
node_modules/
)
@import '~react-select/dist/react-datetime.css';
这是一个文档不足的 Webpack(冗余短语)约定,请参阅 https://github.com/webpack-contrib/css-loader/issues/12#issuecomment-41940311 and
如果您在一个 node_modules 文件夹中使用了太多东西,您还可以通过传递以下选项来创建别名
options: {
url: false,
includePaths: [
// this one for using node_modules as a base folder
path.resolve('node_modules'),
// this one for using sass as the base folder
path.resolve('node_modules/flag-icon-css/sass')
]
}
配置完成后,您可以按照问题中的尝试进行导入。
我今天遇到了类似的问题。毕竟,我所要做的就是在我的 webpack 配置文件中 configure resolve
。我希望这会对某人有所帮助。
我使用的webpack版本:
"webpack": "^4.37.0",
在 webpack 配置文件中,应配置以下内容:
module.exports = {
resolve: {
extensions: ['.json', '.js', '.jsx'],
modules: ['node_modules'],
},
或
module.exports = {
resolve: {
alias: {
'some-library': path.resolve(__dirname, './node_modules/some-library'),
}
},
在 css 文件中,我们可以通过 node_modules
:
@import '~some-library/src/some-css-file';