为什么webpack别名不起作用
Why webpack alias doesn't work?
我在我的项目中使用webpack和postcss-import。我写组件,有些组件可以嵌套到另一个组件,所以为它们写路径很复杂,比如import '../../../component-a';
等等。我想创建别名来解决这个问题。所以在webpack.config.js中我写了:
resolve: {
alias: {
'@blocks': path.resolve(__dirname, './source/blocks'),
'@styles': path.resolve(__dirname, './source/styles')
我的webpack配置位于根目录。所以,问题是当我在css中写@import '@styles/vars.css';
之类的东西时,它不起作用。我得到一个错误'未定义的变量bla bla…'。但是当我在js文件中导入块并编写import Logo from '@blocks/logo';
时-它工作得很好。我还想注意到@import '@styles/vars.css';
-与手写笔一起工作。所以也许我错过了一些关于postcss-import插件。如何让它起作用?
UPD postcss配置部分:
' ' '
var webpack = require("webpack");
function postcssModules () {
return [
require('postcss-nested')(),
require('postcss-import')({
addDependencyTo: webpack
}),
require('postcss-simple-vars'),
require('postcss-cssnext')({
warnForDuplicates: false
}),
require('lost')
]
};
module.exports = postcssModules;
' ' '
目前,有一个postcss-import-resolver库来管理module.css文件中的别名。
in webpack.config.js
:
import path from 'path';
import resolver from 'postcss-import-resolver';
...
{
loader: 'postcss-loader',
options: {
plugins: {
'postcss-import': {
resolve: resolver({
alias: {
'@common': path.resolve('./src/common/styles')
},
})
}
}
}
and in css
file:
@import '@common/variables';
div {
background-color: var(--common-var); // variable from './src/common/styles/variables.css'
}
另外,确保postcss-import
是第一个插件之一。
也许这可以帮助(我回答那里):
https://github.com/postcss/postcss-import/issues/190 # issuecomment - 298078092https://github.com/postcss/postcss-import/issues/187 issuecomment - 298078080
如果你想重用webpack的别名,替换
const resolver = ResolverFactory.createResolver({
alias: {
'@blabla': path.resolve(__dirname, 'src')
},
extensions: ['.css'],
modules: ['src', 'node_modules'],
useSyncFileSystemCalls: true,
fileSystem
});
const webpackBaseConfig = require('./webpack.config.base').default;
const resolver = ResolverFactory.createResolver(
Object.assign({},
webpackBaseConfig.resolve, {
modules: ['src', 'node_modules'],
useSyncFileSystemCalls: true,
fileSystem
})
);
- electronic BrowserWindow的最小高度和宽度在hide()show()方法之后不起作用
- 监视函数从服务返回不起作用,但作用域函数起作用
- 幻灯片滚动javascript不起作用
- 简单的javascript在Shopify中不起作用
- Recaptcha在IE7和IE8中不起作用
- Ember Data DS.Model's set函数不起作用
- JsFiddle上的鼠标事件不起作用
- 我的AngularJS表达式没有'不起作用
- 点击按钮输入不起作用
- 面向对象的Javascript代码在IE7中不起作用
- 分部隐藏在jquery中不起作用
- 在phonegap应用程序内部重定向不起作用
- Array.length似乎不起作用;console.log则显示其他情况
- $ionicplatform内的$scope不;不起作用
- 我的javascript for循环不起作用
- Meteor-添加用户自定义字段的方法不起作用
- 为什么 .focus() 不起作用,而 .css(“color”,“red”) 在同一个选择器上起作用
- ng使用as别名重复不起作用
- 当我使用别名时,AngularJS中的控制器继承不起作用
- 为什么webpack别名不起作用