gulp-resolve-dependencies-advanced
Version:
Extra features for gulp-resolve-dependencies
67 lines (54 loc) • 2.42 kB
Markdown
# gulp-resolve-dependencies-advanced
[](https://github.com/Nauja/gulp-resolve-dependencies-advanced/actions/workflows/nodejs.yml)
[](https://opensource.org/licenses/MIT)
This library aims to add some extra features to [gulp-resolve-dependencies](backflip/gulp-resolve-dependencies).
It all started when I [needed](https://github.com/backflip/gulp-resolve-dependencies/pull/22) the library to be able to:
* Resolve dependencies from external directories (i.e. node_modules)
* Resolve dependencies without an explicit extension (i.e. `import React from "react";`)
## Usage
First, install `gulp-resolve-dependencies-advanced` as a development dependency:
```shell
npm install --save-dev gulp-resolve-dependencies-advanced
```
Import `gulp-resolve-dependencies` as usual and override the `resolvePath` option to use `advancedPathResolver` which implements an advanced strategy for resolving paths:
```javascript
var resolveDependencies = require('gulp-resolve-dependencies');
var advancedResolveDependencies = require('gulp-resolve-dependencies-advanced');
var concat = require('gulp-concat');
gulp.task('resolve-dependencies', function(){
gulp.src(['./src/components/main.tsx'])
.pipe(resolveDependencies({
pattern: /import .* \"(.*)\";/g, // Accept import without explicit extension
resolvePath: advancedResolveDependencies.advancedPathResolver({
paths: {
"*": [path.resolve(__dirname, "node_modules")] // Resolve files in node_modules
},
extensions: [".tsx", ".jsx", ".ts", ""],
mainFiles: [
"index.jsx",
"index.tsx",
"index.js",
"index.ts"
]
}),
exclude: [
path.resolve(__dirname, "node_modules/**/*"),
path.resolve(__dirname, "src/**/utils.ts")
]
}))
.on('error', function(err) {
console.log(err.message);
})
.pipe(concat())
.pipe(gulp.dest('dest/assets/js/'));
});
```
## Testing
```bash
$ git clone https://github.com/Nauja/gulp-resolve-dependencies-advanced.git
$ cd gulp-resolve-dependencies-advanced
$ npm install
$ npm test
```
## License
Licensed under the [MIT](LICENSE) License.