Is there a yarn equivalent of node_modules folder?
I have a new MERN project folder. It has a package.json file. The package.json file includes dependencies and dev dependencies for babel (full list below):
"dependencies": {
"axios": "^0.16.1",
"babel-cli": "^6.24.1",
"babel-preset-es2015": "^6.24.1",
"babel-preset-react": "^6.24.1",
"babel-polyfill": "^6.13.0",
"body-parser": "^1.17.1",
"caniuse-api": "^2.0.0",
"express": "^4.13.4",
"lodash": "^4.17.4",
"material-ui": "^0.18.0",
"nodemon": "^1.11.0",
"react": "^15.5.4",
"react-dom": "^15.5.4",
"react-promise": "^1.1.2",
"react-redux": "^5.0.4",
"react-router": "^4.1.1",
"react-tap-event-plugin": "^2.0.1",
"redux": "^3.6.0",
"redux-devtools": "^3.4.0",
"redux-form": "^6.7.0",
"redux-thunk": "^2.2.0",
"socket.io": "^2.0.1",
"source-map-support": "^0.4.15"
},
"devDependencies": {
"babel": "^6.23.0",
"babel-core": "^6.24.1",
"babel-loader": "^7.0.0",
"babelify": "^7.3.0",
"enzyme": "^2.8.2",
"mocha": "^3.3.0",
"react-addons-test-utils": "^15.5.1",
"webpack": "^2.5.1"
}
I'm trying to use import statements instead of require statements. I think that should work because I have babel dependencies, but when I try to run npm start, I get an error that says:
/server.js:2
import bodyParser from 'body-parser';
^^^^^^
SyntaxError: Unexpected token import
at createScript (vm.js:56:10)
at Object.runInThisContext (vm.js:97:10)
at Module._compile (module.js:542:28)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.runMain (module.js:604:10)
at run (bootstrap_node.js:390:7)
at startup (bootstrap_node.js:150:9)
[nodemon] app crashed - waiting for file changes before starting...
Is there something wrong with trying to use npm start if you use yarn? Should I be trying to find an equivalent command line start statement because I have used yarn instead of npm?
I have npm installed. I don't understand why I don't have a node modules folder?
Related
hi i will try to learn gulp but at start i have an error in my simple hello world. can anybody help me?
my gulp version is:
CLI version 3.9.0
Local version 4.0.2
my .babelrc file :
{
"presets": [ "#babel/preset-env" ]
}
my gulpfile.babel.js file :
export const hello = (done) => {
console.log('hello');
done();
}
my package.json file :
"name": "meatheme",
"version": "1.0.0",
"description": "",
"main": "index.js",
"directories": {
"lib": "lib"
},
"scripts": {
"start": "gulp",
"build": "gulp build --prod",
"bundle": "gulp bundle --prod"
},
"author": "",
"license": "ISC",
"devDependencies": {
"#babel/core": "^7.12.3",
"#babel/preset-env": "^7.12.1",
"#babel/register": "^7.12.1",
"babel-loader": "^8.1.0",
"browser-sync": "^2.26.13",
"del": "^5.1.0",
"gulp": "^4.0.2",
"gulp-clean-css": "^4.3.0",
"gulp-if": "^3.0.0",
"gulp-imagemin": "^7.1.0",
"gulp-rename": "^2.0.0",
"gulp-replace": "^1.0.0",
"gulp-sass": "^5.0.0",
"gulp-sourcemaps": "^2.6.5",
"gulp-uglify": "^3.0.2",
"gulp-wp-pot": "^2.5.0",
"gulp-zip": "^5.0.2",
"sass": "^1.43.4",
"vinyl-named": "^1.1.0",
"webpack-stream": "^5.2.1",
"yargs": "^15.4.1"
},
"dependencies": {
"#fortawesome/fontawesome-free": "^5.15.1",
"jquery": "^3.5.1",
"normalize.css": "^8.0.1",
"slick-carousel": "^1.8.1"
}
}
and when i run gulp hello is see this in terminal.
[16:47:07] Failed to load external module babel-core/register
[16:47:07] Failed to load external module babel/register
/home/mehdi/Work/Meacodes/Mea template/mea0.1/gulpfile.babel.js:16
import gulp from 'gulp';
^^^^^^
SyntaxError: Cannot use import statement outside a module
at wrapSafe (internal/modules/cjs/loader.js:915:16)
at Module._compile (internal/modules/cjs/loader.js:963:27)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
at Module.load (internal/modules/cjs/loader.js:863:32)
at Function.Module._load (internal/modules/cjs/loader.js:708:14)
at Module.require (internal/modules/cjs/loader.js:887:19)
at require (internal/modules/cjs/helpers.js:74:18)
at Liftoff.handleArguments (/usr/local/lib/node_modules/gulp/bin/gulp.js:116:3)
at Liftoff.execute (/usr/local/lib/node_modules/gulp/node_modules/liftoff/index.js:203:12)
at module. Exports (/usr/local/lib/node_modules/gulp/node_modules/flagged-respawn/index.js:51:3)
do you know where is my issue?
I was advised to write "type": "module" to file package.json to the very end of the file
since node otherwise does not consider js files as ES modules, outside of which you still cannot use the import statement)
(in the browser we do modules through the type attribute of the script tag)
Background:
I am trying to test an npm package that I am developing: a React Component that manages a SVG filter animation. In verifying that it works as expected, I have used npm pack to generate a tarball, which I have then installed as a dependency in another project (one I expect to consume said package when properly published).
To make this easier, I will refer to the npm package I am developing as package A and refer to the project that consumes it as project B. Please take note of the technologies mentioned below as their giving context will likely provide insight.
Relevant Technologies
packageA
node: 14.18.1
esbuild: ^0.11.11
typescript: ^4.2.3
projectB
node: 14.18.1
remix: 1.4.1
typescript: ^4.2.3
Observations + Problems:
Observations:
npm pack, when run in package A, spits out a tarball that includes everything BUT the output build directory of package A.
package A has a package.json with a type field set as "module", thereby declaratively supporting ES Module System syntax.
npm install of this tarball in project B is successful.
If I change my import of package A to its absolute path (node_modules/projectA/build/main.js) in project B's node_modules I avoid the problem defined in Problems #1.
Problems:
Any attempt to consume package A in project B is met with the following error:
// THIS IMPORT
// projectB > index.js
import PackageAComponent from 'packageA'
// RESULTS IN:
throw new ERR_REQUIRE_ESM(filename, parentPath, packageJsonPath);
^
Error [ERR_REQUIRE_ESM]: Must use import to load ES Module: /Users/jackwilliammorris/Code/better-brain-blogging/node_modules/fuzzy-scrawl/build/esbuild/browser.js
require() of ES modules is not supported.
require() of /Users/jackwilliammorris/Code/better-brain-blogging/node_modules/fuzzy-scrawl/build/esbuild/browser.js from /Users/jackwilliammorris/Code/better-brain-blogging/server/index.js is an ES module file as it is a .js file whose nearest parent package.json contains "type": "module" which defines all .js files in that package scope as ES modules.
Instead rename browser.js to end in .cjs, change the requiring code to use import(), or remove "type": "module" from /Users/jackwilliammorris/Code/better-brain-blogging/node_modules/fuzzy-scrawl/package.json.
at new NodeError (internal/errors.js:322:7)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1102:13)
at Module.load (internal/modules/cjs/loader.js:950:32)
at Function.Module._load (internal/modules/cjs/loader.js:790:12)
at Module.require (internal/modules/cjs/loader.js:974:19)
at require (internal/modules/cjs/helpers.js:93:18)
at Object.<anonymous> (/Users/jackwilliammorris/Code/better-brain-blogging/app/routes/braindumps/index.tsx:8:25)
at Module._compile (internal/modules/cjs/loader.js:1085:14)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
at Module.load (internal/modules/cjs/loader.js:950:32)
Relevant Code Snippets
// projectB package.json
{
"name": "projectB",
"private": true,
"description": "",
"license": "",
"sideEffects": false,
"scripts": {
... ,
"dev": "run-p dev:*",
"dev:arc": "node ./dev sandbox",
"dev:css": "npm run generate:css -- --watch",
"dev:remix": "remix watch",
...
},
"prettier": {},
"dependencies": {
"#architect/architect": "^10.2.1",
"#architect/functions": "^5.0.4",
"#happy-dom/jest-environment": "^3.1.0",
"#notionhq/client": "^1.0.4",
"#remix-run/architect": "^1.4.1",
"#remix-run/node": "^1.4.1",
"#remix-run/react": "^1.4.1",
"#remix-run/server-runtime": "^1.4.1",
"bcryptjs": "2.4.3",
"classnames": "^2.3.1",
"cuid": "^2.1.8",
"fuzzy-scrawl": "file:../fuzzy-scrawl/fuzzy-scrawl-0.0.0.tgz",
"highlight.js": "^11.5.1",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"tiny-invariant": "^1.2.0"
},
"devDependencies": {
"#faker-js/faker": "^6.1.1",
"#remix-run/dev": "^1.4.1",
"#remix-run/eslint-config": "^1.4.1",
"#testing-library/cypress": "^8.0.2",
"#testing-library/jest-dom": "^5.16.3",
"#testing-library/react": "^12.1.4",
"#testing-library/user-event": "^14.0.4",
"#types/architect__functions": "^3.13.6",
"#types/bcryptjs": "2.4.2",
"#types/eslint": "^8.4.1",
"#types/jest": "^27.4.1",
"#types/react": "^17.0.43",
"#types/react-dom": "^17.0.14",
"#vitejs/plugin-react": "^1.3.0",
"c8": "^7.11.0",
"cross-env": "^7.0.3",
"cypress": "^9.5.3",
"esbuild": "^0.14.29",
"eslint": "^8.12.0",
"eslint-config-prettier": "^8.5.0",
"happy-dom": "^2.55.0",
"jest": "^27.5.1",
"mock-aws-s3": "^4.0.2",
"msw": "^0.39.2",
"npm-run-all": "^4.1.5",
"prettier": "^2.6.1",
"prettier-plugin-tailwindcss": "^0.1.8",
"start-server-and-test": "^1.14.0",
"tailwindcss": "^3.0.23",
"ts-jest": "^27.1.4",
"ts-node": "^10.7.0",
"typescript": "^4.6.3",
"vitest": "^0.8.2"
},
"engines": {
"node": "14"
}
}
// packageA package.json
{
"name": "fuzzy-scrawl",
"version": "0.0.0",
"author": "slackermorris",
"repository": "",
"license": "MIT",
"keywords": [
"css",
"typescript",
"scss"
],
"main": "./build/main.js",
"module": "./build/main.js",
"type": "module",
"types": "./build/tsc/main.d.ts",
"scripts": {
"esbuild-browser:dev": "NODE_ENV=development node build esbuild-browser:dev",
},
"devDependencies": {
"#types/jest": "^26.0.21",
"#types/node": "^15.0.1",
"#types/react": "^18.0.15",
"#types/react-dom": "^18.0.6",
"#typescript-eslint/eslint-plugin": "^4.19.0",
"#typescript-eslint/parser": "^4.19.0",
"esbuild": "^0.11.11",
"esbuild-css-modules-plugin": "^2.3.2",
"esbuild-plugin-css-modules": "^0.1.3",
"esbuild-sass-plugin": "^2.2.6",
"esbuild-style-plugin": "^1.6.0",
"eslint": "^7.22.0",
"jest": "^26.6.3",
"live-server": "^1.2.2",
"sass": "^1.53.0",
"ts-jest": "^26.5.4",
"ts-node": "^9.1.1",
"typedoc": "^0.20.35",
"typescript": "^4.2.3"
},
"dependencies": {
"gsap": "^3.10.4",
"react": "^18.2.0",
"react-dom": "^18.2.0"
}
}
I am learning MERN application development. I got a incomplete MERN application and trying to run the application. My package.json file is like below.
package.json
{
"name": "machine-shop",
"version": "1.0.0",
"private": true,
"type": "module",
"scripts": {
"build": "node ace build --production",
"start": "node server.js",
"dev": "node ace serve --watch",
"lint": "eslint . --ext=.ts",
"format": "prettier --write ."
},
"devDependencies": {
"#adonisjs/assembler": "^5.0.0",
"#babel/core": "^7.14.3",
"#babel/preset-react": "^7.13.13",
"#symfony/webpack-encore": "^1.4.0",
"#types/node": "^16.3.3",
"adonis-preset-ts": "^2.1.0",
"autoprefixer": "^10.2.6",
"eslint": "^7.27.0",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-adonis": "^1.3.1",
"eslint-plugin-prettier": "^3.4.0",
"node-pre-gyp": "^0.17.0",
"pino-pretty": "^5.0.1",
"postcss": "^8.3.0",
"postcss-loader": "^5.3.0",
"prettier": "^2.3.0",
"sass": "^1.34.0",
"sass-loader": "^11.1.1",
"tailwindcss": "^2.1.2",
"typescript": "~4.2",
"youch": "^2.2.2",
"youch-terminal": "^1.1.1"
},
"dependencies": {
"-": "^0.0.1",
"#adonisjs/auth": "^8.0.4",
"#adonisjs/core": "^5.1.0",
"#adonisjs/lucid": "^14.1.0",
"#adonisjs/repl": "^3.0.0",
"#adonisjs/session": "^6.0.0",
"#adonisjs/shield": "^7.0.0",
"#adonisjs/view": "^6.0.0",
"#ckeditor/ckeditor5-build-decoupled-document": "^28.0.0",
"#ckeditor/ckeditor5-react": "^3.0.2",
"#date-io/date-fns": "2.6.1",
"#formatjs/intl-pluralrules": "1.3.5",
"#fortawesome/fontawesome-free": "5.13.0",
"#manaflair/redux-batch": "1.0.0",
"#material-ui/core": "4.9.14",
"#material-ui/icons": "4.9.1",
"#material-ui/lab": "4.0.0-alpha.53",
"#material-ui/pickers": "3.2.10",
"#material-ui/styles": "4.9.14",
"#reduxjs/toolkit": "^1.6.1",
"#tanem/svg-injector": "8.0.50",
"apexcharts": "^3.27.2",
"axios": "^0.21.1",
"axios-mock-adapter": "1.18.1",
"bootstrap": "4.6.0",
"camelcase": "^5.2.0",
"clipboard-copy": "3.1.0",
"clsx": "1.1.0",
"cp-cli": "2.0.0",
"css-mediaquery": "^0.1.2",
"date-fns": "2.8.1",
"dotenv": "^10.0.0",
"dotenv-expand": "5.1.0",
"downshift": "3.4.2",
"fg-loadcss": "^3.1.0",
"force": "^0.0.3",
"formik": "2.1.4",
"holderjs": "^2.9.9",
"json2mq": "^0.2.0",
"luxon": "^1.27.0",
"material-ui-popup-state": "^1.8.3",
"mysql": "^2.18.1",
"object-path": "^0.11.5",
"phc-argon2": "^1.1.1",
"phc-bcrypt": "^1.0.7",
"prop-types": "^15.7.2",
"proxy-addr": "^2.0.7",
"react": "^17.0.2",
"react-app-polyfill": "^1.0.4",
"react-bootstrap": "1.0.1",
"react-bootstrap-table-next": "4.0.2",
"react-bootstrap-table2-paginator": "2.1.2",
"react-datepicker": "2.16.0",
"react-dev-utils": "^9.1.0",
"react-dom": "^17.0.2",
"react-draggable": "4.4.2",
"react-dropzone": "^11.3.4",
"react-inlinesvg": "1.2.0",
"react-intl": "3.6.2",
"react-is": "16.13.1",
"react-perfect-scrollbar": "1.5.8",
"react-portal": "4.2.0",
"react-redux": "7.1.3",
"react-router-dom": "^5.2.0",
"react-select": "3.1.0",
"react-slick": "^0.28.1",
"react-swipeable-views": "0.13.9",
"react-syntax-highlighter": "12.2.1",
"react-tinder-card": "^1.4.0",
"react-window": "1.8.5",
"redux": "4.0.5",
"redux-persist": "6.0.0",
"redux-saga": "1.1.3",
"reflect-metadata": "^0.1.13",
"socicon": "3.0.5",
"source-map-support": "^0.5.19",
"sweetalert2": "^11.0.11",
"yup": "^0.32.9"
}
}
My server.js file is like below
server.js
import 'reflect-metadata';
import sourceMapSupport from 'source-map-support';
import { Ignitor } from '#adonisjs/core/build/standalone';
sourceMapSupport.install({ handleUncaughtExceptions: false })
new Ignitor(__dirname).httpServer().start()
I am trying to run the application using npm start command. But I am getting below error.
file:///home/foysal/Music/machineshop/server.js:20
new Ignitor(__dirname).httpServer().start()
^
ReferenceError: __dirname is not defined in ES module scope
This file is being treated as an ES module because it has a '.js' file extension and '/home/foysal/Music/machineshop/package.json' contains "type": "module". To treat it as a CommonJS script, rename it to use the '.cjs' file extension.
at file:///home/foysal/Music/machineshop/server.js:20:13
What is the meaning of this code new Ignitor(__dirname).httpServer().start() ? Is it correct code ?
Previously I worked in another MERN application. server.js file of that project is not similar like server.js file of this project.
Am I doing anything wrong ?
Could any one help me to run the application ?
You have mixed up client and server. Usually you keep them separated when you work on stacks like that - in separate repositories or at least in separate directories. You have 2 ways as I see:
Separate client and server dependencies
Use Adonis to serve the React app
I would take the first path for better maintainability. If that seems too complicated, you can take the later one for now and keep working on separation down the road. For that you may wanna look into this document.
I have a project which builds successfully on an Apple Mac but produces the following error when trying to run a gulp task on Windows:
project\node_modules\.bin\gulp:2
basedir=$(dirname $(echo "$0" | sed -e 's,\\,/,g'))
^^^^^^^
SyntaxError: missing ) after argument list
at wrapSafe (internal/modules/cjs/loader.js:979:16)
at Module._compile (internal/modules/cjs/loader.js:1027:27)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
at Module.load (internal/modules/cjs/loader.js:928:32)
at Function.Module._load (internal/modules/cjs/loader.js:769:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)
at internal/main/run_main_module.js:17:47
package.json
"scripts": {
"gulp": "node node_modules/.bin/gulp",
"build-local": "npm run gulp build-local",
},
"devDependencies": {
"gulp": "3.9.1",
"gulp-angular-templatecache": "~2.0.x",
"gulp-autoprefixer": "^4.0.0",
"gulp-concat": "~2.6.x",
"gulp-live-server": "^0.0.31",
"gulp-minify-html": "~1.0.x",
"gulp-sass": "^3.1.0",
"gulp-sourcemaps": "~2.5.x",
"gulp-stylelint": "^5.0.0",
"gulp-uglify": "~2.1.x",
It it helps I'm using an old version of Node (10.0.0) because the project is quite dated
I am working to update my app to Angular 9 CLI and all of my NPM packages to the latest versions. But when I try to make a GET call to load the data on page load the page breaks with a 400 error returned from the server. This endpoint call breaks:
#Effect()
getAllData$ = this.action$.pipe(
ofType<DataAction>(DATA_ACTION_TYPES.GET_ALL_DATA),
switchMap(() => {
return this.dataservice.getAllData().pipe(
map(data => {
const payload = new DataPayload();
payload.data = data;
return new GottenAllDataAction(data);
})
);
})
);
public getAllData(): Observable<any[]> {
// code hits the dataEndpoint
return this.httpClient
.get(this.dataEndpoint)
.pipe(map(response => plainToClass(DataV2, response as Object[], { groups: ['get'] })));
}
In the network tab I get a 400 error with this response:
Here is the start of my 400 console error from the GET call:
Here is my package.json:
"dependencies": {
"#angular/animations": "9.1.6",
"#angular/cdk": "9.2.3",
"#angular/common": "9.1.6",
"#angular/compiler": "9.1.6",
"#angular/core": "9.1.6",
"#angular/flex-layout": "~9.0.0-beta.29",
"#angular/forms": "9.1.6",
"#angular/material": "9.2.3",
"#angular/platform-browser": "9.1.6",
"#angular/platform-browser-dynamic": "9.1.6",
"#angular/router": "9.1.6",
"#auth0/angular-jwt": "^4.0.0",
"#ngrx/effects": "~9.1.2",
"#ngrx/router-store": "~9.1.2",
"#ngrx/store": "~9.1.2",
"#ngrx/store-devtools": "~9.1.2",
"#nrwl/nx": "6.3.1",
"class-transformer": "0.1.9",
"classlist.js": "^1.1.20150312",
"core-js": "~3.6.5",
"es6-shim": "^0.35.5",
"file-saver": "^2.0.2",
"hammerjs": "2.0.8",
"highcharts": "~8.1.0",
"moment": "~2.25.3",
"ng2-file-upload": "^1.4.0",
"ngx-toastr": "^12.0.1",
"ramda": "^0.27.0",
"reflect-metadata": "~0.1.13",
"rxjs": "~6.5.5",
"rxjs-compat": "~6.5.5",
"tachyons-sass": "^4.9.5",
"tslib": "^1.11.2",
"typedjson": "^1.5.1",
"zone.js": "~0.10.3"
},
"devDependencies": {
"#angular-devkit/build-angular": "~0.901.5",
"#angular-devkit/core": "9.1.5",
"#angular-devkit/schematics": "9.1.5",
"#angular/cli": "9.1.5",
"#angular/compiler-cli": "9.1.6",
"#angular/language-service": "9.1.6",
"#nrwl/schematics": "8.12.11",
"#schematics/angular": "9.1.3",
"#types/highcharts": "5.0.4",
"#types/jasmine": "^3.5.10",
"#types/jasminewd2": "~2.0.8",
"#types/node": "^13.13.4",
"codelyzer": "^5.2.2",
"fibers": "^3.1.0",
"html-webpack-plugin": "^4.2.1",
"jasmine-core": "^3.5.0",
"jasmine-marbles": "0.3.1",
"jasmine-spec-reporter": "^5.0.2",
"karma": "~5.0.5",
"karma-chrome-launcher": "^3.1.0",
"karma-cli": "^2.0.0",
"karma-coverage-istanbul-reporter": "^3.0.2",
"karma-jasmine": "^3.1.1",
"karma-jasmine-html-reporter": "^1.5.3",
"ng-mocks": "^9.3.0",
"node-sass": "^4.14.0",
"prettier": "^1.18.2",
"protractor": "^5.4.4",
"remote-redux-devtools": "^0.5.16",
"ts-node": "~8.10.1",
"tslint": "~6.1.2",
"typescript": "~3.8.3"
}
Everything works fine in Angular 8. This error only occurs on my current branch where I am trying to update to the latest Angular 9. But I'm not sure how a front end issue could be causing the error I'm seeing. Could this be a problem with one of the NPM package updates?
Any help is appreciated.
Try these steps:
Delete node-modules folder C:\Users\USER\AppData\Roaming\npm\node_modules
Open windows powershell as admin
npm cache clean --force
npm install -g npm#latest
npm uninstall -g angular-cli
npm install -g #angular/cli#latest