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

Add addModulesDirectories config #256

Merged
merged 2 commits into from
Dec 16, 2016
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -198,6 +198,19 @@ postcss: function(webpack) {
}
```

#### `addModulesDirectories`

Type: `Array`
Default: `[]`

An array of folder names to add to [Node's resolver](https://nodejs.org/api/modules.html#modules_loading_from_node_modules_folders).
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably should link to https://github.com/substack/node-resolve instead, since that is the module that is actually used.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@RyanZim Updated!

Values will be appended to the default resolve directories:
`["node_modules", "web_modules"]`.

This option is only for adding additional directories to default resolver. If
you provide your own resolver via the `resolve` configuration option above, then
this value will be ignored.

#### Example with some options

```js
Expand Down
1 change: 1 addition & 0 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ function AtImport(options) {
resolve: resolveId,
load: loadContent,
plugins: [],
addModulesDirectories: [],
}, options)

options.root = path.resolve(options.root)
Expand Down
2 changes: 1 addition & 1 deletion lib/resolve-id.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ module.exports = function(id, base, options) {

var resolveOpts = {
basedir: base,
moduleDirectory: moduleDirectories,
moduleDirectory: moduleDirectories.concat(options.addModulesDirectories),
paths: paths,
extensions: [ ".css" ],
packageFilter: function processPackage(pkg) {
Expand Down
7 changes: 7 additions & 0 deletions test/fixtures/resolve-custom-modules.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
@import "shared-fake";
@import "shared-auto";
@import "shared-nest";
@import "shared-by-hand/style.css";
@import "shared-use-dep";
@import "shared-use-dep-too";
@import "shared-use-dep" screen;
8 changes: 8 additions & 0 deletions test/fixtures/resolve-custom-modules.expected.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
.shared-fake{}
.shared-auto{}
.shared-nested{}
.shared-byHand{}
.shared-dep{}
@media screen{
.shared-dep{}
}
9 changes: 9 additions & 0 deletions test/resolve.js
Original file line number Diff line number Diff line change
Expand Up @@ -54,3 +54,12 @@ test("should be able to consume npm package or local modules", t => {
from: "fixtures/imports/foo.css",
})
})

test("should be able to consume modules from custom modules directories", t => {
return compareFixtures(t, "resolve-custom-modules", {
path: null,
addModulesDirectories: [ "shared_modules" ],
}, {
from: "fixtures/imports/foo.css",
})
})
1 change: 1 addition & 0 deletions test/shared_modules/shared-auto/index.css
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.shared-auto{}
1 change: 1 addition & 0 deletions test/shared_modules/shared-by-hand/style.css
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.shared-byHand{}
1 change: 1 addition & 0 deletions test/shared_modules/shared-dep/index.css
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.shared-dep{}
1 change: 1 addition & 0 deletions test/shared_modules/shared-fake/main.css
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.shared-fake{}
3 changes: 3 additions & 0 deletions test/shared_modules/shared-fake/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"style": "main.css"
}
1 change: 1 addition & 0 deletions test/shared_modules/shared-nest/index.css
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
@import "shared-ed";
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.shared-nested{}
1 change: 1 addition & 0 deletions test/shared_modules/shared-use-dep-too/index.css
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
@import "shared-dep";
1 change: 1 addition & 0 deletions test/shared_modules/shared-use-dep/index.css
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
@import "shared-dep";