feat(cli-service): support plugin to inject process-env before load config file #6159
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What kind of change does this PR introduce? (check at least one)
Does this PR introduce a breaking change? (check one)
Other information:
We now support customizing the path to the configuration file via
process.env.VUE_CLI_SERVICE_CONFIG_PATH
, but this variable will be executed before the plugin apply. It means we can not set configuration file path in plugin.I have developed a plugin
cli-plugin-doc
that registers thedev:doc
command for starting project's documentation development. Thiscli-plugin-doc
plugin requires thevue-cli
build process, but needs to read./docs/vue.config.js
to implement the independentwebpack
build parameters compared withvue-cli-service serve
.With the current mechanism, neither
defaultModes
nor.env
can meet the need.Before:
process.env.NODE_ENV will be
production
when runningvue-cli-service test:e2e
after:
In addition to the setting
process.env.NODE_ENV
when runningvue-cli-service test:e2e
, environment variables will be setprocess.env.VUE_CLI_SERVICE_CONFIG_PATH = './docs/vue.config.js'
environment variables is optional, so this does not break current plugins