gpt4 book ai didi

npm:如何在 Windows (10) 中设置 NODE_ENV?

转载 作者:行者123 更新时间:2023-12-04 18:25:26 25 4
gpt4 key购买 nike

我正在尝试在 package.json 中添加一个 npm 脚本来设置 NODE_ENV在做其他事情之前(比如运行 webpack)。但是虽然语法看起来是正确的,NODE_ENV在 Windows 10 下运行时未设置。

测试脚本

"scripts": {
"test": "SET NODE_ENV=debug && echo %NODE_ENV%" }

来自 npm run test 的结果是“生产”(前提是 NODE_ENV 在运行脚本之前设置为“生产”)。应该是“调试”。

可能有什么问题?我什至试过 cross-env没有成功。

编辑

澄清我的问题:我无法在 Windows 10 下设置任何环境变量。我需要调用 SET,因为我在 Windows (10) 下运行脚本。似乎是一些权限问题(不允许设置环境变量的脚本?)。

另一个(或实际的)问题是:如何创建一个脚本来构建(使用 webpack),并创建 JavaScript 文件的缩小版本(用于生产),以及一个脚本来创建非缩小版本(用于开发)。到目前为止,我使用以下方法(请参阅重要部分的评论):

编辑 2

我现在不知道这可能会有所作为,但如果确实如此:我使用了一个用 create-react-app 创建的 React 应用程序。我找到了我的问题的答案,见下文。

package.json:
{
"name": "test",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {

// Scipts for build for development and for production
"build-dev": "SET NODE_ENV=debug webpack",
"build-release": "SET NODE_ENV=production webpack"

},
"author": "",
"license": "ISC",
"dependencies": {
"babel-core": "^6.24.1",
"babel-loader": "^7.0.0",
"babel-preset-env": "^1.4.0",
"babel-preset-react": "^6.24.1",
"debug": "^2.6.4",
"webpack": "^2.4.1"
}
}

webpack.config.js:
const path = require('path');
var webpack = require('webpack');

// Check if in debug environment
var debug = process.env.NODE_ENV !== "production";

module.exports = {
context: path.join(__dirname, 'src'),
entry: ['./index.js'],
output: {
path: path.join(__dirname, 'www/js'),
filename: 'index.js',
},
devtool: 'source-map',
module: {
rules: [
{
test: /\.jsx?$/,
exclude: /node_modules/,
use: ['babel-loader'],
}],
},

// Add the UglifyJs plugin only in debug mode
plugins: debug ? [] : [new webpack.optimize.UglifyJsPlugin({ mangle: false, sourcemap: false })],

resolve: {
modules: [
path.join(__dirname, 'node_modules')
]
}
};

这失败是因为设置 NODE_ENV 由于某种原因不起作用。像在脚本中一样直接使用命令提示符:
SET NODE_ENV = debug
webpack

顺便说一下。这证明配置没问题,但只是 npm 脚本无法设置 NODE_ENV。

最佳答案

以防万一您仍然在 Windows 10 中设置 NODE_ENV 时遇到问题 - 这将对您有所帮助。在 package.json 文件中添加以下内容:

"test": "SET \"NODE_ENV=test\""

如果您打算将其推送到 Heroku - 您将不得不“导出”变量,您的字符串将如下所示(您正在使用斜杠转义 Windows 需要的引号):
"test": "export NODE_ENV=test || SET \"NODE_ENV=test\""

最后,如果您需要像 mocha 这样的以下命令,那么该行将如下所示:
"test": "export NODE_ENV=test || SET \"NODE_ENV=test\" && mocha server/**/*.name_of_files_plus_test.js"

希望这对某人有所帮助:) - 迈克

关于npm:如何在 Windows (10) 中设置 NODE_ENV?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43586909/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com