Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issues with Less-Loader #10

Closed
sresant opened this issue Oct 5, 2017 · 17 comments · May be fixed by #130
Closed

Issues with Less-Loader #10

sresant opened this issue Oct 5, 2017 · 17 comments · May be fixed by #130

Comments

@sresant
Copy link

sresant commented Oct 5, 2017

Are there any known issues with less loader and the thread loader?

I am getting the following error:

Module build failed: TypeError: Cannot read property 'bind' of undefined
at createWebpackLessPlugin (/Users/sresan.thevarajah/code/main/node_modules/less-loader/dist/createWebpackLessPlugin.js:37:49)
at getOptions (/Users/sresan.thevarajah/code/main/node_modules/less-loader/dist/getOptions.js:25:26)
at Object.lessLoader (/Users/sresan.thevarajah/code/main/node_modules/less-loader/dist/index.js:32:42)

What is undefined is the loadModule property.

My usage looks like
ExtractTextPlugin.extract({fallback: "style-loader", use: [{loader: "thread-loader" option: { name: "less"}}, "css-loader", "less-loader"]})

I am using two instances of extract text plugin as well.

@jgraniero
Copy link

@sresant did you ever resolve this? I'm having the same issue.

Looks like createWebpackLessPlugin is looking for loadModule function on loaderContext, but it doesn't exist. I only see this error when using thread-loader along with webpack's resolver for less-loader. Seems there is a conditional that checks for less-loader's paths option and if it's defined, it doesn't hit the problematic code.

I can create a simple repo that shows the issue if it would help get it solved.

For now, the only workaround I've found is to use less's resolver.

@sresant
Copy link
Author

sresant commented Feb 20, 2018

I can't remember if I was able to resolve this, we ended up just sticking with happy-pack.

@jtomaszewski
Copy link

jtomaszewski commented Mar 15, 2018

@jgraniero's workaround with using paths option works well for us. No need to switching anywhere in that case, thread-loader works fine then.

@leohxj
Copy link

leohxj commented Aug 16, 2019

same question.

1 similar comment
@helloworldcyj
Copy link

same question.

@duanbaosheng
Copy link

duanbaosheng commented Mar 28, 2020

add path option to the less-loader ,like this:
{ loader: 'less-loader', options: { paths: [ path.resolve(__dirname, "node_modules") ] } }

@duanbaosheng
Copy link

duanbaosheng commented Mar 31, 2020

@jgraniero's workaround with using paths option works well for us. No need to switching anywhere in that case, thread-loader works fine then.

but there leads new problem :
in a less file, i import other less file , when run webpack, error shows:
@import '~antd/lib/style/.default.less' is not found
I try many methods , but all fail. I do not know how to do

@ryansully
Copy link

Since less-loader released 6.0.0, thread-loader is now completely incompatible, because options.paths has moved to lessOptions.paths, and trying to use options.paths results in a compile error.

@jerryOnlyZRJ
Copy link

@jgraniero's workaround with using paths option works well for us. No need to switching anywhere in that case, thread-loader works fine then.

but there leads new problem :
in a less file, i import other less file , when run webpack, error shows:
@import '~antd/lib/style/.default.less' is not found
I try many methods , but all fail. I do not know how to do

me too

@bfrontend
Copy link

@jgraniero的使用paths选项的解决方法对我们来说效果很好。在这种情况下,无需切换到任何地方,线程加载器就可以正常工作。

但导致新的问题:
在一个较小的文件,我导入其他文件少,运行时的WebPack,错误显示:
@import “〜antd / lib目录/风格/ .default.less”没有找到
我尝试了很多方法,但都失败。我不知道该怎么办

我也是

同样的错误

@alexander-akait
Copy link
Member

Please update less-loader to latest stable version, feel free to open new issue if you still faced with bug

@robothot
Copy link

robothot commented Nov 9, 2021

@alexander-akait

  • "less": "^4.1.2",
  • "less-loader": "^10.2.0",
  • "thread-loader": "^3.0.4"
****/node_modules/less-loader/dist/index.js:43
  const logger = this.getLogger("less-loader");
                      ^

TypeError: this.getLogger is not a function
    at Object.lessLoader (***/node_modules/less-loader/dist/index.js:43:23)
    at LOADER_EXECUTION (***/node_modules/loader-runner/lib/LoaderRunner.js:132:14)
    at runSyncOrAsync (***/node_modules/loader-runner/lib/LoaderRunner.js:133:4)
    at iterateNormalLoaders (***/node_modules/loader-runner/lib/LoaderRunner.js:250:2)
    at ***/node_modules/loader-runner/lib/LoaderRunner.js:223:4
    at FSReqCallback.readFileAfterClose [as oncomplete] (node:internal/fs/read_file_context:68:3)
***/node_modules/less-loader/dist/index.js:43

webpack config

{
	"test": /\.mless$/,
	"use": [{
		"loader": "thread-loader"
	}, {
		"loader": "css-loader",
		"options": {
			"modules": true
		}
	}, {
		"loader": "less-loader",
		"options": {
			"lessOptions": {
				"javascriptEnabled": true
			}
		}
	}]
}, {
	"test": /\.less$/,
	"use": [{
		"loader": "thread-loader"
	}, {
		"loader": "css-loader"
	}, {
		"loader": "less-loader",
		"options": {
			"lessOptions": {
				"javascriptEnabled": true
			}
	        }
        }]
}

There seems to be no way to get the webpack context

@huangyingzheng
Copy link

@alexander-akait

  • "less": "^4.1.2",
  • "less-loader": "^10.2.0",
  • "thread-loader": "^3.0.4"
****/node_modules/less-loader/dist/index.js:43
  const logger = this.getLogger("less-loader");
                      ^

TypeError: this.getLogger is not a function
    at Object.lessLoader (***/node_modules/less-loader/dist/index.js:43:23)
    at LOADER_EXECUTION (***/node_modules/loader-runner/lib/LoaderRunner.js:132:14)
    at runSyncOrAsync (***/node_modules/loader-runner/lib/LoaderRunner.js:133:4)
    at iterateNormalLoaders (***/node_modules/loader-runner/lib/LoaderRunner.js:250:2)
    at ***/node_modules/loader-runner/lib/LoaderRunner.js:223:4
    at FSReqCallback.readFileAfterClose [as oncomplete] (node:internal/fs/read_file_context:68:3)
***/node_modules/less-loader/dist/index.js:43

webpack config

{
	"test": /\.mless$/,
	"use": [{
		"loader": "thread-loader"
	}, {
		"loader": "css-loader",
		"options": {
			"modules": true
		}
	}, {
		"loader": "less-loader",
		"options": {
			"lessOptions": {
				"javascriptEnabled": true
			}
		}
	}]
}, {
	"test": /\.less$/,
	"use": [{
		"loader": "thread-loader"
	}, {
		"loader": "css-loader"
	}, {
		"loader": "less-loader",
		"options": {
			"lessOptions": {
				"javascriptEnabled": true
			}
	        }
        }]
}

There seems to be no way to get the webpack context

same question.

@ghost
Copy link

ghost commented Oct 3, 2022

I'm experiencing the same. This would have been very helpful. Hopefully #130 lands soon

@KyrieLii
Copy link

KyrieLii commented Jun 2, 2023

@alexander-akait

  • "less": "^4.1.2",
  • "less-loader": "^10.2.0",
  • "thread-loader": "^3.0.4"
****/node_modules/less-loader/dist/index.js:43
  const logger = this.getLogger("less-loader");
                      ^

TypeError: this.getLogger is not a function
    at Object.lessLoader (***/node_modules/less-loader/dist/index.js:43:23)
    at LOADER_EXECUTION (***/node_modules/loader-runner/lib/LoaderRunner.js:132:14)
    at runSyncOrAsync (***/node_modules/loader-runner/lib/LoaderRunner.js:133:4)
    at iterateNormalLoaders (***/node_modules/loader-runner/lib/LoaderRunner.js:250:2)
    at ***/node_modules/loader-runner/lib/LoaderRunner.js:223:4
    at FSReqCallback.readFileAfterClose [as oncomplete] (node:internal/fs/read_file_context:68:3)
***/node_modules/less-loader/dist/index.js:43

webpack config

{
	"test": /\.mless$/,
	"use": [{
		"loader": "thread-loader"
	}, {
		"loader": "css-loader",
		"options": {
			"modules": true
		}
	}, {
		"loader": "less-loader",
		"options": {
			"lessOptions": {
				"javascriptEnabled": true
			}
		}
	}]
}, {
	"test": /\.less$/,
	"use": [{
		"loader": "thread-loader"
	}, {
		"loader": "css-loader"
	}, {
		"loader": "less-loader",
		"options": {
			"lessOptions": {
				"javascriptEnabled": true
			}
	        }
        }]
}

There seems to be no way to get the webpack context

same question.

"less": "^4.1.3",
"less-loader": "^11.0.0",
"thread-loader": "4.0.2",

Same question , May we restart this issue ?

@alexander-akait
Copy link
Member

@KyrieLii we need to improve API for this https://github.com/webpack-contrib/thread-loader/blob/master/src/worker.js#L125, do you want to open a new issue or send a PR?

@KyrieLii
Copy link

KyrieLii commented Jun 3, 2023

@KyrieLii we need to improve API for this https://github.com/webpack-contrib/thread-loader/blob/master/src/worker.js#L125, do you want to open a new issue or send a PR?

@alexander-akait Thanks for your reply, I create a new one #185.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.