NODE_ENV и веб-пакет

Node.js Webpack

Эссе по фронтенд-разработкеNODE_ENVзнания иwebpackОтношение

NODE_ENV

node.jsродной объектprocessизenvСвойство является объектом (среда Mac):

И мы часто видим следующие методы использования в исходном коде фреймворка и других библиотек классов:

process.env.NODE_ENV

очевидно,NODE_ENVимущества нетprocess.envобъект, но может быть известен буквально (среда узла), что означаетnode.js 环境.

использовать

express.jsЭта переменная впервые используется в , а затем продвигается и популяризируется для всего фронтенд-сообщества.

Его основное назначение: при использованииnode.jsвыполнение средыJavaScript 脚本, используйте это свойство, чтобы различать стратегии обработки (сборки, запуска и т. д.) в разных средах (разработка, производство, тестирование и т. д.).

Его два наиболее распространенных значения:

process.env.NODE_ENV === 'development'; // 或简写 dev,意为开发环境
process.env.NODE_ENV === 'production'; // 或简写 prod,意为生产环境

как пользоваться

в настоящее время используетnpmВ корневом каталоге построенного внешнего проектаpackage.jsonсерединаscriptsСвойство — это объект, имя каждого ключа которого доступно в командной строке (уже установленныйnode.jsи добавьте команду в переменную окружения)npm run 键名для запуска, а фактическая команда для запуска является значением ключа:

{
  "scripts": {
    "dev": "webpack --config webpack.dev.config.js"
  }
}
$ npm run dev

Фактическая команда для запускаwebpack --config webpack.dev.config.js, мы модифицируем键值:

{
  "scripts": {
    "dev": "NODE_ENV=development webpack --config webpack.dev.config.js"
  }
}

так положиNODE_ENVсвойство вводится вprocess.envобъект, а значениеdevelopment,мытолько можетсуществуетwebpack.dev.config.jsв сценарии ив скрипте он импортируетдоступ кprocess.env.NODE_ENV, и к ним нельзя получить доступ в других сценариях.

существуетwebpackиспользовать в

Текущий интерфейсный проект используетwebpackВ основном используется для создания одностраничных приложений,入口脚本文件Он будет ссылаться на другие файлы сценариев проекта в древовидной структуре.

иwebpackсправиться с этим入口脚本文件и связанные с ним файлы сценариев недоступны, посколькуwebpack.dev.config.jsпредусмотрено сценариемprocess.env.NODE_ENVсобственность, но может бытьwebpackплагин, чтобы сделать эти файлы скриптов доступнымиprocess.env.NODE_ENV:

const webpack = require('webpack');
module.exports = {
  plugins: [
    new webpack.DefinePlugin({
      'process.env.NODE_ENV': '"development"'
    })
  ]
}

Наконец

Спасибо за чтение, и, пожалуйста, поправьте меня, если я ошибаюсь!