Import moment.js in der js-Datei im webpack
In meinem Projekt verwende ich webpack und npm. Ich installiert moment.js : npm install moment
. Dann möchte ich, um es zu importieren in meine app.js Datei: import moment from "moment"
.
Aber es funktioniert nicht. Ich: nicht auflösen Kann, moment ...
Ich versuche let moment = require('moment');
aber ich bekomme den gleichen Fehler.
Aber ich kann verlangen, ihn in meine webpack.config.js Datei-ohne Fehler.
Meine app.js die Datei befindet sich auf /myapp/frontend/app.js
Meine webpack.config.js Datei:/myapp/webpack.config.js
So, erklären Sie bitte, warum kann ich nicht verlangen, moment in meine app.js und wie kann ich dies tun?
Meine config-Datei:
const webpack = require("webpack");
const NODE_ENV = process.env.NODE_ENV || "development"
const path = require('path');
//example of successfull importing
let moment = require('moment');
console.log(moment(new Date()));
module.exports = {
context: __dirname + "/frontend",
entry: {
app:"./app"
},
output: {
path: path.resolve(__dirname,"./public/js"),
publicPath:"/public/js/",//public path in internet
filename: "build.js"
},
watch: NODE_ENV == "development",
watchOptions:{
aggregateTimeout:100//default = 300
},
devtool: NODE_ENV == "development"?"cheap-inline-module-source-map":"cheap-source-map",
//cheap-inline-module-source-map - to see sources in build.js
//eval - fastest
resolve:{
modules: ['node-modules'],
extensions:['.js']
},
module:{
loaders:[{
test: /\.js$/,
loader:"babel-loader?presets[]=es2015",
exclude: /node_modules/
}]
}
};
if(NODE_ENV == "production"){
module.exports.plugins.push(
new webpack.optimize.UglifyJsPlugin({
compress:{
warnings:false,
unsafe:true,
drop_console:true
}
})
);
}
Ist es mein Baum-Struktur ohne node_modules Ordner:
LÖSUNG DES PROBLEMS: problem war in meine Konfiguration:
resolve:{
modules: ['node-modules'],
extensions:['.js']
},
Es ist node-modules
falsch ist, muss node_modules
. Einfache Tippfehler..
- können Sie nach Ihren webpack.config.js hier bitte?
- Ich habe geschrieben
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ohne zu wissen, ein wenig mehr über Ihre Datei-Struktur, die es schwierig, sicher zu sein, warum, aber das Problem ist wahrscheinlich, dass Ihr webpack config ist nicht zu finden in dem moment ein Modul in Ihrem node_modules.
Als test, lief die folgende:
und dann mit moment und jquery installiert über
npm install --save jquery moment
machte ich einen index.js Datei:Kein build-Fehler und keine runtime-Fehler, wenn auf der HTML-Seite. Starten Sie einfach die erste, und erstellen Sie dann von dort auf Ihr webpack config. Auch bin ich mir nicht sicher, ob webpack etwas mit Paket.json-aber ich bemerkte Sie nicht das signal der --save-option. Es ist eine gute Angewohnheit, in zu erhalten.
Für mein Problem, ich habe ändern
import {moment} from 'moment'
zuimport * as moment from 'moment';
und es funktioniert jetzt!