Comments (9)
If you want it to work you have to do this:
- First try console.log in your code because in chrome dev tools it will return undefined.
- Second, put everything under process.env otherwise you will get a compilation error.
- Or use dotenv-webpack instead
const { DefinePlugin } = require("webpack")
const Dotenv = require('dotenv-webpack')
const CracoAntDesignPlugin = require('craco-antd')
module.exports = {
plugins: [
{
plugin: CracoAntDesignPlugin,
options: {
customizeTheme: {
}
}
}
],
webpack: {
plugins: [
new Dotenv(),
new DefinePlugin({
"process.env.VERSION": JSON.stringify(
require("./package.json").version
)
})
]
}
}
from craco.
@ChemicalRocketeer @saostad do you still have the issue?
Hi, I fix my problem with another package. rescripts
from craco.
Here is the solution in case anybody wants to use it:
const { DefinePlugin } = require("webpack");
module.exports = {
webpack: {
plugins: [
new DefinePlugin({
"process.env.VERSION": JSON.stringify(
require("./package.json").version
),
"process.env.YEAR": new Date().getFullYear()
})
]
}
}
and here is another example I added ant design to config, it's good if you need mix and match webpack plugins and babel plugins!
const { DefinePlugin } = require("webpack");
module.exports = {
webpack: {
plugins: [
new DefinePlugin({
"process.env.VERSION": JSON.stringify(
require("./package.json").version
),
"process.env.YEAR": new Date().getFullYear()
})
]
},
plugins: [
{
plugin: require("craco-antd"),
options: {
customizeTheme: {
"@primary-color": "#1DA57A"
},
lessLoaderOptions: {
noIeCompat: true
}
}
}
]
};
from craco.
You might be confused how the DefinePlugin works.
It sets global variables during your build process.
Thus, to have window.config
in your app;
craco.config.js
new webpack.DefinePlugin({
"process.env": { config: JSON.stringify(appConfig) }
})
index.js
window.config = process.env.config;
from craco.
same problem here!
what I want to do is having 1 variable with different value in prod and dev environment.
is there any way to define environment variable in webpack config?
something like :
const rewireDefinePlugin = require('react-app-rewire-define-plugin')
// Use `webpack.DefinePlugin` to add the version number from package.json
config = rewireDefinePlugin(config, env, {
'process.env.VERSION': JSON.stringify(require('./package.json').version)
})
from craco.
It works in my project.
craco.config.js :
const appConfig = { a: 1 };
const config = {
webpack: {
plugins: [
new webpack.DefinePlugin({
PROCESS_ENV_BETA: JSON.stringify(process.env.ENV === 'beta'),
PROCESS_ENV_DEV: JSON.stringify(process.env.ENV === 'dev'),
config: JSON.stringify(appConfig),
}),
],
configure: (webpackConfig, { env, paths }) => {
...
return webpackConfig;
},
};
...
index.js:
console.log(config); // eslint-disable-line
then run build
results in:
console.log({a:1})
I was trying to find a way to use DefinePlugin today, and just edit my craco file with your code in this issue, then it just works...
But I cannot find any different between our code.
from craco.
@ChemicalRocketeer @saostad do you still have the issue?
from craco.
Does not work for me.
from craco.
Does not work for me.
from craco.
Related Issues (20)
- Craco start failed with `compiler.plugin is not a function` HOT 1
- craco changes the output content of the package file to package the original configuration file and own custom folder
- jest coverage options not used
- run craco start/build, it will exec twice craco.config.js HOT 1
- Development Server not Starting (craco start) HOT 2
- Change webpackConfig.entry as object, it build failed HOT 2
- CRACO build failes because of React Refresh Babel HOT 3
- I hope that the documentation can give an example of typescript configuration.
- Unable to build with Craco 7 due to attempted import error in React library
- Selectively suppress webpack runtime errors? HOT 1
- How can I import a hbs file as a string?
- Suport aliases in npx uninmported
- Depend on babel-jest HOT 3
- CRACO with linaria
- When I use babel to import other project's component, Unexpected behavior occur
- Existing jest tests are failing with upgrade to craco major version 7
- TypeError: Cannot read properties of undefined (reading 'D:\projects\my-project\frontend\craco.config.js')
- the svg in the package will be parsed into a path
- Build hangs with Docker build HOT 1
- how to add url-loader or file-loader
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from craco.