Browserify 路径和 Webstorm 配置

Browserify paths and Webstorm configuration

我使用 gulp 构建我的项目并使用 browserify。 为了使路径解析更容易,我 configurated browserify

var b = browserify('./app', {paths: ['./node_modules','./src/js']});

问题是 WebStorm IDE 不知道这一点,并且在我需要文件时无法通过智能感知帮助我。例如,intellisense 在以下行中不起作用

var Store = require('lib/account/stores/account-store');

有什么方法可以让 Webstorm IDE 知道我的路径设置吗?

你没有办法做到这一点。即使是标准的 RequireJS baseUrl is not yet honored - see WEB-13463。而且您很难指望 IDE 能够识别某些 gulp/grunt 任务添加的技巧。

WebStorm 允许将文件夹标记为 'Resource roots' - 以这种方式标记的文件夹被视为根文件夹,因此路径是相对于它们解析的。但这仅适用于 'absolute' 网址(带前导斜线 - '/lib/account/stores/account-store',但不适用于 'lib/account/stores/account-store'

使用 symlinks 解决了这个问题。 遵循了这个 link 的建议 https://github.com/substack/browserify-handbook#organizing-modules

symlink

The simplest thing you can do is to symlink your app root directory into your node_modules/ directory.

Did you know that symlinks work on windows too?

To link a lib/ directory in your project root into node_modules, do:

ln -s ../lib node_modules/app and now from anywhere in your project you'll be able to require files in lib/ by doing require('app/foo.js') to get lib/foo.js.