Here is the solution for syntaxerror: cannot use import statement outside a module –
1. Add this to package.json –
{ "type": "module" }
2. Or, use type=module
in <script>
tag –
<script type="module" src="/path/to/js/file.js"></script>
Other issues you may face
1. ReferenceError: require is not defined
It means you will need to convert all require()
syntax with import
syntax.
- const module = require('/path/to/module.js') + import module from '/path/to/module.js'
2. Stuck in infinite loop
If you are stuck in infinite loop then replace require()
with import()
function rather than import statement –
import("/path/to/module.js").then(modu => { module = modu });
3. Loading module from wrong directory
Check if you are loading module from src
directory or build
directory. For production your external JS needs to be in build directory.
4. Uncaught ReferenceError: … is not defined
It means that you are using a variable from outside which is scoped within module. This variable is no globally scoped and hence you can’t use it as window.your_variable
.