{
"compilerOptions": {
// -----------[ Node ]---------- //
"module": "CommonJS",
// ----------------------------- //
"target": "es5",
"lib": [
"dom",
"ESNext"
],
"sourceMap": true,
"esModuleInterop": true,
"moduleResolution": "Node",
"downlevelIteration": true,
"noImplicitAny": false,
},
"exclude": [
"node_modules"
]
}
{
"compilerOptions": {
// ------------[ 브라우저 ]------------- //
"module": "ES2015",
// ------------------------------------ //
"target": "es5",
"lib": [
"dom",
"ESNext"
],
"sourceMap": true,
"esModuleInterop": true,
"moduleResolution": "Node",
"downlevelIteration": true,
"noImplicitAny": false,
},
"exclude": [
"node_modules"
]
}
✅ 브라우저 환경에서 node_modules에 있는 모듈을 import하기 위해서는 webpeck을 통한 번들링 같은 방법으로 경로 해결을 해야한다.
=> ES2015 모듈은 경로가 존재해야 import/export 가능
=> node_modules에 있는 모듈을 import 할 때는 경로x
=> webpack을 통해 번들링하여 해당 파일 가져오기 가능
[ 링크 참조 ]
https://stackoverflow.com/questions/67809878/how-to-import-node-modules-in-simple-typescript
// webpack.dev.js 설정
const path = require("path");
module.exports = {
mode: "development",
devtool: "inline-source-map",
entry: {
app: "./src/index",
},
resolve: {
extensions: [".ts", ".js"],
},
module: {
rules: [
{
test: /\.ts?/,
use: [
"babel-loader",
{
loader: "ts-loader",
},
],
exclude: /node_modules/,
},
],
},
output: {
path: path.resolve(__dirname + "/dist"),
publicPath: "/dist",
filename: "index.js",
},
devServer: {
devMiddleware: { publicPath: "/dist" },
static: { directory: path.join(__dirname) },
hot: true,
},
};