У меня есть приложение React с запущенным Typescript, которое я внедряю в существующий сайт ASP.NET. Попытка настроить env. переменные, но как только я это реализовал, я продолжаю получать сообщение об ошибке.
Я попытался выполнить несколько поисков в Google, но не могу найти кого-то, кто сталкивался с той же проблемой, что и я 'у меня есть.
У меня есть эти сценарии в моем файле package.json:
"scripts": {
"build": "webpack --env.ENVIRONMENT=production -p --progress --config webpack.config.js",
"dev-build": "webpack --env.ENVIRONMENT=development -p --progress --config webpack.config.js",
"test-build": "webpack --env.ENVIRONMENT=test -p --progress --config webpack.config.js",
"start": "webpack --env.ENVIRONMENT=development -d --progress --config webpack.config.js --watch",
"test": "echo \"Error: no test specified\" && exit 1"
},
, а затем у меня есть этот webpack.config.js:
const webpack = require('webpack');
const dotenv = require('dotenv');
const fs = require('fs'); // Check if the file exists
const path = require('path'); // Get the current path
module.exports = (env) => {
// Get the root path
const currentPath = path.join(__dirname);
// Create the fallback path (the production .env)
const basePath = currentPath + '/.env';
const envPath = basePath + '.' + env.ENVIRONMENT;
// Check if the file exists, otherwise fall back to the production .env
const finalPath = fs.existsSync(envPath) ? envPath : basePath;
// Set the path parameter in the dotenv config
const fileEnv = dotenv.config({ path: finalPath }).parsed;
// reduce it to a nice object
const envKeys = Object.keys(fileEnv).reduce((prev, next) => {
prev[`process.env.${next}`] = JSON.stringify(fileEnv[next]);
return prev;
}, {});
return {
plugins: [
new webpack.DefinePlugin(envKeys)
],
devtool: "source-map", // Enable sourcemaps for debugging webpack's output
entry: __dirname + "/app", // Entry point, where webpack starts to run
mode: "production",
module: {
rules: [
{
test: /\.(t|j)sx?$/,
exclude: /node_modules/,
use: [
{
loader: "awesome-typescript-loader"
}
]
},
// All output '.js' files will have any sourcemaps re-processed by 'source-map-loader'.
{
enforce: "pre",
test: /\.js$/,
loader: "source-map-loader"
}
]
},
output: {
path: __dirname + '/dist',
filename: 'bundle.js',
},
resolve: {
// Add '.ts', '.tsx', '.js' and '.jsx' as resolvable extensions.
extensions: [".ts", ".tsx", ".js", ".jsx"]
},
};
}
Я получаю эту ошибку:
npm ERR! code ELIFECYCLE
npm ERR! errno 2
npm ERR! react_implementation@1.0.0 test-build: `webpack --env.ENVIRONMENT=test -p --progress --config webpack.config.js`
npm ERR! Exit status 2
npm ERR!
npm ERR! Failed at the react_implementation@1.0.0 test-build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
Это происходит всякий раз, когда я выполняю npm run build
или любую другую команду, но когда я добавляю --watch
в конец скрипта, он запускаетсябез ошибок. Я застрял в том, что вызывает эту проблему.
Все еще немного новичок в использовании веб-пакета, но было бы неплохо иметь возможность запускать различные сценарии без ошибок.