npm 运行 dev 和 npm 运行 build 的不同 svelte 变量值

Different svelte variable value for npm run dev and npm run build

我正在使用 rollup.js 开发一个 svelte+tailwind+PHP 网站。如何根据我是 运行ning npm run dev 还是 npm run build 在 svelte 源文件中设置变量?我希望不同的构建连接到不同的后端服务器。

这是我的 package.json 以防相关。我对这些工具中的大多数都是新手,所以如果我误解太多,请耐心等待并纠正我。在 运行ning npm run build 之后,我 运行 将构建文件夹的 scp 脚本发送到生产服务器。

{
  "name": "my-app",
  "version": "1.0.0",
  "scripts": {
    "watch:tailwind": "postcss public/tailwind.css -o public/index.css -w",
    "build:tailwind": "NODE_ENV=production postcss public/tailwind.css -o public/index.css",
    "dev": "run-p autobuild watch:tailwind",
    "build": "npm run build:tailwind && rollup -c",
    "start": "sirv public --single --host",
    "start:dev": "sirv public --single --dev",
    "autobuild": "rollup -c -w"
  },
  "devDependencies": {
    "@rollup/plugin-commonjs": "^16.0.0",
    "@rollup/plugin-node-resolve": "^10.0.0",
    "autoprefixer": "^10.0.4",
    "d3-interpolate": "^2.0.1",
    "npm-run-all": "^4.1.5",
    "postcss": "^8.1.10",
    "postcss-cli": "^8.3.0",
    "postcss-nested": "^5.0.1",
    "postcss-reporter": "^7.0.2",
    "rollup": "^2.3.4",
    "rollup-plugin-css-only": "^3.0.0",
    "rollup-plugin-livereload": "^2.0.0",
    "rollup-plugin-svelte": "^7.0.0",
    "rollup-plugin-terser": "^7.0.0",
    "svelte": "^3.0.0",
    "svelte-dnd-action": "^0.6.22",
    "svelte-loading-spinners": "^0.1.1",
    "tailwindcss": "^2.0.1"
  },
  "dependencies": {
    "sirv-cli": "^1.0.0"
  }
}

您可以使用 @rollup/plugin-replace:

A Rollup plugin which replaces strings in files while bundling.

plugins: [
    replace({
      // alternatively, one could pass process.env.NODE_ENV or 'development` to stringify
      'process.env.NODE_ENV': JSON.stringify('production')
    })
  ]