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.
我使用 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.